cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benjamin Manes <>
Subject Re: Non-blocking DataRowStore - need help to test
Date Thu, 23 Feb 2012 21:05:05 GMT
I'm the author of CLHM, brought to you by a friendly Google alert. :)

If Cayenne is currently using Guava, then there won't be a dependency increase. I helped rearchitect
MapMaker and design its replacement, CacheBuilder, which are based on CLHM's algorithms. This
is a more feature-rich implementation with the support of a team at Google (whereas CLHM is
my weekend project). We also fixed my mistake of only weighing by value, since I hadn't realized
how popular memory-based weighing would be (I was trying to avoid unbounded collections as

Technically CLHM provides more concurrency than CacheBuilder by not relying on segment locks
and later using a lock-free ring buffer. These will be an advantage when it is backed by JDK8's
new CHM (see ConcurrentHashMapV8) or Cliff Click's NBHM. A JSR-166 implementation will be
a marriage of CHMv8, CLHM, and CacheBuilder.

CLHM is back-ported to JDK5 on every release, so you'll find the JDK5 source under /tags.
I do development on /trunk assuming JDK6.

Feel free to file issues against CLHM (or Guava) if you'd like enhancements to either. Both
are used in large production environments.

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message