Thank you Stack for the details directions! 1. You are right, I have not met with any real row contention issues. My purpose is understanding the issue in advance, and also from this issue to understand HBase generals better; 2. For the comments from API Url page you referred -- "If isAutoFlush<http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTableInterface.html#isAutoFlush%28%29>is false, the update is buffered until the internal buffer is full.", I am confused what is the buffer? Buffer at client side or buffer in region server? Is there a way to configure its size to hold until flushing? 3. Why batch could resolve contention on the same raw issue in theory, compared to non-batch operation? Besides preparation the solution in my mind in advance, I want to learn a bit about why. :-)
regards, Lin On Wed, Sep 5, 2012 at 4:00 AM, Stack <[email protected]> wrote: > On Sun, Sep 2, 2012 at 2:13 AM, Lin Ma <[email protected]> wrote: > > Hello guys, > > > > I am reading the book "HBase, the definitive guide", at the beginning of > > chapter 3, it is mentioned in order to reduce performance impact for > > clients to update the same row (lock contention issues for automatic > > write), batch update is preferred. My questions is, for MR job, what are > > the batch update methods we could leverage to resolve the issue? And for > > API client, what are the batch update methods we could leverage to > resolve > > the issue? > > > > Do you actually have a problem where there is contention on a single row? > > Use methods like > > http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#put(java.util.List) > or the batch methods listed earlier in the API. You should set > autoflush to false too: > > http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTableInterface.html#isAutoFlush() > > Even batching, a highly contended row might hold up inserts... but for > sure you actually have this problem in the first place? > > St.Ack >
