+1 on supporting new clients with old servers of the same major version,
and updating the policy to capture that clearly.


On Wed, Mar 19, 2014 at 1:59 PM, Chris Nauroth <cnaur...@hortonworks.com>wrote:

> I'd like to discuss clarification of part of our compatibility policy.
>  Here is a link to the compatibility documentation for release 2.3.0:
>
>
> http://hadoop.apache.org/docs/r2.3.0/hadoop-project-dist/hadoop-common/Compatibility.html#Wire_compatibility
>
> For convenience, here are the specific lines in question:
>
> Client-Server compatibility is required to allow users to continue using
> the old clients even after upgrading the server (cluster) to a later
> version (or vice versa). For example, a Hadoop 2.1.0 client talking to a
> Hadoop 2.3.0 cluster.
>
> Client-Server compatibility is also required to allow upgrading individual
> components without upgrading others. For example, upgrade HDFS from version
> 2.1.0 to 2.2.0 without upgrading MapReduce.
>
> Server-Server compatibility is required to allow mixed versions within an
> active cluster so the cluster may be upgraded without downtime in a rolling
> fashion.
>
> Notice that there is no specific mention of upgrading the client ahead of
> the server.  (There is no clause for "upgraded client + old server".)
>  Based on my experience, this is a valid use case when a user wants to pick
> up a client-side bug fix ahead of the cluster administrator's upgrade
> schedule.
>
> Is it our policy to maintain client compatibility with old clusters within
> the same major release?  I think many of us have assumed that the answer is
> yes and coded our new features accordingly, but it isn't made explicit in
> the documentation.  Do we all agree that the answer is yes, or is it
> possibly up for debate depending on the change in question?  In RFC 2119
> lingo, is it a MUST or a SHOULD?  Either way, I'd like to update the policy
> text to make our decision clear.  After we have consensus, I can volunteer
> to file an issue and patch the text of the policy.
>
> This discussion started initially in MAPREDUCE-4052, which involved
> changing our scripting syntax for MapReduce YARN container submissions.  We
> settled the question there by gating the syntax change behind a
> configuration option.  By default, it will continue using the existing
> syntax currently understood by the pre-2.4.0 NodeManager, thus preserving
> compatibility.  We wanted to open the policy question for wider discussion
> though.
>
> Thanks, everyone.
>
> Chris Nauroth
> Hortonworks
> http://hortonworks.com/
>
> --
> CONFIDENTIALITY NOTICE
> NOTICE: This message is intended for the use of the individual or entity to
> which it is addressed and may contain information that is confidential,
> privileged and exempt from disclosure under applicable law. If the reader
> of this message is not the intended recipient, you are hereby notified that
> any printing, copying, dissemination, distribution, disclosure or
> forwarding of this communication is strictly prohibited. If you have
> received this communication in error, please contact the sender immediately
> and delete it from your system. Thank You.
>

Reply via email to