You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "nkeywal (JIRA)" <ji...@apache.org> on 2012/06/20 12:18:44 UTC
[jira] [Resolved] (HBASE-6156) Improve multiop performances in
HTable#flushCommits
[ https://issues.apache.org/jira/browse/HBASE-6156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
nkeywal resolved HBASE-6156.
----------------------------
Resolution: Fixed
Fixed in HBASE-5924
> Improve multiop performances in HTable#flushCommits
> ---------------------------------------------------
>
> Key: HBASE-6156
> URL: https://issues.apache.org/jira/browse/HBASE-6156
> Project: HBase
> Issue Type: Bug
> Components: client
> Affects Versions: 0.96.0
> Reporter: nkeywal
> Assignee: nkeywal
> Priority: Minor
> Fix For: 0.96.0
>
>
> This code:
> {noformat}
> @Override
> public void flushCommits() throws IOException {
> try {
> Object[] results = new Object[writeBuffer.size()];
> try {
> this.connection.processBatch(writeBuffer, tableName, pool, results);
> } catch (InterruptedException e) {
> throw new IOException(e);
> } finally {
> // mutate list so that it is empty for complete success, or contains
> // only failed records results are returned in the same order as the
> // requests in list walk the list backwards, so we can remove from list
> // without impacting the indexes of earlier members
> for (int i = results.length - 1; i>=0; i--) {
> if (results[i] instanceof Result) {
> // successful Puts are removed from the list here.
> writeBuffer.remove(i);
> }
> }
> }
> } finally {
> if (clearBufferOnFail) {
> writeBuffer.clear();
> currentWriteBufferSize = 0;
> } else {
> // the write buffer was adjusted by processBatchOfPuts
> currentWriteBufferSize = 0;
> for (Put aPut : writeBuffer) {
> currentWriteBufferSize += aPut.heapSize();
> }
> }
> }
> }
> {noformat}
> Can be improved by:
> - not iterating on the list if clearBufferOnFail is set
> - not iterating the the list of there are no error
> - iterating on the list only once instead of two when we really have to.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira