[ https://issues.apache.org/jira/browse/CASSANDRA-7919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14132928#comment-14132928 ]
Sylvain Lebresne commented on CASSANDRA-7919: --------------------------------------------- To recall the context a bit here, we want globally unique timestamps for 2 reasons: 1) to fix CASSANDRA-6123 and 2) because it's a requirement for RAMP transactions (CASSANDRA-7056). An additional constraint being that whatever we come up with for that must support client-side provided timestamps. Timeuuids are a standardize way to generate such globally unique timestamp, and as it happens, it's already what we tell people to use for their time series. Using them has a number of advantages: it's very simple (a very good property), every client driver already has code to generate them, and whatever effort we might put in optimizing their storage could be reused for the CQL timeuuid type. I don't think timeuuids are broken by design. There is certainly sub-optimal implementations currently (like CASSANDRA-7925) but it's not that hard to fix and it needs to be fixed anyway whether or not we use them here. Storage-wise, it's definitively true that timeuuid are not the most compact thing ever, but we can optimize their storage somewhat. At the very least, we can store the time part separatly from the lsb and offset encode it. Regarding the lsb, a given client shouldn't really change it during it's lifetime (per the timeuuid spec) so in general the cardinality of lsb shouldn't be huge and I'm sure we can use that to our advantage (and while we can't guarantee that all clients will be reasonable, it's ok to say that you should use a reasonable client to get the best performance imo). More importantly, the alternatives that have been suggested so far are complex, adhoc and full of gotchas. We need to fix CASSANDRA-6123 at some point, and blocking CASSANDRA-7056 on this is not ideal either, so unless someones comes up with a more compact alternative that is not overly complex (both for C* and for clients), I personally think we should go with timeuuids. > Change timestamp representation to timeuuid > ------------------------------------------- > > Key: CASSANDRA-7919 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7919 > Project: Cassandra > Issue Type: Improvement > Reporter: T Jake Luciani > Priority: Minor > Fix For: 3.0 > > > In order to overcome some of the issues with timestamps (CASSANDRA-6123) we > need to migrate to a better timestamp representation for cells. > Since drivers already support timeuuid it makes sense to migrate to this > internally (see CASSANDRA-7056) -- This message was sent by Atlassian JIRA (v6.3.4#6332)