Which is what I mean when I ask what you mean by an append. :-)
On Nov 19, 2012, at 11:01 AM, Mike Spreitzer <[email protected]> wrote: > I do not know what you mean about HBase not supporting appends. I see > this: > > http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTableInterface.html#append%28org.apache.hadoop.hbase.client.Append%29 > > However, the point of my question is not specific to appends. I am asking > why HBase does not have checkMany-and-mutateMany. > > Thanks, > Mike > > > > From: Michael Segel <[email protected]> > To: [email protected] > Date: 11/19/2012 11:54 AM > Subject: Re: Why only check1-and-putMany and check1-and-deleteMany? > > > > Mike, > > What I am asking is how you define an append in a system that doesn't > support appends. > > I'm trying to understand what it is that you wish to achieve. > > To give you an answer which you will probably not like... HBase is still > very primitive in terms of a full feature functionality. > > > On Nov 19, 2012, at 10:19 AM, Mike Spreitzer <[email protected]> wrote: > >> If you are asking why the HBase API has appends as well as puts, I am > not >> going to play the expert here. Either there is a good reason for it, or > >> not. >> >> My goal in this line of questioning is to understand why there is not a >> more comprehensive composite atomic operation available. If there is a >> good reason for the API to include appends, then that reason applies > here. >> If there is no such reason, then you may ignore the appends in my >> question. >> >> Thanks, >> Mike >> >> >> >> From: Michael Segel <[email protected]> >> To: [email protected] >> Date: 11/18/2012 03:15 PM >> Subject: Re: Why only check1-and-putMany and > check1-and-deleteMany? >> >> >> >> Ok, maybe this is a silly question on my part.... >> >> Could you define what you mean by check and append? >> With respect to HBase, how would that be different from check and put? >> >> >> On Nov 18, 2012, at 12:28 AM, Mike Spreitzer <[email protected]> > wrote: >> >>> I am not looking at the trunk. I am just a user looking at the >> interface >>> documented on the web site and wondering why the atomic composite >>> functionality is so limited. It is not hard to imagine an expanded >>> interface that allows checking an arbitrary set of columns and, if each > >>> has a value specified for it, doing an arbitrary set of Mutations. >>> >>> Thanks, >>> Mike >>> >>> >>> >>> From: Ted Yu <[email protected]> >>> To: [email protected] >>> Date: 11/17/2012 11:44 PM >>> Subject: Re: Why only check1-and-putMany and >> check1-and-deleteMany? >>> >>> >>> >>> Are you looking at trunk code ? >>> >>> 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() == 1 && !valueIsNull) { >>> KeyValue kv = result.get(0); >>> >>> For the moment, only Put and Delete are supported: >>> >>> 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. >>> >>> Thanks >>> >>> On Sat, Nov 17, 2012 at 7:30 PM, Mike Spreitzer <[email protected]> >>> wrote: >>> >>>> If I understand correctly, an HTable has two composite atomic >>> operations, >>>> checkAndPut and checkAndDelete. The check part checks just a single >>>> column's value. Why not allow checking more than one column? >>>> >>>> Why no checkAndAppend? >>>> >>>> The checkAndPut operation can put to multiple columns, right? And the >>>> checkAndDelete operation can delete multiple columns, right? Why not >>> let >>>> them be mixed? Why not checkAndMutate? >>>> >>>> Thanks! >>>> Mike >>> >> >> > >
