incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yang <>
Subject Re: custom reconciling columns?
Date Thu, 30 Jun 2011 22:44:15 GMT
ok, I kind of found the magic bullet , but you can only use it to shoot your
enemy close really close range :)

for read path, the thrift API already limits the output to a list of
columns, so it does not make sense to use maps in the internal operations.
plus the return CF on the read path is not going to be modified/shared by
any other threads, so synchronization is not necessary. so
the solution is to modify ColumnFamilyStore so that getTopLevelColumns takes
a returnCF param, instead of always constructing it inside with
so only read path behavior is changed.

in read path, we pass in a FastColumnFamily implementation, which uses an
ArrayList internally to store sorted columns, and do binary search to insert
, and merge to addAll(column).

I tried out this, it's about 50% faster on rows with 3000 cols.

Jonathan: do you think this is a viable approach? the only disadvantage is a
slight change to getTopLevelColumns so we have 2 flavors of this method


On Wed, Jun 29, 2011 at 5:51 PM, Jonathan Ellis <> wrote:

> On Tue, Jun 28, 2011 at 10:06 PM, Yang <> wrote:
> > I'm trying to see whether there are some easy magic bullets for a drop-in
> > replacement for concurrentSkipListMap...
> I'm highly interested if you find one. :)
> --
> Jonathan Ellis
> Project Chair, Apache Cassandra
> co-founder of DataStax, the source for professional Cassandra support

View raw message