On Sep 19, 2013, at 8:24 AM, Galder Zamarreño <[email protected]> wrote:

> Hi all,
> 
> Re: https://issues.jboss.org/browse/ISPN-3318
> Re: https://docs.jboss.org/author/display/ISPN/Rolling+upgrades
> 
> I've been thinking about this migration stuff, and I came to the conclusion 
> that for anyone that wants to migrate cache store data and are using Hot Rod 
> or REST, they should use existing rolling upgrade system. That'll give them 
> the ability directly (thanks to cache.keySet() returning keys in cache store) 
> to fetch all data from the cache store, in the old format, and be able to 
> apply to new cluster, in new format, without the need of extra code to deal 
> with cache store lower level details.
> 
> The big question is though, how to migrate cache store data for those 
> embedded caches. If you extrapolate what I said above, the question might 
> really be: how to do rolling upgrades of embedded/library mode caches. 
> 
> The main problem here is that you could think of configuring the target 
> cluster with cache store details of the source cluster, but this won't work: 
> Infinispan 6.0 cannot read Infinispan 5.x cache stores. All the classes and 
> formats for Infinispan 5.x are gone from the source code in Infinispan 6.0. 
> 
> There's three ways to resolve this:
> 
> a) Bring back Infinispan 5.x classes to 6.0 to be able to read 5.x cache 
> stores directly from 6.0.

that would also require logic in the stores to verify the types internally, 
very complicated...

> b) Develop some code for Infinispan 5.x to dump cache store data into a file 
> or somewhere in a given format and then read that from 6.0.
> c) Use CLI to connect from new cluster to the old cluster and fetch all keys.
> 
> I think the easiest thing would be to do c), developing a CLISourceMigrator 
> (implements org.infinispan.upgrade.SourceMigrator) to be able to read all 
> keys from the source embedded cluster. However, I don't see anywhere in the 
> CLI a command that returns back all keys. Upgrade with DUMPKEYS simply calls 
> up the local SourceMigrator.recordKnownGlobalKeyset. We'd need such a command 
> in Infinispan 5.x and 6.x, the former to send all keys and the latter to 
> request them.

Sounds good to me. Also having a CLI command to return all the keys is 
generally useful.


> 
> We'd also need a CLITargetMigrator which is pretty straightforward to do 
> since once we have all keys, it's easy to loop through them and request them 
> using CLI's Get operation.
> 
> @Tristan, you're the rolling upgrade meister, how does this sound? If we get 
> this right, we'd not only get cache store migration, but also 
> embedded/library cluster rolling upgrade.
> 
> Cheers,
> --
> Galder Zamarreño
> [email protected]
> twitter.com/galderz
> 
> Project Lead, Escalante
> http://escalante.io
> 
> Engineer, Infinispan
> http://infinispan.org
> 
> 
> _______________________________________________
> infinispan-dev mailing list
> [email protected]
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

Cheers,
-- 
Mircea Markus
Infinispan lead (www.infinispan.org)





_______________________________________________
infinispan-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to