On Fri, Jul 1, 2011 at 12:44 AM, Yang <email@example.com
> 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 <firstname.lastname@example.org
>> On Tue, Jun 28, 2011 at 10:06 PM, Yang <email@example.com
>> > 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