Hi all,
I've been looking at clustering again lately, and notably at the notes on JCR-169. Once that 1.0 is out the door, and if there is interest (there certainly is on my part), this could something to re-visit ?
Anyway, I don't know if this idea has been mentioned before, but could it be possible to do most of the clustering implementation by simply using a distributed event broadcasting mechanism ? For example, using a listener that would broadcast events through the cluster. This could be used to invalidate SharedItemState cache on each cluster node, do local indexing. I think it's best to avoid replicating cache contents, as this can generate lots of network traffic. The big open question is if some operations need to be synchronized, most notably for repository integrity. Of course I'm assuming that we'd be using a persistence manager that accesses a shared resource, such as a shared file system or a database.
I know this doesn't solve all the problems, for example the LockManager would still have to be distributed, and NodeType configuration should also be taken care of. And I must say I'm not familiar with the referential integrity subsystem and it's requirements yet.
Any corrections / comments on this would be very helpful to me, because I've certainly missed a few things here :)
Regards, Serge...