[concurrency-interest] ConcurrentSkipListMap performance
ted_yu at yahoo.com
Sun Oct 23 15:01:41 EDT 2011
HBase expects ConcurrentSkipListMap to have good performance.
See the following discussion.
Comments are welcome.
---------- Forwarded message ----------
From: Akash Ashok <thehellmaker at gmail.com>
Date: Sun, Oct 23, 2011 at 2:57 AM
Subject: Re: SILT - nice keyvalue store paper
To: dev at hbase.apache.org
was running some similar tests and came across a surprising finding. I
compared reads and write on ConcurrentSkipListMap ( which the memstore
uses) and synchronized TreeMap ( Which was literally treemap
synchronized). Executed concurrent reads, writes and deletes on both of
Surprisingly synchronized treeMap performed better, though just slightly
better, than ConcurrentSkipListMap which KeyValueSkipListSet uses.
Here are the output of a few runs
Sometimes the difference was considerable
Using HBaseMap it took 20438ms
Using TreeMap it took 11613ms
And sometimes the difference was negligible
Using HBaseMap it took 13370ms
Using TreeMap it took 9482ms
I've attaching the test java file which I wrote to test it.
might be a very minor differece but still surprising considering the
fact that ConcurrentSkipListMap uses fancy 2 level indexes which they
say improves the deletion performance.
And here are the details about the test run.
100 Threads each fetching 10,000 records
100 threads each adding 10,000 records.
100 threads each deletin 10,000 records
( Reads, Writes and deletes simultaneously )
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Concurrency-interest