Ok javadoc cruft ahoy. So back to the core issue about persistence, we promise that if we ack that your data won't be lost (IF you are running under an HDFS-200/append qualified hdfs, cdh3b2+ is one such, building from the append-20-branch in ASF is another). But what happens if the regionserver crashes? What about those transactions in flight? Well we can't promise (nor does any database system promise this, including oracle, mysql, etc) that unacked Put operations won't be recovered, and this CAN happen (seen it in my testing). Basically we make a minimal level of promise, and we can overdeliver sometimes.
As for batch puts, for efficiency sakes they are aggregated in the HLog so they should exist as an single HLog entry to be recovered or not. Don't mistake this for transactions, since it only applies to rows hosted on the same regionserver. If your batch set covers multiple regionservers, then you will see multiple RPCs for each, each one in a different HLog and thus no real transaction support. -ryan On Sat, Dec 11, 2010 at 2:37 PM, Chris Tarnas <[email protected]> wrote: > It surprised me when I read it and wondered if something special was going on > for the Thrift API. I saw the comment in the Hbase.thrift API file here: > > http://svn.apache.org/viewvc/hbase/trunk/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup > > Look at the comment for the mutateRows method at around line 405. > > thanks, > -chris > > On Dec 11, 2010, at 11:12 AM, Stack wrote: > >> Where do you see that? HBase is not transactional. >> Thanks Chris, >> St.Ack >> >> On Fri, Dec 10, 2010 at 2:57 PM, Chris Tarnas <[email protected]> wrote: >>> I was looking through the thirft API again and noticed that it said if a >>> transaction - comprised of updates to one or more rows - throws an >>> exception then the whole transaction is aborted. Does this mean that it is >>> atomic and none of the updates will be executed or could some subset of >>> them be executed (which I assumed was the case before I read the comments >>> again recently). >>> >>> thanks >>> -chris >>> >>> > >
