hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kay Kay (JIRA)" <j...@apache.org>
Subject [jira] Created: (HBASE-2208) TableServers # processBatchOfRows - converts from List to [ ] - Expensive copy
Date Wed, 10 Feb 2010 01:56:28 GMT
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.


Mime
View raw message