While working on scassandra, I ran across a mailing list thread asking about Cassandra’s MVCC support. I figured it had it, as most of the column data structures and most of the thrift API calls have it. Wrong. Timestamp is just used for eventual consistency support, as a way to track which mutations are older than others. The timestamp on a mutation is always provided by the client. In general this should be one of
- The time at which the data to be mutated was generated
- The current system time if the former is not available
Note that a lot of the Cassandra examples use a timestamp of zero, but this is just to make the examples independent of system clocks.