[Gluster-devel] Client Server incompatibility with Gluster 4.0

Amar Tumballi atumball at redhat.com
Wed Oct 11 09:06:53 UTC 2017


Was (Re: [Gluster-devel] Proposed Protocol changes for 4.0: Need feedback.)

All,

While we are at making all the below tasks' color coding to GREEN, it would
make sense to discuss 1 main thing.

With 4.0, we will anyways say 3.y series server nodes are not going to be
compatible with 4.x servers, is it the same case with clients?

If yes, I am considering some changes to the current way RPC conversion is
handled in protocol layer, and make it simpler a bit.

If no, then I have to add lot of 'if..else' in existing code or extra code
wherever applicable, now, to make sure we handle the compatibility better.

My personal opinion is, talk about incompatibility now, and plan to have
smooth sail even when 5.0 lands. We are anyways coming out with GD2 (which
makes servers incompatible), and gfproxy (which makes clients missing this
feature in older releases), and also possible cherrypicks from upstream
fuse project to utilize more features from there, so for the user, there
are lot of reason to upgrade the clients.


-Amar


On Fri, Sep 1, 2017 at 1:00 PM, Amar Tumballi <atumball at redhat.com> wrote:

> Not sure how many of you have gone through the email! As we are done with
> 3.12 release, gluster project is entering into a territory where goal is
> 4.0 but branch cut dates are not yet decided.
>
> As protocol changes are one of the required feature for Gluster 4.0, I
> propose doing a day long hackathon for finishing most of the pointers
> mentioned below (and more if you have more proposed).
>
> We can co-ordinate on #gluster-dev, and try to answer all the questions. I
> am happy to jump on a BJ session every 6hrs to track the progress and have
> more discussions if required. Plan is, after the hackathon, we have all the
> dependent patches for this feature out for review, and also have
> 'agreement' from maintainers on the approach, so they can get in together,
> without breaking a lot of things.
>
> I propose to do it around September 3rd week. If more than 5 people are
> ready for it, I will plan out execution path for it further.
>
> Regards,
> Amar
>
> On Wed, Aug 16, 2017 at 9:20 AM, Nithya Balachandran <nbalacha at redhat.com>
> wrote:
>
>>
>>
>> On 11 August 2017 at 18:04, Amar Tumballi <atumball at redhat.com> wrote:
>>
>>> Hi All,
>>>
>>> Below are the proposed protocol changes (ie, XDR changes on the wire) we
>>> are thinking for Gluster 4.0.
>>>
>>>
>>>    - rchecksum/fsetattr: Add 'gfid' field on wire
>>>
>>> Basic work already done at https://review.gluster.org/#/c/3956/ .
>>> Considering its 5yrs old patch, I refreshed it at
>>> https://review.gluster.org/17656 for experimental branch, and it is all
>>> working fine.
>>>
>>> This patch also helps in creating new RPC program etc, so for all other
>>> XDR changes, we only need to handle the specific change in the patch.
>>>
>>> STATUS: GREEN
>>>
>>>    - statx() support
>>>
>>> https://github.com/gluster/glusterfs/issues/273 talks more on it. We
>>> can consider to make XDR changes for sure even if we don't implement the
>>> fops in all other xlator IMO, so there won't be clients' compatibility
>>> issue.
>>>
>>> STATUS: RED  (As no work has been started yet)
>>>
>>>    - Changes to 'gf_flock' structure on wire
>>>
>>> More on it @ https://review.gluster.org/#/c/15698. Can be handled
>>> without this change by using xdata, but adding this field in the XDR will
>>> make it faster, and less error prone.
>>>
>>> STATUS: YELLOW
>>>
>>>    - Changes in few of the 'fops' to get struct iatt in _cbk
>>>
>>> This is needed for mainly handling the cases of fail over during
>>> rebalance, self-heal etc. Today, because we don't have a protocol support,
>>> our cross architecture compatibility is broken, mainly because we send iatt
>>> as binary in xdata dict, which is not desirable.
>>>
>>
>> +1
>>
>>
>>> STATUS: RED
>>>
>>> (Red as we need to hear from team on what are the changes needed, and it
>>> would be significant change as we may have to change the fops signature
>>> itself).
>>>
>>>    - fadvise()
>>>
>>> As per the email thread http://lists.gluster.org/piper
>>> mail/gluster-devel/2017-August/053457.html, if we implement the fop, we
>>> would need a new XDR for it.
>>>
>>> STATUS: RED
>>>
>>> (It is red as it is still in discovery phase)
>>>
>>>    - Misc
>>>
>>> We don't have any other proposal for protocol change for now, other than
>>> a suggestion from Jeff Darcy about taking out the common flags we use
>>> across the board, inside xdata, and make them as 'flags' itself in XDR, for
>>> better perf, and manageability.
>>>
>>> STATUS: RED
>>>
>>> (Mainly because the work is about discovery and changing the fops
>>> signature itself).
>>>
>>>
>>> This is the good time to highlight if you need any further changes in
>>> protocol itself, and start towards getting it implemented and tested. I
>>> volunteer to review all such patches, and happy to co-ordinate it on
>>> experimental branch before sending them as a single patch (or multiple
>>> dependent, granular patches) on master when we feel it is ready.
>>>
>>>
>>> Regards,
>>>
>>> Amar
>>>
>>>
>>> --
>>> Amar Tumballi (amarts)
>>>
>>> _______________________________________________
>>> maintainers mailing list
>>> maintainers at gluster.org
>>> http://lists.gluster.org/mailman/listinfo/maintainers
>>>
>>>
>>
>
>
> --
> Amar Tumballi (amarts)
>



-- 
Amar Tumballi (amarts)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-devel/attachments/20171011/343a91f1/attachment.html>


More information about the Gluster-devel mailing list