Return-Path: X-Original-To: apmail-hbase-user-archive@www.apache.org Delivered-To: apmail-hbase-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 30E68D3D5 for ; Mon, 19 Nov 2012 16:51:04 +0000 (UTC) Received: (qmail 78659 invoked by uid 500); 19 Nov 2012 16:51:02 -0000 Delivered-To: apmail-hbase-user-archive@hbase.apache.org Received: (qmail 78403 invoked by uid 500); 19 Nov 2012 16:51:01 -0000 Mailing-List: contact user-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hbase.apache.org Delivered-To: mailing list user@hbase.apache.org Received: (qmail 78375 invoked by uid 99); 19 Nov 2012 16:51:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Nov 2012 16:51:01 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of michael_segel@hotmail.com designates 65.55.111.90 as permitted sender) Received: from [65.55.111.90] (HELO blu0-omc2-s15.blu0.hotmail.com) (65.55.111.90) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Nov 2012 16:50:52 +0000 Received: from BLU0-SMTP165 ([65.55.111.72]) by blu0-omc2-s15.blu0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Mon, 19 Nov 2012 08:50:31 -0800 X-Originating-IP: [173.15.87.37] X-EIP: [VZKrz9AE2RxW00rBN/BsoQaItLOXEibA] X-Originating-Email: [michael_segel@hotmail.com] Message-ID: Received: from [192.168.0.104] ([173.15.87.37]) by BLU0-SMTP165.blu0.hotmail.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Mon, 19 Nov 2012 08:50:29 -0800 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) Subject: Re: Why only check1-and-putMany and check1-and-deleteMany? From: Michael Segel In-Reply-To: Date: Mon, 19 Nov 2012 10:50:28 -0600 Content-Transfer-Encoding: quoted-printable References: To: user@hbase.apache.org X-Mailer: Apple Mail (2.1499) X-OriginalArrivalTime: 19 Nov 2012 16:50:29.0949 (UTC) FILETIME=[FBACC6D0:01CDC675] X-Virus-Checked: Checked by ClamAV on apache.org Mike,=20 What I am asking is how you define an append in a system that doesn't = support appends.=20 I'm trying to understand what it is that you wish to achieve.=20 To give you an answer which you will probably not like... HBase is still = very primitive in terms of a full feature functionality.=20 On Nov 19, 2012, at 10:19 AM, Mike Spreitzer = wrote: > If you are asking why the HBase API has appends as well as puts, I am = not=20 > going to play the expert here. Either there is a good reason for it, = or=20 > not. >=20 > My goal in this line of questioning is to understand why there is not = a=20 > more comprehensive composite atomic operation available. If there is = a=20 > good reason for the API to include appends, then that reason applies = here.=20 > If there is no such reason, then you may ignore the appends in my=20 > question. >=20 > Thanks, > Mike >=20 >=20 >=20 > From: Michael Segel > To: user@hbase.apache.org > Date: 11/18/2012 03:15 PM > Subject: Re: Why only check1-and-putMany and = check1-and-deleteMany? >=20 >=20 >=20 > Ok, maybe this is a silly question on my part....=20 >=20 > Could you define what you mean by check and append?=20 > With respect to HBase, how would that be different from check and put?=20= >=20 >=20 > On Nov 18, 2012, at 12:28 AM, Mike Spreitzer = wrote: >=20 >> I am not looking at the trunk. I am just a user looking at the=20 > interface=20 >> documented on the web site and wondering why the atomic composite=20 >> functionality is so limited. It is not hard to imagine an expanded=20= >> interface that allows checking an arbitrary set of columns and, if = each=20 >> has a value specified for it, doing an arbitrary set of Mutations. >>=20 >> Thanks, >> Mike >>=20 >>=20 >>=20 >> From: Ted Yu >> To: user@hbase.apache.org >> Date: 11/17/2012 11:44 PM >> Subject: Re: Why only check1-and-putMany and=20 > check1-and-deleteMany? >>=20 >>=20 >>=20 >> Are you looking at trunk code ? >>=20 >> In trunk, take a look at HRegion.checkAndMutate() where you can = specify >> ByteArrayComparable which does the comparison (matching). >> There is still the limit of single value: >> } else if (result.size() =3D=3D 1 && !valueIsNull) { >> KeyValue kv =3D result.get(0); >>=20 >> For the moment, only Put and Delete are supported: >>=20 >> if (!isPut && !(w instanceof Delete)) >> throw new DoNotRetryIOException("Action must be Put or Delete"); >> If you have suggestion on how the check part can be more general, = please >> comment. >>=20 >> Thanks >>=20 >> On Sat, Nov 17, 2012 at 7:30 PM, Mike Spreitzer =20= >> wrote: >>=20 >>> If I understand correctly, an HTable has two composite atomic=20 >> operations, >>> checkAndPut and checkAndDelete. The check part checks just a single >>> column's value. Why not allow checking more than one column? >>>=20 >>> Why no checkAndAppend? >>>=20 >>> The checkAndPut operation can put to multiple columns, right? And = the >>> checkAndDelete operation can delete multiple columns, right? Why = not=20 >> let >>> them be mixed? Why not checkAndMutate? >>>=20 >>> Thanks! >>> Mike >>=20 >=20 >=20