I have same idea about testing of WAL compatibilty between releases. It will be actual since 2.3 release (as 2.2 was emergency release without impact changes).
I look forward to IGNITE-5732 completion and merge. And then I able to start writting first test. I think it is quite unexpected for user if Ignite is not able to start from existing database after updating to next release. That is why I vote for backward compatibilty with automatic transparent migration (if needed). вт, 19 сент. 2017 г. в 15:16, Vyacheslav Daradur <[email protected]>: > I vote for: “4) Maintain compatibility between all versions within major > release”. > I think this is a trade-off between the complexity of implementing new > features and UX. > > We will be able to get rid of all legacy tools every major release. > > I’m working on a testing framework, which helps us testing compatibility > features between different Ignite version. > Testing in the early stages will help us to consider the impact of changes > in other releases and to be closer to the end user. > > Here is a dummy unit-test example: > > void testNodeStartByOldVersionPersistenceData() throws Exception { > try { > startGrid(1, "2.1.0", new PostConfigurationClosure(), new > PostActionClosure()); > > stopAllGrids(); // Stopping 2.1.0 > > IgniteEx ignite = startGrid(0); // Starting current version > > ignite.active(true); > > IgniteCache<Integer, String> cache = > ignite.getOrCreateCache(TEST_CACHE_NAME); > > for (int i = 0; i < 10; i++) > assertEquals("data" + i, cache.get(i)); > } > finally { > stopAllGrids(); > } > } > > class PostActionClosure implements IgniteInClosure<Ignite> { > @Override public void apply(Ignite ignite) { > ignite.active(true); > > CacheConfiguration<Integer, String> cacheCfg = new > CacheConfiguration<>(); > > IgniteCache<Integer, String> cache = ignite.createCache(cacheCfg); > > for (int i = 0; i < 10; i++) > cache.put(i, "data" + i); > } > } > > class PostConfigurationClosure implements > IgniteInClosure<IgniteConfiguration> { > @Override public void apply(IgniteConfiguration cfg) { > // Post configuration actions > cfg.setPersistentStoreConfiguration(new > PersistentStoreConfiguration()); > } > } > > [1] https://issues.apache.org/jira/browse/IGNITE-5732 - Provide API to > test > compatibility with old releases > > On Tue, Sep 19, 2017 at 2:51 PM, Yakov Zhdanov <[email protected]> > wrote: > > > Vladimir, > > > > Can you please describe the situation when 2 is possible, but 4 is not? > > > > --Yakov > > > > > > -- > Best Regards, Vyacheslav D. >
