You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2012/04/20 19:36:02 UTC
svn commit: r1328457 - in /hbase/trunk/src:
main/java/org/apache/hadoop/hbase/client/
test/java/org/apache/hadoop/hbase/constraint/
test/java/org/apache/hadoop/hbase/coprocessor/
Author: tedyu
Date: Fri Apr 20 17:36:02 2012
New Revision: 1328457
URL: http://svn.apache.org/viewvc?rev=1328457&view=rev
Log:
HBASE-5824 revert changes to single Put case, preserving deprecation for ICV
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTable.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/constraint/TestConstraint.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithRemove.java
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTable.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTable.java?rev=1328457&r1=1328456&r2=1328457&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTable.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTable.java Fri Apr 20 17:36:02 2012
@@ -829,40 +829,21 @@ public class HTable implements HTableInt
}
private void doPut(final List<Put> puts) throws IOException {
- if (autoFlush && puts.size() == 1) {
- final Put put = puts.get(0);
+ int n = 0;
+ for (Put put : puts) {
validatePut(put);
- new ServerCallable<Void>(connection, tableName, put.getRow(),
- operationTimeout) {
- public Void call() throws IOException {
- try {
- MutateRequest request = RequestConverter.buildMutateRequest(
- location.getRegionInfo().getRegionName(), put);
- server.mutate(null, request);
- } catch (ServiceException se) {
- throw ProtobufUtil.getRemoteException(se);
- }
- return null;
- }
- }.withRetries();
- } else {
- int n = 0;
- for (Put put : puts) {
- validatePut(put);
- writeBuffer.add(put);
- currentWriteBufferSize += put.heapSize();
-
- // we need to periodically see if the writebuffer is full
- // instead of waiting until the end of the List
- n++;
- if (n % DOPUT_WB_CHECK == 0 && currentWriteBufferSize > writeBufferSize) {
- flushCommits();
- }
- }
- if (autoFlush || currentWriteBufferSize > writeBufferSize) {
+ writeBuffer.add(put);
+ currentWriteBufferSize += put.heapSize();
+
+ // we need to periodically see if the writebuffer is full instead of waiting until the end of the List
+ n++;
+ if (n % DOPUT_WB_CHECK == 0 && currentWriteBufferSize > writeBufferSize) {
flushCommits();
}
}
+ if (autoFlush || currentWriteBufferSize > writeBufferSize) {
+ flushCommits();
+ }
}
/**
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/constraint/TestConstraint.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/constraint/TestConstraint.java?rev=1328457&r1=1328456&r2=1328457&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/constraint/TestConstraint.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/constraint/TestConstraint.java Fri Apr 20 17:36:02 2012
@@ -17,10 +17,13 @@
*/
package org.apache.hadoop.hbase.constraint;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import java.util.List;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.HBaseTestingUtility;
@@ -29,6 +32,7 @@ import org.apache.hadoop.hbase.HTableDes
import org.apache.hadoop.hbase.MediumTests;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.After;
import org.junit.AfterClass;
@@ -114,8 +118,13 @@ public class TestConstraint {
try {
table.put(put);
fail("This put should not have suceeded - AllFailConstraint was not run!");
- } catch (Throwable t) {
- assertTrue(t instanceof ConstraintException);
+ } catch (RetriesExhaustedWithDetailsException e) {
+ List<Throwable> causes = e.getCauses();
+ assertEquals(
+ "More than one failure cause - should only be the failure constraint exception",
+ 1, causes.size());
+ Throwable t = causes.get(0);
+ assertEquals(ConstraintException.class, t.getClass());
}
table.close();
}
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithRemove.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithRemove.java?rev=1328457&r1=1328456&r2=1328457&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithRemove.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithRemove.java Fri Apr 20 17:36:02 2012
@@ -26,6 +26,7 @@ import org.apache.hadoop.conf.Configurat
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException;
import org.apache.hadoop.hbase.regionserver.HRegionServer;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.regionserver.wal.WALEdit;
@@ -111,12 +112,12 @@ public class TestRegionServerCoprocessor
Put put = new Put(ROW);
put.add(TEST_FAMILY, ROW, ROW);
table.put(put);
- } catch (Throwable t) {
+ } catch (RetriesExhaustedWithDetailsException e) {
// below, could call instead :
// startsWith("Failed 1 action: DoNotRetryIOException.")
// But that might be too brittle if client-side
// DoNotRetryIOException-handler changes its message.
- assertTrue(t instanceof DoNotRetryIOException);
+ assertTrue(e.getMessage().contains("DoNotRetryIOException"));
threwDNRE = true;
} finally {
assertTrue(threwDNRE);