Return-Path: X-Original-To: apmail-hbase-dev-archive@www.apache.org Delivered-To: apmail-hbase-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id ADB04D05F for ; Wed, 12 Dec 2012 00:35:36 +0000 (UTC) Received: (qmail 84101 invoked by uid 500); 12 Dec 2012 00:35:34 -0000 Delivered-To: apmail-hbase-dev-archive@hbase.apache.org Received: (qmail 84028 invoked by uid 500); 12 Dec 2012 00:35:33 -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 83988 invoked by uid 99); 12 Dec 2012 00:35:33 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Dec 2012 00:35:33 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.223.169] (HELO mail-ie0-f169.google.com) (209.85.223.169) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Dec 2012 00:35:27 +0000 Received: by mail-ie0-f169.google.com with SMTP id c14so318077ieb.14 for ; Tue, 11 Dec 2012 16:35:06 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:x-gm-message-state; bh=rf4ft9JHCSaAfTdpotlO3xA1yW27XokCu/75cRDjmP4=; b=m8BooLAAfZLHv5D0f82L7c6dS8S+gj+0KcPn9LlAxLMUBsFiz2GEH+q23UggVHu170 +qSRHCL7RmuxLk5vZBdeIN3gtxYPr27RgJA6Ge/wcL80K4/6Bo1G95tKKpQ7n+Oe2xU5 bTwe3L3Mfy6GotEyRGrylOY5bWy3wil6h6r3D0L9Bp2F4+N61AmyNhibv067EORK+j25 3Q9nAOIn/W/qBz0EjZMujqoAwmCaBlnMHdRfVFJ50r06DVK9OUK9d8MfqnH/6luDs684 E+VIxTAMcDBm5inQmy7vmmRpShB7c2MJ8j+WAkmUOwZgvqZytX8GltOmDpTxwW+rYh65 hFrw== MIME-Version: 1.0 Received: by 10.42.139.74 with SMTP id f10mr15566134icu.4.1355272506709; Tue, 11 Dec 2012 16:35:06 -0800 (PST) Received: by 10.64.97.36 with HTTP; Tue, 11 Dec 2012 16:35:06 -0800 (PST) In-Reply-To: <1355267951.15555.YahooMailNeo@web140604.mail.bf1.yahoo.com> References: <1355267951.15555.YahooMailNeo@web140604.mail.bf1.yahoo.com> Date: Tue, 11 Dec 2012 19:35:06 -0500 Message-ID: Subject: Re: Proposal: Remove explicit RowLocks in 0.96 From: Jean-Marc Spaggiari To: dev@hbase.apache.org, user Content-Type: text/plain; charset=UTF-8 X-Gm-Message-State: ALoCoQnT2bdxmoQCQPSinluVUhoI54kiN7o4kE5cWfMnDvMkpiWNk5yt3Yalibfl+63Tz3Gt3O5K X-Virus-Checked: Checked by ClamAV on apache.org I'm not an HBase expert, but if the lock is not fully working, I don't see the point to keep it on 0.96.x and agree with deprecating it on 0.94.4. Also, I think Andrew's option is a very good fit. We already have Zookeeper available, and HBase might be able to come with something like a row lock based on Zookeeper reservation. Maybe on a later version? JM 2012/12/11, lars hofhansl : > There two different questions here, right: > 1. Remove rowlocks as a client side API (HBASE-7315) > 2. Remove rowlocks from server code and replace it with better mechanism > (HBASE-7263) > > +1 on both. And also +1 on deprecating them in 0.94.4. > > -- Lars > > > > ________________________________ > From: Jonathan Hsieh > To: dev@hbase.apache.org > Cc: Andrew Purtell ; "user@hbase.apache.org" > > Sent: Tuesday, December 11, 2012 2:50 PM > Subject: Re: Proposal: Remove explicit RowLocks in 0.96 > > +1. Deprecate in the next 0.94.x release and remove from 0.96/trunk? > > Jon. > > On Tue, Dec 11, 2012 at 2:40 PM, Andrew Purtell wrote: > >> I would add another point to the reasoning: >> >> 5) Users can build application level rowlocks using HBase's CAS >> primitives, >> or ZooKeeper / Curator recipes (since ZooKeeper is always available in >> HBase environments), and these don't suffer the problems mentioned. >> >> >> On Tue, Dec 11, 2012 at 2:37 PM, Andrew Purtell >> wrote: >> >> > I agree with all points. +1 >> > >> > >> > On Tue, Dec 11, 2012 at 2:00 PM, Ted Yu wrote: >> > >> >> Including user mailing list. >> >> >> >> On Tue, Dec 11, 2012 at 1:52 PM, Gregory Chanan > >> >wrote: >> >> >> >> > Over in HBASE-7263 there has been some discussion about removing >> support >> >> > for explicit RowLocks in 0.96. This would involve the following: >> >> > - Remove lockRow/unlockRow functions in HTable and similar >> >> > - Remove constructors for Put/Delete/Increment/Get that take RowLocks >> >> > - functions in HRegion no longer take lockIds (checkAndPut, append, >> >> > increment, etc). This would affect coprocessors that call directly >> into >> >> > those functions. >> >> > >> >> > I have a patch in HBASE-7315 with the details. >> >> > >> >> > This would violate our usual rule of deprecating a feature one >> >> > release >> >> > before removing. The reasoning is as follows: >> >> > 1) RowLocks are broken >> >> > They are only kept in the memory associated with the region, so on a >> >> > split, region move, RS crash, they just disappear >> >> > >> >> > 2) 0.96 is special >> >> > Now seems like a good time to clean things up since we've made some >> >> > incompatible changes already (e.g. protobufing) and we could have a >> >> cleaner >> >> > client implementation >> >> > >> >> > 3) RowLocks have been deprecated "in spirit" for awhile >> >> > Here's a post from 2009 cautioning against their use: >> >> > http://bb10.com/java-hadoop-hbase-user/2009-09/msg00239.html >> >> > and a more recent example: >> >> > http://permalink.gmane.org/gmane.comp.java.hadoop.hbase.user/23488 >> >> > >> >> > 4) RowLocks are hard to use effectively >> >> > Clients can deadlock or starve themselves, either by forgetting to >> >> release >> >> > the RowLocks or by starving other non-contending row operations by >> >> > occupying server handlers stuck waiting to acquire the locks. >> >> > >> >> > Thoughts? >> >> > >> >> > Greg >> >> > >> >> >> > >> > >> > >> > -- >> > Best regards, >> > >> > - Andy >> > >> > Problems worthy of attack prove their worth by hitting back. - Piet Hein >> > (via Tom White) >> > >> > >> >> >> -- >> Best regards, >> >> - Andy >> >> Problems worthy of attack prove their worth by hitting back. - Piet Hein >> (via Tom White) >> > > > > -- > // Jonathan Hsieh (shay) > // Software Engineer, Cloudera > // jon@cloudera.com