ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitry Pavlov <dpavlov....@gmail.com>
Subject Re: Binary compatibility of persistent storage
Date Tue, 19 Sep 2017 12:52:15 GMT
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 <daradurvs@gmail.com>:

> 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 <yzhdanov@apache.org>
> wrote:
>
> > Vladimir,
> >
> > Can you please describe the situation when 2 is possible, but 4 is not?
> >
> > --Yakov
> >
>
>
>
> --
> Best Regards, Vyacheslav D.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message