Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 3F3BF200B98 for ; Mon, 3 Oct 2016 16:17:14 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 3DCC4160ADC; Mon, 3 Oct 2016 14:17:14 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 31530160ACC for ; Mon, 3 Oct 2016 16:17:13 +0200 (CEST) Received: (qmail 13622 invoked by uid 500); 3 Oct 2016 14:17:12 -0000 Mailing-List: contact dev-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list dev@hbase.apache.org Received: (qmail 13607 invoked by uid 99); 3 Oct 2016 14:17:11 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Oct 2016 14:17:11 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 7555A1A73A9 for ; Mon, 3 Oct 2016 14:17:11 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.379 X-Spam-Level: ** X-Spam-Status: No, score=2.379 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id dFMX3bvrIg43 for ; Mon, 3 Oct 2016 14:17:08 +0000 (UTC) Received: from mail-yw0-f173.google.com (mail-yw0-f173.google.com [209.85.161.173]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with ESMTPS id C5B7D5FE4A for ; Mon, 3 Oct 2016 14:17:07 +0000 (UTC) Received: by mail-yw0-f173.google.com with SMTP id t193so29413224ywc.2 for ; Mon, 03 Oct 2016 07:17:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=OpCTM7F7SbY4XhDUzG3BY7BoW7GYjkGRhlDvj5VHxH4=; b=KPW99q5G8E3s2vf7liq6Oj3othrjJkMuGaYkKxh6sHSH5RjzitJrGPOWujNxffXz9H WfpmSz9PIvClbmfTIoYslCzQPmG60pDENdnULKcFwBwtk2gfszetLVaNzcf1ANOm4cJd di7+vz4KasdtTcbIpUVTDy8iHgMVhssdRqC3dhK22HYhFshEbvKTqLqQaeACZgvN0Omc BbmAURe3pLjm3rpf0UISlRAVf5AhMwZrJu5e73uKVDTtNF7f5NTkGg8fUleExpblc+Qb 0MU3XIxnzUvQ3rxY1NvITcNBMFYIUI4fvH1cbo78d050PodWxujgm9Zp82xWIaLg3QIH MGJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=OpCTM7F7SbY4XhDUzG3BY7BoW7GYjkGRhlDvj5VHxH4=; b=lMOpRKhI26hrJSQDWb87e6XYDmWYljBR73XLVE0GPQ+gA+claf0kAdwqNftt1Lyzak 3pwiDyx1x2qZrsGlPCClprwOj7AliADW5G+EE/8YDq9hCZLb57EFTCAJKg9OLArcCZJM xLoMuBCQ4Ts+S+y1EqXXO1eOdVEn49GBX2dO0RkABBkogh5khpdqs5CLNNmp/woTMlWf mPVMQTf4+iCjJ/UqoeJerM7vCI3zgXQONkqImWyd3oTY6wOT/aPNU78/SEwkYDIvgPXp JONPy+tEIdY/fj8B4D3sVbNkvayZT6jGy0EPXRGPE4Jji74kv3xpW2bH8YPzeHnWROKQ IOww== X-Gm-Message-State: AA6/9Rk11ytAVZG4gGUpjE1Y17CkzaK+MLbATdDuXunQrwe0IfBsMxepfYBkzh59XcI9wMTsge/PaAC0B6Glcw== X-Received: by 10.13.233.194 with SMTP id s185mr14531918ywe.191.1475504220617; Mon, 03 Oct 2016 07:17:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.37.171.33 with HTTP; Mon, 3 Oct 2016 07:16:59 -0700 (PDT) In-Reply-To: References: <936A25D2-13BB-470F-85D7-97591EF88252@gmail.com> From: Ted Yu Date: Mon, 3 Oct 2016 07:16:59 -0700 Message-ID: Subject: Re: [NOTICE] Merge of shaded protobuf 3.1.0 (WAS => [DISCUSS] Shade protobuf so we can move to a newer version) To: "dev@hbase.apache.org" Content-Type: multipart/alternative; boundary=94eb2c075fe8ef6084053df698fe archived-at: Mon, 03 Oct 2016 14:17:14 -0000 --94eb2c075fe8ef6084053df698fe Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Looks like compile-protobuf profile is not in hbase-protocol-shaded/pom.xml (in HBASE-16264 branch) Seems precommit jobs should pass with the current formation. In the future, if we add another profile for compiling proto3 files, we need to specify the path to proto3 compiler. Please correct me if I am wrong. On Mon, Oct 3, 2016 at 6:58 AM, Ted Yu wrote: > The protoc generated files (such as MasterProtos) are checked into source > repo, right ? > > Do we need proto3 on the precommit image(s) ? > > On Mon, Oct 3, 2016 at 5:18 AM, =E5=BC=A0=E9=93=8E wrote: > >> Then I think we need to file an issue to change the protoc version >> installed in the precommit docker file to 3.x before the merge. Otherwis= e >> the precommit build for protoc check maybe broken after the merge... >> >> >> 2016-10-03 1:18 GMT+08:00 Andrew Purtell : >> >> > I have 2.5 and 3.0 installed as /opt/protobuf-, and have bash >> > scripts that add the appropriate version's bin directory to the path. >> Not >> > particularly onerous as I also have to switch between required JDK >> > versions, so the scripts also set JAVA_HOME at and add JDK bin to the >> path >> > for the required JDK for the build. >> > >> > Unlike with the scala compiler, which is after all JVM bytecode at a >> > fundamental level, I don't think maven automation for automatic downlo= ad >> > and execution is possible. protoc is a native binary. >> > >> > > On Oct 1, 2016, at 11:30 PM, =E5=BC=A0=E9=93=8E wrote: >> > > >> > > Do we need to install protoc 3.0 manully before building HBase or th= e >> > maven >> > > protobuf plugin will automatically download the protoc compiler? >> Maybe we >> > > need to install protoc 3.0 in the precommit docker file. >> > > >> > > 2016-10-02 14:20 GMT+08:00 =E5=BC=A0=E9=93=8E : >> > > >> > >> >> > >> 2016-10-02 0:50 GMT+08:00 Stack : >> > >> >> > >>>> On Sat, Oct 1, 2016 at 7:20 AM, =E5=BC=A0=E9=93=8E wrote: >> > >>>> >> > >>>> Can we setup a compatibility checker job in jenkins? Start a >> > >>> minicluster in >> > >>>> one process, and use a client in another process to communicate >> with >> > it. >> > >>>> The version of the client should be >=3D 0.98 and <=3D the versio= n of >> the >> > >>>> minicluster. Of course we need to design the testing code >> carefully to >> > >>> make >> > >>>> sure that we have tested all the cases. >> > >>>> >> > >>>> >> > >>> +1. We need this up and running before we put out an hbase-2.0.0. = I >> > know >> > >>> Matteo does this test manually on a regular basis but a >> formalization >> > >>> would >> > >>> help. I can add an exercise of Coprocessor Endpoints. I believe th= is >> > is on >> > >>> Dima's list of TODOs but will let him speak for himself. >> > >>> >> > >>> >> > >>>> And also I think we should make sure that no proto3 only feature = is >> > >>>> introduced in our proto files until branch-1 is dead. Maybe a >> > precommit >> > >>>> check? >> > >>>> >> > >>>> >> > >>> I think you mean wire-format breaking changes? Agree. We have our >> PB3 >> > set >> > >>> to 2.5 compat mode and yes, we can't move on from this until we ar= e >> in >> > a >> > >>> place where we can say no to 2.5 clients. >> > >>> >> > >> Yes, for example, pb2.5 does not support map so we should not use >> map in >> > >> our proto files. >> > >> >> > >>> >> > >>> Making use of PB3isms cannot be avoided. PB3.1 adds a native >> > replacement >> > >>> for our HBaseZeroCopyByteString/ByteStringer hack. It also adds >> > 'unsafe' >> > >>> methods that we need to exploit if we are to keep our read/write >> paths >> > >>> offheap. >> > >>> >> > >>> St.Ack >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > >>>> Thanks. >> > >>>> >> > >>>> 2016-10-01 11:55 GMT+08:00 Sean Busbey : >> > >>>> >> > >>>>> have we experimentally confirmed that wire compatibility is >> > >>>>> maintained? I saw one mention of expecting wire compatibility to >> be >> > >>>>> fine, but nothing with someone using e.g. the clusterdock work o= r >> > >>>>> something to mix servers / clients or do replication. >> > >>>>> >> > >>>>>> On Fri, Sep 30, 2016 at 6:30 PM, Stack wrote= : >> > >>>>>> I intend to do a mass commit late this weekend that moves us on >> to a >> > >>>>> shaded >> > >>>>>> protobuf-3.1.0, either Sunday night or Monday morning. >> > >>>>>> >> > >>>>>> If objection, please speak up or if need more time for >> > >>>>>> consideration/review, just shout. >> > >>>>>> >> > >>>>>> I want to merge the branch HBASE-16264 into master (it is runni= ng >> > >>> here >> > >>>> up >> > >>>>>> on jenkins https://builds.apache.org/view >> /H-L/view/HBase/job/HBASE- >> > >>>>> 16264/). >> > >>>>>> The branch at HBASE-16264 has three significant bodies-of-work >> that >> > >>>>>> unfortunately are tangled and can only go in of a piece. >> > >>>>>> >> > >>>>>> * HBASE-16264 > > >> > >>> The >> > >>>>>> shading of our protobuf usage so we can upgrade and/or run with= a >> > >>>> patched >> > >>>>>> protobuf WITHOUT breaking REST, Spark, and in particular, >> > >>> Coprocessor >> > >>>>>> Endpoints. >> > >>>>>> * HBASE-16567 > > >> > >>> A >> > >>>>> move >> > >>>>>> up on to (shaded) protobuf-3.1.0 >> > >>>>>> * HBASE-16741 > > >> > >>> An >> > >>>>>> amendment of our generate protobufs step to include shading and= a >> > >>>>> bundling >> > >>>>>> of protobuf src (with a means of calling a patch srcs hook) >> > >>>>>> >> > >>>>>> Together we're talking about 40MB of change mostly made of the >> > >>> movement >> > >>>>> of >> > >>>>>> generated files or the application of a pattern that alters >> where we >> > >>>> get >> > >>>>>> imports from. When done, you should notice no difference and >> should >> > >>> be >> > >>>>> able >> > >>>>>> to go about your business as per usual. Upside is that we will = be >> > >>> able >> > >>>> to >> > >>>>>> avoid coming onheap doing protobuf marshalling/unmarshalling as >> > >>>> protobuf >> > >>>>>> 2.5.0 requires. Downside is that we repeat a good portion of ou= r >> > >>>> internal >> > >>>>>> protos, once non-shaded so Coprocessor Endpoints can keep worki= ng >> > >>> and >> > >>>>> then >> > >>>>>> again as shaded for internal use. >> > >>>>>> >> > >>>>>> I provide some more overview below on the changes. See the >> shading >> > >>> doc >> > >>>>>> here: >> > >>>>>> https://docs.google.com/document/d/1H4NgLXQ9Y9KejwobddCqaVME >> DCGby >> > >>>>> DcXtdF5iAfDIEk/edit# >> > >>>>>> for more detail (Patches are up on review board -- except the >> latest >> > >>>>>> HBASE-16264 which is too big for JIRA and RB). I am currently >> > >>> working >> > >>>> on >> > >>>>> a >> > >>>>>> devs chapter for the book on protobuf going forward that will g= o >> in >> > >>> as >> > >>>>> part >> > >>>>>> of this patch. >> > >>>>>> >> > >>>>>> Thanks, >> > >>>>>> St.Ack >> > >>>>>> >> > >>>>>> Items of note: >> > >>>>>> >> > >>>>>> * Two new modules; one named hbase-protocol-shaded that is used >> by >> > >>>> hbase >> > >>>>>> core. It has in it a shaded (and later patched) protobuf. The >> other >> > >>> new >> > >>>>>> module is hbase-endpoint which goes after hbase-server and has >> those >> > >>>>>> bundled endpoints that I was able to break out of core (there >> are a >> > >>> few >> > >>>>>> that are hopelessly entangled that need to be undone as CPEPs b= ut >> > >>>>>> fortunately belong in core: Auth, Access, MultiRow). >> > >>>>>> * I've tested running a branch-1 CPEP against a master with the= se >> > >>>>> patches >> > >>>>>> in place and stuff like ACL (A CPEP) run from the branch-1 shel= l >> > >>> work >> > >>>>>> against the branch-2 server. >> > >>>>>> >> > >>>>>> >> > >>>>>> >> > >>>>>> >> > >>>>>> >> > >>>>>>> On Mon, Aug 22, 2016 at 5:20 PM, Stack >> wrote: >> > >>>>>>> >> > >>>>>>> This project goes on. I updated HBASE-1563 "Shade protobuf" wi= th >> > >>> some >> > >>>>> doc >> > >>>>>>> on a final approach. We need to be able to refer to both shade= d >> and >> > >>>>>>> non-shaded protobuf so we can support sending HDFS old-school = pb >> > >>>>> Messages >> > >>>>>>> but also so Coprocessor Endpoints keep working though internal= ly >> > >>>>> protobufs >> > >>>>>>> have been relocated. Funny you should ask, but yes, there are >> some >> > >>>>>>> downsides (as predicted by contributors on the JIRA). I'd be >> > >>>> interested >> > >>>>> to >> > >>>>>>> hear if they are too burdensome. In particular, your IDE >> experience >> > >>>>> gets a >> > >>>>>>> little convoluted as you will need to add to your build path, = a >> jar >> > >>>> with >> > >>>>>>> the relocated pbs. A pain. >> > >>>>>>> >> > >>>>>>> Thanks, >> > >>>>>>> St.Ack >> > >>>>>>> >> > >>>>>>> >> > >>>>>>>> On Wed, Apr 13, 2016 at 6:09 AM, Stack >> wrote: >> > >>>>>>>> >> > >>>>>>>> On Tue, Apr 12, 2016 at 9:26 PM, Sean Busbey < >> busbey@apache.org> >> > >>>>> wrote: >> > >>>>>>>> >> > >>>>>>>>>> On Tue, Apr 12, 2016 at 6:17 PM, Stack >> > wrote: >> > >>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>>>> On an initial pass, the only difficult part seems to be >> > >>>> interaction >> > >>>>>>>>> with >> > >>>>>>>>>> HDFS in asyncwal (might just pull in the HDFS messages). >> > >>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>>> >> > >>>>>>>>> I have some idea how we can make this work either by pushing >> > >>>> asyncwal >> > >>>>>>>>> upstream to HDFS or through some maven tricks, depending on >> how >> > >>> much >> > >>>>>>>>> time we have. >> > >>>>>>>>> >> > >>>>>>>> >> > >>>>>>>> Maven tricks? Tell us more. Here or drop a note up in the >> issue. >> > >>>>>>>> Thanks Sean, >> > >>>>>>>> St.Ack >> > >>>>>>>> >> > >>>>>>> >> > >>>>>>> >> > >>>>> >> > >>>>> >> > >>>>> >> > >>>>> -- >> > >>>>> busbey >> > >>>>> >> > >>>> >> > >>> >> > >> >> > >> >> > >> > > --94eb2c075fe8ef6084053df698fe--