Return-Path: X-Original-To: apmail-hadoop-hdfs-dev-archive@minotaur.apache.org Delivered-To: apmail-hadoop-hdfs-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9EC2210859 for ; Fri, 26 Apr 2013 19:08:05 +0000 (UTC) Received: (qmail 63494 invoked by uid 500); 26 Apr 2013 19:08:02 -0000 Delivered-To: apmail-hadoop-hdfs-dev-archive@hadoop.apache.org Received: (qmail 63317 invoked by uid 500); 26 Apr 2013 19:08:02 -0000 Mailing-List: contact hdfs-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hdfs-dev@hadoop.apache.org Delivered-To: mailing list hdfs-dev@hadoop.apache.org Received: (qmail 63298 invoked by uid 99); 26 Apr 2013 19:08:02 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 26 Apr 2013 19:08:02 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of eli@cloudera.com designates 209.85.216.170 as permitted sender) Received: from [209.85.216.170] (HELO mail-qc0-f170.google.com) (209.85.216.170) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 26 Apr 2013 19:07:55 +0000 Received: by mail-qc0-f170.google.com with SMTP id d42so2295080qca.1 for ; Fri, 26 Apr 2013 12:07:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:content-transfer-encoding :x-gm-message-state; bh=HfHdwVEYpK3QcRexy+zjGn2Rja0Uaa84rMMA3hx6B1Q=; b=TFlt0pD/YniAGELg74si28nv1PLY3ZfHl4s2ffcU+p1A8B5eqz8S0/Eq7J6EW4uaqQ 1WXZOm6zFpjNtGxi/rj5XLZhmquyMJc8vllhDXluDmXyqSSBYMGm+Lwm4qa0KXmpDZE3 euUaFB26AATbDjcr35/vaQCOIY3w5jH39LiUW1doIz3IZF5Ft8Ge/YWrJd1edLPcPg/K YT8M6Qz+ygbfScyXrOZXNQz5t8XImTZXhMIO+PJMy+eIjSDJ0hOvG3ybABq1y5pXnsTa CceauE+/2W0HeAPyLVp8m3bVCAe7LaA4QIBz6GNUViHZre45xkkGf3XxU15UPSsYURm+ 4uHA== MIME-Version: 1.0 X-Received: by 10.229.126.27 with SMTP id a27mr4334395qcs.30.1367003254368; Fri, 26 Apr 2013 12:07:34 -0700 (PDT) Received: by 10.229.143.14 with HTTP; Fri, 26 Apr 2013 12:07:34 -0700 (PDT) In-Reply-To: References: <9408D111-C1D3-448C-A2E3-266A8CF4E176@hortonworks.com> Date: Fri, 26 Apr 2013 12:07:34 -0700 Message-ID: Subject: Re: Heads up - 2.0.5-beta From: Eli Collins To: "yarn-dev@hadoop.apache.org" Cc: "mapreduce-dev@hadoop.apache.org" , "common-dev@hadoop.apache.org" , "hdfs-dev@hadoop.apache.org" Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Gm-Message-State: ALoCoQmBsJhJc4ODAh8avBR5ov25OEBv6ee0kkBA6E6eJaX5jcm0sIKApAiy46pH9Tkx3T5YjKSu X-Virus-Checked: Checked by ClamAV on apache.org On Fri, Apr 26, 2013 at 11:15 AM, Arun C Murthy wrote= : > > On Apr 25, 2013, at 7:31 PM, Roman Shaposhnik wrote: > >> On Thu, Apr 25, 2013 at 6:34 PM, Arun C Murthy wro= te: >> >>> With that in mind, I really want to make a serious push to lock down AP= Is and wire-protocols for hadoop-2.0.5-beta. >>> Thus, we can confidently support hadoop-2.x in a compatible manner in t= he future. So, it's fine to add new features, >>> but please ensure that all APIs are frozen for hadoop-2.0.5-beta >> >> Arun, since it sounds like you have a pretty definite idea >> in mind for what you want 'beta' label to actually mean, >> could you, please, share the exact criteria? > > Sorry, I'm not sure if this is exactly what you are looking for but, as I= mentioned above, the primary aim would be make the final set of required A= PI/write-protocol changes so that we can call it a 'beta' i.e. once 2.0.5-b= eta ships users & downstream projects can be confident about forward compat= ibility in hadoop-2.x line. Obviously, we might discover a blocker bug post= 2.0.5 which *might* necessitate an unfortunate change - but that should be= an outstanding exception. Arun, Suresh, Mind reviewing the following page Karthik put together on compatibility? http://wiki.apache.org/hadoop/Compatibility I think we should do something similar to what Sanjay proposed in HADOOP-5071 for Hadoop v2. If we get on the same page on compatibility terms/APIs then we can quickly draft the policy, at least for the things we've already got consensus on. I think our new developers, users, downstream projects, and partners would really appreciate us making this clear. If people like the content we can move it to the Hadoop website and maintain it in svn like the bylaws. The reason I think we need to do so is because there's been confusion about what types of compatibility we promise and some open questions which I'm not sure everyone is clear on. Examples: - Are we going to preserve Hadoop v3 clients against v2 servers now that we have protobuf support? (I think so..) - Can we break rolling upgrade of daemons in updates post GA? (I don't think so..) - Do we disallow HDFS metadata changes that require an HDFS upgrade in an update? (I think so..) - Can we remove methods from v2 and v2 updates that were deprecated in v0.20-22? (Unclear) - Will we preserve binary compatibility for MR2 going forward? (I think so.= .) - Does the ability to support multiple versions of MR simultaneously via MR2 change the MR API compatibility story? (I don't think so..) - Are the RM protocols sufficiently stable to disallow incompatible changes potentially required by non-MR projects? (Unclear, most large Yarn deployments I'm aware of are running 0.23, not v2 alphas) I'm also not sure there's currently consensus on what an incompatible change is. For example, I think HADOOP-9151 is incompatible because it broke client/server wire compatibility with previous releases and any change that breaks wire compatibility is incompatible. Suresh felt it was not an incompatible change because it did not affect API compatibility (ie PB is not considered part of the API) and the change occurred while v2 is in alpha. Not sure we need to go through the whole exercise of what's allowed in an alpha and beta (water under the bridge, hopefully), but I do think we should clearly define an incompatible change. It's fine that v2 has been a bit wild wild west in the alpha development stage but I think we need to get a little more rigorous. Thanks, Eli