-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://review.cloudera.org/r/691/
-----------------------------------------------------------

(Updated 2010-08-20 17:43:52.668799)


Review request for hbase.


Changes
-------

Updated patch with "closing" handling and ICV locking, still needs more javadoc.


Summary
-------

This patch removes newScannerLock and renames splitAndClose lock to just 
"lock". Every operation is now required to obtain the read lock on "lock" 
before doing anything (including getting a row lock). This is done by calling 
openRegionTransaction inside a try statement and by calling 
closeRegionTransaction in finally.

flushcache got refactored some more in order to do the locking in the proper 
order; first get the read lock, then do the writestate handling.

Finally, it removes the need to have a writeLock when flushing when subclassers 
give atomic work do to via internalPreFlushcacheCommit. This means that this 
patch breaks external contribs. This is required to keep our whole locking 
mechanism simpler.


This addresses bug HBASE-2915.
    http://issues.apache.org/jira/browse/HBASE-2915


Diffs (updated)
-----

  /trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java 987355 
  
/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java 
987355 
  
/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java
 987355 

Diff: http://review.cloudera.org/r/691/diff


Testing
-------

5 concurrent ICV threads + randomWrite 3 + scans on a single RS. I'm also in 
the process of deploying it on a cluster.


Thanks,

Jean-Daniel

Reply via email to