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

Reply via email to