Oops... Only ICV does what I describe in the last paragraph. checkAnd* call internalPut/internalDelete and behave correctly. Sorry for the confusion.
----- Original Message ----- From: Stack <[email protected]> To: [email protected]; lars hofhansl <[email protected]> Cc: Sent: Thursday, December 29, 2011 8:47 PM Subject: Re: Help regarding RowLock On Thu, Dec 29, 2011 at 8:50 AM, lars hofhansl <[email protected]> wrote: > Well... Uhm... That is actually not entirely true. For performance these > operations modify the MemStore, then release the row lock, > then write the relevant entries to the WAL (to avoid holding the row lock > while the WAL is written). > So what could theoretically happen is that writing the WAL fails (because > some issue with HDFS). > Now say some other clients read the changes in the MemStore and then the > RegionServer dies before it could flush the MemStore. > Now you have clients that have read transient data. However, if HDFS has a > problem, you have bigger problems anyway. > I opened an issue to make it so we do the 'correct' behavior first, and then, optionally do as described above: https://issues.apache.org/jira/browse/HBASE-5108. Good on you Lars, St.Ack
