Hi Jeff,

I like this idea. I actually once had a similar idea. I have already thought a bit about what issues one might have to take care about... Infinispan does not have user events like JavaSpaces where your listener gets notified upon a write. It has internal events for its internal organisation. But they cannot be listened to by the user application. At least this was true for JBossCache and I guess that Infinispan behaves in the same way. So you would have to add your own facade in front of Infinispan where upon an add to the cache tree the respective user-defined listener is notified.

Then you have to think about how clients exchange messages with the server-side Infinispan cache. One idea would be to use JMS. Something similar already exists named ActiveSpaces: http://www.theserverside.com/discussions/thread.tss?thread_id=27274 One issue that strucks my mind is that the JMS transaction boundary ends where the Inifinispan transaction boundary starts. Let's say the sending client expects a return receipt, the Inifispan transaction finished successfully, but sending the receipt back to the client through JMS failed. Now the client things that the transmission was unsuccessful, although the Infinispan transaction was successful. Maybe I'm not right here. I don't know enough about JMS to know for sure. But this makes me think.

A JavaSpaces implementation has already been implemented on top of Terracotta: http://www.semispace.org Now Terracotta is owned by Software AG and you now have to pay for a license if you want to run your application on an server array... Something like this could also happen with Infinispan.

Developing another JavaSpaces implementation would be a great "research vehicle" to learn a lot of things. What makes me think is whether to extend the JavaSpaces approach in some way that not only distributed systems can be build with clients that work together in a coordinated way as with JavaSpaces, but also processing large amounts of data can be done (MapReduce, Hadoop, etc.). But I know whether these are different things that should be handled by a different kind of systems ...

Just a quick writeup of some things that crossed my mind when I read Jeff's proposal...

Cheers, Oliver

On 01.07.2011 20:32, Jeff Ramsdale wrote:
Infinispan ( http://infinispan.org ) is a clustered cache technology,
similar to Coherence that scales up and down dynamically and has a
Map/Reduce capability. I've thought a JavaSpaces implementation built
on top of it would be pretty compelling.

-jeff

Reply via email to