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 <yzhda...@apache.org> wrote:

> Vladimir,
>
> Can you please describe the situation when 2 is possible, but 4 is not?
>
> --Yakov
>



-- 
Best Regards, Vyacheslav D.

Reply via email to