[infinispan-dev] Fwd: Backward compatibility and rolling upgrades
Bela Ban
bban at redhat.com
Wed May 16 09:11:45 EDT 2012
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)
More information about the infinispan-dev
mailing list