[ 
https://issues.apache.org/jira/browse/HBASE-2208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12832639#action_12832639
 ] 

Kay Kay commented on HBASE-2208:
--------------------------------

Thanks stack for commiting hbase-2209. Will revisit this with the signature 
changes to prevent the copy. Sorry for the separate jira - me just gets nervous 
by big patches . 

> 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.

Reply via email to