Testing of backward compatibility in Ignite

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Testing of backward compatibility in Ignite

daradurvs
Hi Igniters.

There is a need to test backward compatibility with previous release within
a task[1].

As far as I understand: it needs to provide methods in the
Ignite-test-framework to start instance of specific version of Ignite.

I popose to add such api in the project, for example: "Ignite
startGrid(String ver)"

My main idea of implementation is:
1) download "jar" from the Maven repo
2) Wrap it in a custom classloader
3) Start instance via the classloader

I've created a ticket[2] for this task.

Guys, please, share your thoughts about described problem and ways of
implementation?

[1] BinaryMarshaller should write ints in "varint" encoding where it makes
sense <https://issues.apache.org/jira/browse/IGNITE-5097>
[2] Provide API to test compatibility with old releases
<https://issues.apache.org/jira/browse/IGNITE-5732>

--
Best Regards, Vyacheslav D.
Reply | Threaded
Open this post in threaded view
|

Re: Testing of backward compatibility in Ignite

Semyon Boikov
Hi Vyacheslav,

Currently Ignite nodes with different versions can not join the same
cluster, look at OsDiscoveryNodeValidationProcessor (this check is called
from discovery ServerImpl IgniteSpiContext.validateNode).

Thanks

On Wed, Jul 12, 2017 at 11:09 AM, Vyacheslav Daradur <[hidden email]>
wrote:

> Hi Igniters.
>
> There is a need to test backward compatibility with previous release within
> a task[1].
>
> As far as I understand: it needs to provide methods in the
> Ignite-test-framework to start instance of specific version of Ignite.
>
> I popose to add such api in the project, for example: "Ignite
> startGrid(String ver)"
>
> My main idea of implementation is:
> 1) download "jar" from the Maven repo
> 2) Wrap it in a custom classloader
> 3) Start instance via the classloader
>
> I've created a ticket[2] for this task.
>
> Guys, please, share your thoughts about described problem and ways of
> implementation?
>
> [1] BinaryMarshaller should write ints in "varint" encoding where it makes
> sense <https://issues.apache.org/jira/browse/IGNITE-5097>
> [2] Provide API to test compatibility with old releases
> <https://issues.apache.org/jira/browse/IGNITE-5732>
>
> --
> Best Regards, Vyacheslav D.
>
Reply | Threaded
Open this post in threaded view
|

Re: Testing of backward compatibility in Ignite

Anton Vinogradov-2
Semen,

As far as I know, it is possible to allow nodes with different versions to
join topology.
Some products based on Ignite provides this feature.

We'd like to check that changes at Ignite will not break compatibility
feature of these products.

Could you provide some tips how to connect different versions of Ignite in
proper way?


On Wed, Jul 12, 2017 at 12:05 PM, Semyon Boikov <[hidden email]>
wrote:

> Hi Vyacheslav,
>
> Currently Ignite nodes with different versions can not join the same
> cluster, look at OsDiscoveryNodeValidationProcessor (this check is called
> from discovery ServerImpl IgniteSpiContext.validateNode).
>
> Thanks
>
> On Wed, Jul 12, 2017 at 11:09 AM, Vyacheslav Daradur <[hidden email]>
> wrote:
>
> > Hi Igniters.
> >
> > There is a need to test backward compatibility with previous release
> within
> > a task[1].
> >
> > As far as I understand: it needs to provide methods in the
> > Ignite-test-framework to start instance of specific version of Ignite.
> >
> > I popose to add such api in the project, for example: "Ignite
> > startGrid(String ver)"
> >
> > My main idea of implementation is:
> > 1) download "jar" from the Maven repo
> > 2) Wrap it in a custom classloader
> > 3) Start instance via the classloader
> >
> > I've created a ticket[2] for this task.
> >
> > Guys, please, share your thoughts about described problem and ways of
> > implementation?
> >
> > [1] BinaryMarshaller should write ints in "varint" encoding where it
> makes
> > sense <https://issues.apache.org/jira/browse/IGNITE-5097>
> > [2] Provide API to test compatibility with old releases
> > <https://issues.apache.org/jira/browse/IGNITE-5732>
> >
> > --
> > Best Regards, Vyacheslav D.
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Testing of backward compatibility in Ignite

Semyon Boikov
It is possible to implement a test plugin which will
override DiscoveryNodeValidationProcessor.

Also IMO it is better to start different Ignite versions in different
processes to avoid potential problems with custom classloaders (there is
already some helper classes for multi-jvm tests).

Thanks

On Wed, Jul 12, 2017 at 12:44 PM, Anton Vinogradov <[hidden email]> wrote:

> Semen,
>
> As far as I know, it is possible to allow nodes with different versions to
> join topology.
> Some products based on Ignite provides this feature.
>
> We'd like to check that changes at Ignite will not break compatibility
> feature of these products.
>
> Could you provide some tips how to connect different versions of Ignite in
> proper way?
>
>
> On Wed, Jul 12, 2017 at 12:05 PM, Semyon Boikov <[hidden email]>
> wrote:
>
> > Hi Vyacheslav,
> >
> > Currently Ignite nodes with different versions can not join the same
> > cluster, look at OsDiscoveryNodeValidationProcessor (this check is
> called
> > from discovery ServerImpl IgniteSpiContext.validateNode).
> >
> > Thanks
> >
> > On Wed, Jul 12, 2017 at 11:09 AM, Vyacheslav Daradur <
> [hidden email]>
> > wrote:
> >
> > > Hi Igniters.
> > >
> > > There is a need to test backward compatibility with previous release
> > within
> > > a task[1].
> > >
> > > As far as I understand: it needs to provide methods in the
> > > Ignite-test-framework to start instance of specific version of Ignite.
> > >
> > > I popose to add such api in the project, for example: "Ignite
> > > startGrid(String ver)"
> > >
> > > My main idea of implementation is:
> > > 1) download "jar" from the Maven repo
> > > 2) Wrap it in a custom classloader
> > > 3) Start instance via the classloader
> > >
> > > I've created a ticket[2] for this task.
> > >
> > > Guys, please, share your thoughts about described problem and ways of
> > > implementation?
> > >
> > > [1] BinaryMarshaller should write ints in "varint" encoding where it
> > makes
> > > sense <https://issues.apache.org/jira/browse/IGNITE-5097>
> > > [2] Provide API to test compatibility with old releases
> > > <https://issues.apache.org/jira/browse/IGNITE-5732>
> > >
> > > --
> > > Best Regards, Vyacheslav D.
> > >
> >
>