Dave,
I applaud you for this effort and your
implementation and wiki are indeed admirable as you have
followed the goals outlined in this JIRA. However, now that I
have had an opportunity to look at the final solution I have one
concern. We went through a
great lengths to design a container that has a low lock
contention [1] while maintaining high precision of a
sophisticated eviction algorithm. Goals outlined in this JIRA
have lead you in a direction to
redesign the original proposal. I was wondering if it is
possible to use your MemoryMonitor to make a decision whether or
not to grow BCHM rather than to check if eviction should be done
upon each put invocation? Currently we preset the size of BCHM
and we never grow it (i.e. Segment#rehash is never invoked).
Maybe this is a place where MemoryMonitor
comes as a natural fit. We can keep the current design as
outlined in [1] while reaping the benefits of a memory bound
resizeable container.
WDYT?
Regards,
Vladimir
[1]
http://infinispan.blogspot.com/2010/03/infinispan-eviction-batching-updates.html
Dave said:
It took me some time to figure out how to use Git and add some more tests. I have pushed my changes to a topic branch located at https://github.com/dlmarion/infinispan/tree/ISPN-863-master.
Please let me know if you have any questions or concerns. I have put up some documentation at https://github.com/dlmarion/infinispan/wiki/ISPN-863-Implementation
-- Dave Marion