dyf6372 opened a new pull request #6719: use SnapTreeMap instead of 
ConcurrentSkipListMap
URL: https://github.com/apache/incubator-druid/pull/6719
 
 
   Using jprofiler, I found that the function in ConcurrentSkipListMap was cost 
more than 30% cpu in our case.
   
   
![image](https://user-images.githubusercontent.com/1322134/49732626-3bab5180-fcba-11e8-9784-93c66c1d92ad.png)
   
   SnapTreeMap is a drop-in replacement for ConcurrentSkipListMap.  Form the 
paper http://ppl.stanford.edu/papers/ppopp207-bronson.pdf:
   _Experimental evidence shows that our algorithm outperforms a highly tuned 
concurrent skip list for many access patterns, with an average of 39% higher 
singlethreaded throughput and 32% higher multi-threaded throughput over a range 
of contention levels and operation mixes._
   
   After I changing to SnapTreeMap , it's 20%~30% faster than 
ConcurrentSkipListMap.
   
   
![image](https://user-images.githubusercontent.com/1322134/49732960-326eb480-fcbb-11e8-8113-edbcf68a74cd.png)
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to