You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by nk...@apache.org on 2013/03/18 20:44:54 UTC
svn commit: r1457939 -
/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HTable.java
Author: nkeywal
Date: Mon Mar 18 19:44:53 2013
New Revision: 1457939
URL: http://svn.apache.org/r1457939
Log:
HBASE-8128 HTable#put improvements
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HTable.java
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HTable.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HTable.java?rev=1457939&r1=1457938&r2=1457939&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HTable.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HTable.java Mon Mar 18 19:44:53 2013
@@ -114,7 +114,6 @@ public class HTable implements HTableInt
private ExecutorService pool; // For Multi
private boolean closed;
private int operationTimeout;
- private static final int DOPUT_WB_CHECK = 10; // i.e., doPut checks the writebuffer every X Puts.
private final boolean cleanupPoolOnClose; // shutdown the pool in close()
private final boolean cleanupConnectionOnClose; // close the connection in close()
@@ -746,7 +745,10 @@ public class HTable implements HTableInt
*/
@Override
public void put(final Put put) throws IOException {
- doPut(Arrays.asList(put));
+ doPut(put);
+ if (autoFlush) {
+ flushCommits();
+ }
}
/**
@@ -754,23 +756,19 @@ public class HTable implements HTableInt
*/
@Override
public void put(final List<Put> puts) throws IOException {
- doPut(puts);
- }
-
- private void doPut(final List<Put> puts) throws IOException {
- 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();
- }
+ doPut(put);
+ }
+ if (autoFlush) {
+ flushCommits();
}
- if (autoFlush || currentWriteBufferSize > writeBufferSize) {
+ }
+
+ private void doPut(Put put) throws IOException{
+ validatePut(put);
+ writeBuffer.add(put);
+ currentWriteBufferSize += put.heapSize();
+ if (currentWriteBufferSize > writeBufferSize) {
flushCommits();
}
}