TableServers # processBatchOfRows - converts from List to [ ] - Expensive copy ------------------------------------------------------------------------------------
Key: HBASE-2208 URL: https://issues.apache.org/jira/browse/HBASE-2208 Project: Hadoop HBase Issue Type: Improvement Reporter: Kay Kay With autoFlush to false and a large write buffer on HTable, when we write bulk puts - TableServer # processBatchOfRows , convert the input (List) to an [ ] , before sending down the wire. With a write buffer as large as 20 MB , that becomes an expensive copy when we do - list.toArray(new T[ ] ). May be - should we change the wire protocol to support List as well , and then revisit this to prevent the bulk copy ? {code} Batch b = new Batch(this) { @Override int doCall(final List<Row> currentList, final byte [] row, final byte [] tableName) throws IOException, RuntimeException { *final Put [] puts = currentList.toArray(PUT_ARRAY_TYPE);* return getRegionServerWithRetries(new ServerCallable<Integer>(this.c, tableName, row) { public Integer call() throws IOException { return server.put(location.getRegionInfo().getRegionName(), puts); } }); } {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.