In those cases the entire operation is carried out at the RegionServer so they will always work correctly. There are no corner cases that I know of.
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. -- Lars ----- Original Message ----- From: kisalay <[email protected]> To: [email protected]; lars hofhansl <[email protected]> Cc: Sent: Wednesday, December 28, 2011 11:07 PM Subject: Re: Help regarding RowLock Thanks for the reply Lars. I would also want to ask about a bit more context on the "alternatives" : CheckandDelete, CheckandUpdate and ICV. Do these three come with guaranteed atomicty in face of region-servers being re-assigned or fail ? To be more precise, what are the corner cases I may encounter while using these ? Thanks Kisalay On Thu, Dec 29, 2011 at 11:54 AM, lars hofhansl <[email protected]> wrote: > I let other committers comment here, but in my opinion row locks (in their > current form) should have never been exposed to the client side API. > They are only maintained in memory at a region server, if the region server > dies (or no longer serves the relevant region) they are gone. > > -- Lars > > > ----- Original Message ----- > From: kisalay <[email protected]> > To: [email protected] > Cc: > Sent: Wednesday, December 28, 2011 10:05 PM > Subject: Help regarding RowLock > > Hi, > > Why going through some resources / docs on Row-Locks in Hbase, I came > across a post on Lily : http://outerthought.org/blog/380-ot.html > This basically tells: > 1. Row-Locks may result into a deadlock in some scenarios. Please refer to > > http://markmail.org/message/7zn7ad44rbptmruh#query:+page:1+mid:7zn7ad44rbptmruh+state:results > > 2. Row-Locks are not preserved on region splits. > > I was curious to know whether these behavior are still valid, as the above > discussions happened a long time back. If so then can I deduce that I can > use rowlocks only in scenario where the contention and concurrency is low ? > > ~Kisalay > >
