cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jun Rao (JIRA)" <>
Subject [jira] Commented: (CASSANDRA-226) Make time-sorted CFs behave consistently
Date Mon, 22 Jun 2009 15:42:07 GMT


Jun Rao commented on CASSANDRA-226:

I agree with dropping the time-sorted CF and the correspondingly get_column_since call. The
problem with the current design is that we try to piggyback 2 things on the timestamp, one
for versioning, and the other for ordering. Sometimes, these 2 things are at odds. For example,
versioning requires timestamps are added in ascending order.

One simple way to support ordering columns in timestamp order is to duplicate the timestamp
as the prefix of the column name. Chris, do you think that will work for you?

> Make time-sorted CFs behave consistently
> ----------------------------------------
>                 Key: CASSANDRA-226
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
> Time-sorted CFs are indexed and sorted by time in the SSTable.  So lookup by name is
inefficient, and compaction sucks (i.e., we can run out of memory), because we combine by
name even though we sort by time. (see CASSANDRA-16)
> The right fix is, for time-sorted columns we need to recognize that the right "key" as
it were is (time, name) not name.  We should allow slice by time and lookup by time or time,name
but not just name.  (Similarly, we should not allow lookup by time on name-sorted CFs.)  This
means that name will not necessarily be unique in time-sorted CFs but that is the right behavior!
 Time-based CFs are more like appending to a list than putting to a map.
> (As part of this we could track the most recent append in time-sorted CFs to prevent
the bug in CASSANDRA-223.  I am not sure that is the "right" way to go but I do mention it
as a possibility that this change enables.)
> In the code, this will allow more regular treatment of CFs and less special casing. 
(It will also allow using only a single map for memtable columns, reducing memory usage --
see CASSANDRA-51.)
> Implementation notes: we may be able to represent both types of CF with a pluggable Comparator
+ Indexer combination, which would solve CASSANDRA-185 and CASSANDRA-189 at the same time.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message