Thanks for that Charlie, looks interesting. Before anyone gets into that, what about the other candidates. I know of at least 2:
* Doug Lea's ConcurrentHashMapV8 * Cliff Click's ConcurrentHashMap - http://high-scale-lib.cvs.sourceforge.net/viewvc/high-scale-lib/high-scale-lib/java/util/concurrent/ConcurrentHashMap.java?view=log Any ideas how suitable they might be? Cheers, James On 20 December 2011 20:01, Charles Oliver Nutter <head...@headius.com>wrote: > On Tue, Dec 20, 2011 at 12:01 PM, Yoko Harada <yoko...@gmail.com> wrote: > > AbstractRubyHash looks good. Once this implementation comes in, > > MapJavaProxy class can have much simpler implementation. > > Yeah, I think it would literally have *just* the abstract methods and > perfom as well as Hash or the underlying Map. > > > More than that, how do you think about changing RubyHashEntry class > > > > public static final class RubyHashEntry implements Map.Entry { > > ... > > } > > > > to ConcurrentLikedQueue<Map.Entry> or other classes of concurrent > > package? I can't say anything about performance at this moment, but at > > least thread safety will get better. > > I'm not super eager to make Hash thread-safe, but if we could do it > without perf issues I'd be all for it. If we can't, I want us to be > able to provide a solid alternative, which is where the > AbstractRubyHash stuff comes in. > > The biggest down side to ConcurrentHashMap, other than a bit of a perf > hit, is that it takes an enormous amount of memory compared to a > normal HashMap. If you aren't explicitly telling it to give you low > concurrency (like 1 or 2 threads expected) you'll get the full-on > 16-way CHM, which splits its backing store into 16 chunks to improve > concurrency (and eat a lot more memory). > > For Rubinius, Brian Ford has been interested in porting the fancy new > "Concurrent Hash Array Mapped Trie" implementation that Scala's using. > That would be an *excellent* project for someone to write a Java > version, or to help finish any incomplete Java version that's out > there, and we could look at how it performs compared to our current > Hash. > > Beyond that...I'd like to see the AbstractRubyHash change land at some > point, but it's not on my list of things to work on. Help is wanted :) > > - Charlie > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > > >