[ https://issues.apache.org/jira/browse/HBASE-2208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12832635#action_12832635 ]
stack commented on HBASE-2208: ------------------------------ FYI: hbase-2209 was committed. > 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 > Fix For: 0.21.0 > > > 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.