mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-28 12:17:02 +00:00
When we append an entry to a list with the same user-defined timestamp, the behaviour is actually undefined. If the append is processed by the same coordinator as the one that accepted the existing entry, then it gets the same timeuuid as the list key, and replaces (potentially) the existing list valiue. Then it gets a timeuuid which maybe both larger and smaller than the existing key's timeuuid, and then turns either to an append or a prepend. The part of the timestamp responsible for the result is the shard id's spoof node address implemented in scope of fixing Scylla's timeuuid uniqueness. When the test was implemented all spoof node ids where 0 on all shards and all coordinators. Later the difference in behaviour was dormant because cql_repl would always execute the append on the same shard. We could fix Scylla to use a zero spoof node address in case a user timestamp is supplied, but the purpose of this is unclear, it may actually be to the contrary of the user's intent.
3.7 KiB
3.7 KiB