On 12/16/2010 1:15 PM, Jeff Ramsdale wrote:
In response to Wade's HashMap comments...
I've wondered for a while if a JavaSpaces implementation could be
built on ConcurrentMap. If so, and if the implementation were
pluggable at runtime, one could provide Infinispan
(http://www.jboss.org/infinispan/) caches (which implement
ConcurrentMap) to serve as the store for the JavaSpace. Persistence,
and/or clustering could then be left to Infinispan to handle.
There could be any number of pitfalls here, but I've wondered if it
might provide a flexible and powerful platform for scaling Outrigger.
I would love to be able to base it on a ConcurrentMap, but I don't see
how it would work.
As far as I can tell, there is no clean split between key and non-key
among the entry's public fields. A template can specify values for any
subset of the fields, and different templates used in reading from the
same space may choose different sets of fields.
Any ideas how to work around that?
We can't just use a separate ConcurrentMap for each field, and take the
intersection of results, because a map requires unique keys. A JavaSpace
may have many entries with the same value of a given field.
Patricia