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 8119E200D4F for ; Wed, 6 Dec 2017 17:29:36 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 7F9E6160C08; Wed, 6 Dec 2017 16:29:36 +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 9E133160BFD for ; Wed, 6 Dec 2017 17:29:35 +0100 (CET) Received: (qmail 47432 invoked by uid 500); 6 Dec 2017 16:29:34 -0000 Mailing-List: contact dev-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@accumulo.apache.org Delivered-To: mailing list dev@accumulo.apache.org Received: (qmail 47420 invoked by uid 99); 6 Dec 2017 16:29:34 -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; Wed, 06 Dec 2017 16:29:34 +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 AA3E41A13B9 for ; Wed, 6 Dec 2017 16:29:33 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.22 X-Spam-Level: X-Spam-Status: No, score=-0.22 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=deenlo-com.20150623.gappssmtp.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id OoknmnqZQ0R2 for ; Wed, 6 Dec 2017 16:29:31 +0000 (UTC) Received: from mail-qt0-f179.google.com (mail-qt0-f179.google.com [209.85.216.179]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id AB72F5F244 for ; Wed, 6 Dec 2017 16:29:30 +0000 (UTC) Received: by mail-qt0-f179.google.com with SMTP id w10so10231954qtb.10 for ; Wed, 06 Dec 2017 08:29:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deenlo-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=WtVx6qkltvIXqYrT8wYn2TUIgOwiel/EUljAo8sjSAM=; b=XmxGCq1722aJ+BBOC5+wqRhOCUi3cmIK09sPuf7ohn29DpZN1DLgRaHmejz8ZDxhbR Z1Ksp6btXtt/YM9qRDIVCL3byXT9pvCH4shFA+OWn3eeYL9lFesfaOdLikro6FhFxJe5 ffzu+QfGTvHuLOAwrWdXrVfwBSFpl6Lsf7l1AHmMPrfAUiXWSduQoyKUVzIMKjQYMh9B 3moxEbEzbw2AEellcTpUDWFgob9epIW17Bt1XWR8NtUmMlCgg7HIWiShIVgUt5iE3F7t UU64k3SgpUrEoKUi50t4W3GiprLF2Jb2r+c+CX6hzlf81ullvgXfIAM6F7lprExAnu8Q VoCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=WtVx6qkltvIXqYrT8wYn2TUIgOwiel/EUljAo8sjSAM=; b=tAklaCM0Hi9me1cpp+y7FtfSsLnXDJQ6vp145VhgWtEZcrrUEeZDFlVB9ybtu/Lgst +4dTqMAdd8EEHfWDaAt/UyEt2WTpaU8C4c2HnSjqcHhUj7XZdHC+wG45OtD6oCkCPWdh Y2FbZhd1uQ1HHpMGRvQw+LOy+TXWSjpKUWzgtUk3v289CLJxyGb1PTzLE/ES3JbEmqsU 1zFoZ6/MY6532BHyp3BGy34mgWlYlh4vljldPy1BLxr8hdNynnVFEd16yA/gTOP6C4Yr HqiWuWlxH9mhD3aRFii9Gv1fSYxlqpWDV3kylHvSsHPj79EB8hUbD/vxAM+1Jy7aiAHi +IUg== X-Gm-Message-State: AKGB3mKcyIBa+dtkiAqzXyuBJhihwy4JwTFwtGo5u9k3Gg9HEFTyQ3yz ykS8T/whba3amoph6MJcTmckqme1WhCMXsMD/AdWdQ== X-Google-Smtp-Source: AGs4zMZxdZTw9AY+vA5r5dQJMSrJjB3UvrmG5SnjCsaFB3BM4M+3D9dpUe6oEMxesQlEKmHxkfFu3YC1rGgDva2ugVk= X-Received: by 10.200.2.160 with SMTP id p32mr5075207qtg.172.1512577764065; Wed, 06 Dec 2017 08:29:24 -0800 (PST) MIME-Version: 1.0 Received: by 10.12.187.129 with HTTP; Wed, 6 Dec 2017 08:29:23 -0800 (PST) In-Reply-To: References: <06fc51f8-814a-2899-c62b-15c7f1aeca0f@apache.org> <0174acbf-478d-eeee-32d5-6fb5255ad7d2@apache.org> <007301d36d57$7b7abce0$727036a0$@gmail.com> <3d2e197b-f3ad-4c37-69a1-b612f9a03a28@apache.org> From: Keith Turner Date: Wed, 6 Dec 2017 11:29:23 -0500 Message-ID: Subject: Re: [DISCUSS] Hadoop3 support target? To: Accumulo Dev List Content-Type: text/plain; charset="UTF-8" archived-at: Wed, 06 Dec 2017 16:29:36 -0000 On Wed, Dec 6, 2017 at 11:28 AM, Josh Elser wrote: > 1.a sounds better to me. why? > > A would be the ideal solution, I think B is the next best if A doesn't work. > > I need to get the Hadoop3 compatibility fixed, so I'll be investigating the > Hadoop shaded artifacts this week. > > > On 12/5/17 6:43 PM, Christopher wrote: >> >> I was wondering about Hadoop 3 shading and whether that would help us. It >> would be really nice if it could, or if there was some other class path >> solution that was easy. >> >> I think there are two major issues in this thread. The first is the API >> problems. The second is the Hadoop 3 support. They are related, but I >> think >> quickly dealing with the API issues can clarify what our options are for >> Hadoop 3. >> >> >> >> >> To fix the API, I would like to get consensus on proceeding with this >> path: >> >> 1. Rename 1.8.2-SNAPSHOT to 1.9.0-SNAPSHOT and deprecate the existing >> ZooKeeperInstance constructor which takes a Configuration >> a) Deprecate ClientConfiguration and replace with ClientConfig (or a >> better name) which does not extend Configuration or have API leak >> problems, >> and add a new ZKI constructor for this >> b) Ignore extends for now, and drop it from ClientConfiguration in >> 2.0 >> with a break (can't deprecate superclass), and add new ZKI constructor for >> more specific ClientConfiguration next to deprecated one >> 2. Drop deprecated stuff from 2.0 branch (and extends, if option 1.b was >> chosen) >> 3. Plan a 1.9.0 release instead of 1.8.2 >> >> I prefer 1.a over 1.b, personally, but I've been tossing back and forth. I >> would need input on which is best. There are pros and cons to both, >> regarding churn, and source and binary compatibility. >> >> >> >> >> Once we deal with the API, our options for Hadoop 3 become: >> >> A. Use Hadoop 3 shaded artifacts or some other class path solution (such >> as >> getting lucky identifying a version of commons-beanutils that works for >> both) >> B. Shade in 1.9 with a breaking change >> C. Create a 1.9 version named 2.0, so we can do a breaking change without >> semver violation; shade in this version >> D. Shade in the branch we're currently calling 2.0 >> >> I think we can defer that decision pending some further >> investigation/experimentation into what works, and deal with it after >> dealing with steps 1-3 above (but soon after, hopefully). >> >> >> >> On Tue, Dec 5, 2017 at 3:58 PM Josh Elser wrote: >> >>> Another potential suggestion I forgot about: we try to just move to the >>> Hadoop shaded artifacts. This would invalidate the need to do more, but >>> I have no idea how "battle-tested" those artifacts are. >>> >>> On 12/5/17 3:52 PM, Keith Turner wrote: >>>> >>>> If we do the following. >>>> >>>> * Drop ZooKeeperInstance.ZooKeeperInstance(Configuration config) >>> >>> method. >>>> >>>> * Drop extends from ClientConfig >>>> * Add a method ZooKeeperInstance.ZooKeeperInstance(ClientConfig >>>> config) >>>> >>>> Then this will not be binary compatible, so it will still be painful >>>> in many cases. It may be source compatible. >>>> >>>> For example the following will be source (but not binary) compatible. >>>> >>>> ClientConfiguration cc = new ClientConfiguration(file); >>>> //when compiled against older version of Accumulo will bind to >>>> method with commons config signature >>>> //when recompiled will bind to clientconfig version of method >>>> ZooKeeperInstance zki = new ZooKeeperInstance(cc); >>>> >>>> The following would not be source or binary compatible. >>>> >>>> Configuration cc = new ClientConfiguration(file); >>>> ZooKeeperInstance zki = new ZooKeeperInstance(cc); >>>> >>>> >>>> On Tue, Dec 5, 2017 at 3:40 PM, Josh Elser wrote: >>>>> >>>>> >>>>> >>>>> On 12/5/17 3:28 PM, Keith Turner wrote: >>>>>> >>>>>> >>>>>> On Tue, Dec 5, 2017 at 2:53 PM, Josh Elser wrote: >>>>>>> >>>>>>> >>>>>>> Interesting. What makes you want to deprecate ClientConfig entirely? >>>>>>> >>>>>>> I'd be worried about removing without sufficient thought of >>> >>> replacement >>>>>>> >>>>>>> around. It would be a bit "churn-y" to introduce yet another way that >>>>>>> clients have to connect (since it was introduced in 1.6-ish?). >>>>>>> Working >>>>>>> around the ClientConfig changes was irritating for the downstream >>>>>>> integrations (Hive, most notably). >>>>>> >>>>>> >>>>>> Ok maybe thats a bad idea, not looking to cause pain. Here were some >>>>>> of my goals. >>>>>> >>>>>> * Remove commons config from API completely via deprecation cycle. >>>>>> * Introduce API that supports putting all props needed to connect >>>>>> to >>>>>> Accumulo in an API. >>>>>> >>>>>> I suppose if we want to keep ClientConfig class in API, then there is >>>>>> no way to remove commons config via a deprecation cycle?? We can't >>>>>> deprecate the extension of commons config, all we can do is just drop >>>>>> it at some point. >>>>>> >>>>> >>>>> My line of thinking is that the majority of the time, we're creating a >>>>> ClientConfiguration by one of: >>>>> >>>>> * ClientConfiguration#loadDefault() >>>>> * new ClientConfiguration(String) >>>>> * new ClientConfiguration(File) >>>>> >>>>> Granted, we also inherit/expose a few other things (notably extending >>>>> CompositeConfiguration and throwing ConfigurationException). I would be >>>>> comfortable with dropping those w/o deprecation. I have not seen >>> >>> evidence >>>>> >>>>> from anyone that they are widely in use by folks (although I've not >>>>> explicitly asked, either). >>> >>> >> >