You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ratis.apache.org by Hanisha Koneru <hk...@cloudera.com.INVALID> on 2020/11/20 21:49:24 UTC

Backward Incompatible changes after GA

Hi All,

While updating Ratis version in Ozone, noticed some backward incompatible changes in Ratis. 
	1. Config key renames (example - rpcslowness.timeout -> rpc.slowness.timeout).
	2. Public interface method renames (example - RaftPeer constructor has been replaced with a builder, RaftClient async methods have been put behind AsyncApi)

Now that Ratis is GA, shouldn’t we maintain backward compatibility?

Thanks
Hanisha

Re: Backward Incompatible changes after GA

Posted by Tsz Wo Sze <sz...@gmail.com>.
Agree.  We should have some deprecation mechanism.  Sorry for the
inconvenience!

Tsz-Wo

On Wed, Nov 25, 2020 at 1:45 AM Hanisha Koneru <hk...@cloudera.com.invalid>
wrote:

> Hi Nicholas,
>
> I agree that the improvements are required and should be fixed.
>
> One option would be to add some deprecation mechanism for these configs.
> But if there are incompatible changes which cannot be handled using
> deprecation, then yes, we could make the next release 2.0.
>
> Thanks
> Hanisha
>
> > On Nov 20, 2020, at 4:24 PM, Tsz Wo Sze <sz...@gmail.com> wrote:
> >
> > Hi Hanisha,
> >
> > I understand your concern on the compatibility problem and, yes, there
> are
> > quite a few incompatible changes in Ratis after 1.0.0 GA.  Unfortunately,
> > Ratis does not yet have a well-defined compatibility story.  Also, there
> > are a lot of rooms for improvement on the Ratis APIs.  For example, typos
> > like "rpcslowness.timeout -> rpc.slowness.timeout" should be fixed.
> > Otherwise, it is inconsistent with the other confs.
> >
> > The best solution seems to make the next release 2.0.0.  Similar to
> Hadoop,
> > our compatibility story may allow incompatibility changes between major
> > releases.
> >
> > What do you think?
> >
> > Thanks a lot for starting this discussion.
> > Tsz-Wo
>
>

Re: Backward Incompatible changes after GA

Posted by Hanisha Koneru <hk...@cloudera.com.INVALID>.
Hi Nicholas,

I agree that the improvements are required and should be fixed. 

One option would be to add some deprecation mechanism for these configs. 
But if there are incompatible changes which cannot be handled using deprecation, then yes, we could make the next release 2.0.

Thanks
Hanisha

> On Nov 20, 2020, at 4:24 PM, Tsz Wo Sze <sz...@gmail.com> wrote:
> 
> Hi Hanisha,
> 
> I understand your concern on the compatibility problem and, yes, there are
> quite a few incompatible changes in Ratis after 1.0.0 GA.  Unfortunately,
> Ratis does not yet have a well-defined compatibility story.  Also, there
> are a lot of rooms for improvement on the Ratis APIs.  For example, typos
> like "rpcslowness.timeout -> rpc.slowness.timeout" should be fixed.
> Otherwise, it is inconsistent with the other confs.
> 
> The best solution seems to make the next release 2.0.0.  Similar to Hadoop,
> our compatibility story may allow incompatibility changes between major
> releases.
> 
> What do you think?
> 
> Thanks a lot for starting this discussion.
> Tsz-Wo


Re: Backward Incompatible changes after GA

Posted by Tsz Wo Sze <sz...@gmail.com>.
Hi Hanisha,

I understand your concern on the compatibility problem and, yes, there are
quite a few incompatible changes in Ratis after 1.0.0 GA.  Unfortunately,
Ratis does not yet have a well-defined compatibility story.  Also, there
are a lot of rooms for improvement on the Ratis APIs.  For example, typos
like "rpcslowness.timeout -> rpc.slowness.timeout" should be fixed.
Otherwise, it is inconsistent with the other confs.

The best solution seems to make the next release 2.0.0.  Similar to Hadoop,
our compatibility story may allow incompatibility changes between major
releases.

What do you think?

Thanks a lot for starting this discussion.
Tsz-Wo