Sylvain Lebresne created CASSANDRA-4284:
-------------------------------------------

             Summary: Improve timeuuid <-> date relationship
                 Key: CASSANDRA-4284
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4284
             Project: Cassandra
          Issue Type: Improvement
          Components: API
    Affects Versions: 1.1.0
            Reporter: Sylvain Lebresne
            Assignee: Sylvain Lebresne
            Priority: Minor
             Fix For: 1.2


We added timeuuid to CQL3, whose purpose is to provide a collision-free 
timestamp basically and as a convenience, such timeuuid can be inputed as as 
date.

However, two things seems non-optimal to me:
* When one insert a timeuuid using a date format, we always pick *the* UUID 
corresponding to this date with every other part of the UUID to 0. This kind of 
defeat the purpose of collision-free timestamp and thus greatly limit the 
usefulness of the date syntax.
* When cqlsh print timeuuid, it print them as date. But as thus, there is some 
information lost which can be problematic (you can't update a specific column 
based on that return). In a way, this is a cqlsh limitation, since cassandra 
return the UUID bytes. Yet, it also emphasis somehow that from the point of 
using them, timeuuid are more UUID than really time.

For the first point, it would make more sense that when inserting a date, we 
actually pick a uuid with the corresponding timestamp *but* with the rest of 
the UUID being random. It's not completely that simple because we don't want 
that randomness when the date are used in a select query, but that's roughtly 
the same problem than CASSANDRA-4283 (and we can thus use the same solution).

The second point gives an idea. We could extends the date syntax to allow it to 
represent uniquely a type 1 UUID. Typically, we could allow something like: 
'2012-06-06 12:03:00+0000 %a2fc07', where the part after the '%' character 
would be hexadecimal for the non-timestamp part of the UUID. Understanding this 
syntax could allow to work with timeuuid uniquely with meaningful date string 
which I think would be neat. But maybe that's a crazy idea, opinions?


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to