Illustration Image

What happens if two columns have the same timestamp in Apache Cassandra?

I want to understand how Cassandra resolves conflicts when two updates for the same key and column have the same timestamp.

From my understanding, Cassandra follows a Last Write Wins (LWW) approach, but if two writes have the same timestamp, how does Cassandra determine which value to keep?

I am particularly interested in the following two scenarios where I expect a comparison to happen-

  1. update within memtable (two writes for a key, with the same timestamp, before memtable can flush)
  2. merging of two columns during the compaction process

I understand Cassandra may compare values Lexicographically, but I could not find a reference for the above two scenarios.

Please also provide a reference to documentation or source code mentioning the Comparator used for the above two scenarios.

For the sake of scenarios, please assume (even if not possible or has low probability) that 2 timestamps can collide for 2 different writes.

Become part of our
growing community!
Welcome to Planet Cassandra, a community for Apache Cassandra®! We're a passionate and dedicated group of users, developers, and enthusiasts who are working together to make Cassandra the best it can be. Whether you're just getting started with Cassandra or you're an experienced user, there's a place for you in our community.
A dinosaur
Planet Cassandra is a service for the Apache Cassandra® user community to share with each other. From tutorials and guides, to discussions and updates, we're here to help you get the most out of Cassandra. Connect with us and become part of our growing community today.
© 2009-2023 The Apache Software Foundation under the terms of the Apache License 2.0. Apache, the Apache feather logo, Apache Cassandra, Cassandra, and the Cassandra logo, are either registered trademarks or trademarks of The Apache Software Foundation. Sponsored by Anant Corporation and Datastax, and Developed by Anant Corporation.

Get Involved with Planet Cassandra!

We believe that the power of the Planet Cassandra community lies in the contributions of its members. Do you have content, articles, videos, or use cases you want to share with the world?