diff --git src/java/org/apache/hadoop/hbase/client/HTable.java src/java/org/apache/hadoop/hbase/client/HTable.java index 3b7b3c0..3c16b3a 100644 --- src/java/org/apache/hadoop/hbase/client/HTable.java +++ src/java/org/apache/hadoop/hbase/client/HTable.java @@ -641,11 +641,21 @@ public class HTable { * @throws IOException */ public void flushCommits() throws IOException { + int last = -1; try { - connection.processBatchOfPuts(writeBuffer, - tableName, pool); + if (writeBuffer.size() < 8) { + last = connection.processBatchOfRows(writeBuffer, tableName); + } else { + connection.processBatchOfPuts(writeBuffer, + tableName, pool); + } } finally { - // the write buffer was adjsuted by processBatchOfPuts + if (last >= 0) { + writeBuffer.subList(0, last).clear(); + } + // else + // the write buffer was adjusted by processBatchOfPuts + currentWriteBufferSize = 0; for (int i = 0; i < writeBuffer.size(); i++) { currentWriteBufferSize += writeBuffer.get(i).heapSize();