Configuration changes within the *same* version, such as going from NAKACK to NAKACK2, would also have to go through the mechanism you suggested. Handling class loader issues alone will be tricky...
I thought about a simple&stupid approach: at the end of the day, all we care about is the data, in-memory and on-disk (cacheloaders). So how about the following: - Cluster A is running on version 4 - Start a cluster B, running on version 5 - Slowly transfer the state of cluster A into B - When done, switch the clients over to B. If the clients run inside the same JVM, activate them in cluster B - Shut down cluster A The state transfer from A to B would be similar to the non-blocking state transfer: - Perhaps insert a new interceptor (at runtime) into all nodes in A - Copy all modification in A to a queue - Iterate over the data and send it to cluster B. This could potentially be done via Hot Rod. - When done, send the queued data to B and clear the queue (short period of synchrionization here) We would have to make sure that state on-disk (e.g. persisted via a cacheloader to a DB) would also get transferred. Hmm, maybe not, if Infinispan can handle data stored in version A from version B... WDYT ? -- Bela Ban, JGroups lead (http://www.jgroups.org) _______________________________________________ infinispan-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/infinispan-dev
