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 C6F7A2007D0 for ; Tue, 10 May 2016 21:04:55 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id C4F1916098A; Tue, 10 May 2016 19:04:55 +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 E811E160877 for ; Tue, 10 May 2016 21:04:54 +0200 (CEST) Received: (qmail 29969 invoked by uid 500); 10 May 2016 19:04:53 -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 29957 invoked by uid 99); 10 May 2016 19:04:53 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 May 2016 19:04:53 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 2D4D0CBF8B for ; Tue, 10 May 2016 19:04:53 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.28 X-Spam-Level: * X-Spam-Status: No, score=1.28 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id DVcI9s4wcaP0 for ; Tue, 10 May 2016 19:04:51 +0000 (UTC) Received: from mail-oi0-f49.google.com (mail-oi0-f49.google.com [209.85.218.49]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id CD5C060CE6 for ; Tue, 10 May 2016 19:04:50 +0000 (UTC) Received: by mail-oi0-f49.google.com with SMTP id k142so31734317oib.1 for ; Tue, 10 May 2016 12:04:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to; bh=qaTrExd5v4ol1/PqUblOINXxXm92e580unc2TG4yOJ4=; b=E48jN3vAIq42ZaMg+hVOBaG5X7PvDLYiwDgoct9OPay7HnSlU4qOBryHt7EUB+9LTe o6kSoy/p2MmJ7oc1hRQS0ADzaif4ipK7SCuNJcJQc+1pzBtpKnbGwRP6gSe2aM6oPG0f XFaxqT2TVKOpZVKaZTD0PPQ2KuVknvyy/Kf8UUVUb9/B4JfPDT+uOVTV7hMbywx9tpmV Z9L9twQ2ihQf1e7R8KXu+wx/xGOl1ysOeYmciNZ+IDJJbKymAzmjGTuUXOMKtGWxpadg ZTrXRzh96u5TkSvX8j33xJE/IQnIuNfTh9nDZKB4m6Ds1M5J7sMSK+Pz/40qEK4yVA1G PAZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to; bh=qaTrExd5v4ol1/PqUblOINXxXm92e580unc2TG4yOJ4=; b=DS73nmNXz0kWA3OF4K60UtEOMnjwtbnHfVA8D22kQ9K/oqI15DFByS4QJcuLQ37PgD yBpdBYVqhB8juo15HA5jntB+UauXs0KwQtn9O+rz28WNeJdoTmB9dzKm6AXYZe5ECq3x vJNP+2VkiNEzb1ed8b1YLHBF1o7TgxDLNLRiCdTLzFpOEd0dwdb7nEHgRdQgXKvSV0/f mso63WMIOfM39RVyILkevExR7zAinzsvmelqICn6ySZMQXXyN4jMp/SWicy2QG3Nz/nS JOTgouY7EqbeyhW+ZxAnCRWfvEF3vfbZotxCT26EywSZvfRwDwBfRToG/EL0aZtYUYQj 0nKA== X-Gm-Message-State: AOPr4FUxC6n+x5qFuzikzVMQlB0sFdEIhcFpM/zXc0udaMmq3TJ5hhzQGNYLwTirVGqL7QNczrmVTzTvd4dh+w== MIME-Version: 1.0 X-Received: by 10.202.182.69 with SMTP id g66mr13009054oif.26.1462907089571; Tue, 10 May 2016 12:04:49 -0700 (PDT) Sender: saint.ack@gmail.com Received: by 10.182.231.41 with HTTP; Tue, 10 May 2016 12:04:49 -0700 (PDT) In-Reply-To: References: Date: Tue, 10 May 2016 12:04:49 -0700 X-Google-Sender-Auth: ZkoBgJMOW-Z9QdNF_mRSwgFwtkw Message-ID: Subject: Re: [DISCUSS] Make AsyncFSWAL the default WAL in 2.0 From: Stack To: HBase Dev List Content-Type: multipart/alternative; boundary=001a113cf15269d88a053281992a archived-at: Tue, 10 May 2016 19:04:56 -0000 --001a113cf15269d88a053281992a Content-Type: text/plain; charset=UTF-8 On Tue, May 10, 2016 at 10:39 AM, Gary Helmling wrote: > > > > The suggestion is that we make this new client the default now in master > > branch so we have plenty of time to find any issues with the > > implementation. We'd also enable it as the default because the > improvement > > is dramatic (performance, less moving parts, comprehensible, etc.) and we > > think this async, lightweight, WAL-purposed client the way to go moving > > forward. We'd also spare our users having to make a choice; if optional, > if > > they trip over the feature at all, they'll be wary enabling such a > > fundamental afraid that it experimental. > > > > > To me, having the opportunity to shake out issues sounds like an argument > for making it experimental, not making it the default. I was trying to avoid the below oft-repeated pattern at least for the case of critical developments: + New feature arrives after much work by developer, reviewers and testers accompanied by fanfare (blog, talks). + Developers and reviewers move on after getting it committed or it gets hacked into a deploy so it works in a frankenstein form + It sits in our code base across one or more releases marked as optional, 'experimental' + The 'experimental' bleamish discourages its exercise by users + The feature lags, rots + Or, the odd time, we go ahead and enable it as default in spite of the fact it was never tried when experimental. Distributed Log Replay sat in hbase across a few major versions. Only when the threat of our making an actual release with it on by default did it get serious attention where it was found flawed and is now being actively purged. This was after it made it past reviews, multiple attempts at testing at scale, and so on; i.e. we'd done it all by the book. The time in an 'experimental' state added nothing. > I think that > features we're rolling out to our users actively enabled should have some > level of confidence that the issues are already shaken out. I'm interested > in testing this out myself, but personally I would want to test this by > actively enabling it and not just having it show up unexpectedly in a new > release. > > Maybe this is mitigated by the reality that a 2.0 release is not going to > happen for quite a while. But this also becomes a self-fulfilling prophecy > if we continue to make disruptive changes in master. > > Yes. 2.0 is a bit out there so we have some time to iron out issues is the thought. Yes, it could push out delivery of 2.0. > > Going this route we are taking on risk as you call out Gary but the > > suggestion is that the benefits far outweigh the downsides (In > mitigation, > > I don't think we've ever run against HDFS free of reflection code though, > > true, we are into a new level of violation with this client). > > > > > I'm not trying to argue for a perfect world. :) > > But I do think there is a big difference in some of our other past use of > reflection to ride over changes in public APIs vs. reaching in to private > fields in private annotated classes. What would we say to a coprocessor > that did the same with HBase? > You have a point. We'd break the dependent w/o regard as HDFS will do to this feature until it gets pushed upstream. > > We are not arguing that it needs to be default to help get the async > client > > upstreamed into HDFS. Maybe it would help but going by the issue cited by > > Duo below, it seems like there are a bunch of other concerns and > dimensions > > to be considered first; it may take a while for an async DFS client to > land > > (if at all). We should push on the upstreaming yes to close down the risk > > you note, but let us not predicate our use of async WAL on it first being > > committed to HDFS. > > > > > I don't think our ability to use the async WAL as an optional feature > should be predicated on inclusion in HDFS. But I do think our use of it as > the default, and all the continuing support that that implies should be. > That is where we disagree. > > I don't think we're really making progress with the discussion here. I > don't agree with the arguments being put forward, but it seems like I'm in > the minority. > I think the discussion here has been helpful. Holes have been found (and plugged), the risk involved has gotten a good airing out here on dev, and in spite of the back and forth, one of our experts in good standing is still against it being on by default. If you are not down w/ the arguments, I'd be fine not making it the default. St.Ack --001a113cf15269d88a053281992a--