commit 0abc069d20569d2592ecf5b6c79c7d8a08c9199f Author: Ryan Rawson Date: Thu Apr 15 14:45:06 2010 -0700 remove row locks diff --git src/java/org/apache/hadoop/hbase/regionserver/HRegion.java src/java/org/apache/hadoop/hbase/regionserver/HRegion.java index 75a3ff9..b1fd85b 100644 --- src/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ src/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -2445,11 +2445,11 @@ public class HRegion implements HConstants, HeapSize { // , Writable{ // /** * @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()) { @@ -2460,16 +2460,7 @@ public class HRegion implements HConstants, HeapSize { // , Writable{ get.addFamily(family); } } - // Lock row - Integer lid = getLock(lockid, get.getRow()); - List result = null; - try { - result = get(get); - } finally { - if(lockid == null) - releaseRowLock(lid); - } - return new Result(result); + return new Result(get(get)); } /* diff --git src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java index 8c9f3a3..793fa94 100644 --- src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java +++ src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java @@ -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 HBaseTestCase { } 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 HBaseTestCase { } public void done() { - done = true; - synchronized (this) { - interrupt(); - } + done.set(true); } public void checkNoError() { @@ -2057,9 +2055,9 @@ public class TestHRegion extends HBaseTestCase { @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 HBaseTestCase { 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 HBaseTestCase { } if (i != 0 && i % flushInterval == 0) { - //System.out.println("iteration = " + i); + System.out.println("iteration = " + i); flushThread.flush(); }