You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2010/04/16 00:16:15 UTC

svn commit: r934625 - in /hadoop/hbase/branches/0.20_pre_durability: bin/hbase conf/hbase-env.sh src/java/org/apache/hadoop/hbase/regionserver/HRegion.java src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java

Author: stack
Date: Thu Apr 15 22:16:15 2010
New Revision: 934625

URL: http://svn.apache.org/viewvc?rev=934625&view=rev
Log:
HBASE-2248 Provide new non-copy mechanism to assure atomic reads in get and scan; added in  HBASE-2248-no-row-locks.txt

Modified:
    hadoop/hbase/branches/0.20_pre_durability/bin/hbase
    hadoop/hbase/branches/0.20_pre_durability/conf/hbase-env.sh
    hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
    hadoop/hbase/branches/0.20_pre_durability/src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java

Modified: hadoop/hbase/branches/0.20_pre_durability/bin/hbase
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_pre_durability/bin/hbase?rev=934625&r1=934624&r2=934625&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20_pre_durability/bin/hbase (original)
+++ hadoop/hbase/branches/0.20_pre_durability/bin/hbase Thu Apr 15 22:16:15 2010
@@ -212,4 +212,5 @@ if [ "x$JAVA_LIBRARY_PATH" != "x" ]; the
 fi
 
 # run it
-exec "$JAVA" $JAVA_HEAP_MAX $HBASE_OPTS -classpath "$CLASSPATH" $CLASS "$@"
+exec "$JAVA" -javaagent:/Users/Stack/checkouts/jcarder.jar=outputdir=/tmp/jc-@TIME@ $JAVA_HEAP_MAX $HBASE_OPTS -classpath "$CLASSPATH" $CLASS "$@"
+#exec "$JAVA" $JAVA_HEAP_MAX $HBASE_OPTS -classpath "$CLASSPATH" $CLASS "$@"

Modified: hadoop/hbase/branches/0.20_pre_durability/conf/hbase-env.sh
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_pre_durability/conf/hbase-env.sh?rev=934625&r1=934624&r2=934625&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20_pre_durability/conf/hbase-env.sh (original)
+++ hadoop/hbase/branches/0.20_pre_durability/conf/hbase-env.sh Thu Apr 15 22:16:15 2010
@@ -34,7 +34,7 @@
 # Below are what we set by default.  May only work with SUN JVM.
 # For more on why as well as other possible settings,
 # see http://wiki.apache.org/hadoop/PerformanceTuning
-export HBASE_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
+export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
 
 # Uncomment below to enable java garbage collection logging.
 # export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$HBASE_HOME/logs/gc-hbase.log" 

Modified: hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=934625&r1=934624&r2=934625&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java Thu Apr 15 22:16:15 2010
@@ -2466,11 +2466,11 @@ public class HRegion implements HConstan
   //
   /**
    * @param get get object
-   * @param lockid existing lock id, or null for no previous lock
+   * @param ignoredLockId lock id that is ignored
    * @return result
    * @throws IOException read exceptions
    */
-  public Result get(final Get get, final Integer lockid) throws IOException {
+  public Result get(final Get get, final Integer ignoredLockId) throws IOException {
     // Verify families are all valid
     if (get.hasFamilies()) {
       for (byte [] family: get.familySet()) {
@@ -2481,16 +2481,7 @@ public class HRegion implements HConstan
         get.addFamily(family);
       }
     }
-    // Lock row
-    Integer lid = getLock(lockid, get.getRow()); 
-    List<KeyValue> result = null;
-    try {
-      result = get(get);
-    } finally {
-      if(lockid == null)
-        releaseRowLock(lid);
-    }
-    return new Result(result);
+    return new Result(get(get));
   }
 
   /*

Modified: hadoop/hbase/branches/0.20_pre_durability/src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_pre_durability/src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java?rev=934625&r1=934624&r2=934625&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20_pre_durability/src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java (original)
+++ hadoop/hbase/branches/0.20_pre_durability/src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java Thu Apr 15 22:16:15 2010
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.TreeMap;
 import java.util.Arrays;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -2029,7 +2030,7 @@ public class TestHRegion extends HBaseTe
   }
 
   protected class PutThread extends Thread {
-    private volatile boolean done;
+    private final AtomicBoolean done = new AtomicBoolean(false);
     private Throwable error = null;
     private int numRows;
     private byte[][] families;
@@ -2043,10 +2044,7 @@ public class TestHRegion extends HBaseTe
     }
 
     public void done() {
-      done = true;
-      synchronized (this) {
-        interrupt();
-      }
+      done.set(true);
     }
 
     public void checkNoError() {
@@ -2057,9 +2055,9 @@ public class TestHRegion extends HBaseTe
 
     @Override
     public void run() {
-      done = false;
+      done.set(false);
       int val = 0;
-      while (!done) {
+      while (!done.get()) {
         try {
           for (int r = 0; r < numRows; r++) {
             byte[] row = Bytes.toBytes("row" + r);
@@ -2102,7 +2100,7 @@ public class TestHRegion extends HBaseTe
   public void testWritesWhileGetting()
     throws IOException, InterruptedException {
     byte[] tableName = Bytes.toBytes("testWritesWhileScanning");
-    int testCount = 200;
+    int testCount = 100;
     int numRows = 1;
     int numFamilies = 10;
     int numQualifiers = 100;
@@ -2137,7 +2135,7 @@ public class TestHRegion extends HBaseTe
       }
 
       if (i != 0 && i % flushInterval == 0) {
-        //System.out.println("iteration = " + i);
+        System.out.println("iteration = " + i);
         flushThread.flush();
       }