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.