hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jiraposter@reviews.apache.org (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-4487) The increment operation can release the rowlock before sync-ing the Hlog
Date Thu, 29 Sep 2011 19:27:46 GMT

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

jiraposter@reviews.apache.org commented on HBASE-4487:
------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2116/
-----------------------------------------------------------

Review request for hbase and Ted Yu.


Summary
-------

The increment operation releases the rowlock before doing the sync to the HLog. This improves
performance of increments on hot rows. Introduced method HLog.appendNoSync() that returns
a txid. The increment method then release the rowlock and invokes HLog.sync(txid). The HLog.sync(txid)
returns only if all the transactions upto the one identified by that txid has been successfully
sycned to HDFS.

There is a single test TestIncrement that creates a 100 threads and ensures that all the concurrent
increments match the final expected result. There is a benchmark TestHLogBench that measures
the performance of the appendNoSync call.


This addresses bug HBASE-4487.
    https://issues.apache.org/jira/browse/HBASE-4487


Diffs
-----

  /src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java 1177401 
  /src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java 1177401 
  /src/test/java/org/apache/hadoop/hbase/regionserver/TestIncrement.java PRE-CREATION 
  /src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLogBench.java PRE-CREATION

  /src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.java 1177401

  /src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
1177401 

Diff: https://reviews.apache.org/r/2116/diff


Testing
-------

All unit tests pass now (expect TestDistributedLogSplitting, TestRollingRestart, TestHTablePool),
but I am seeing the same test to fail on trunk, so these failures do not seem to be related
to this patch.


Thanks,

Dhruba


                
> The increment operation can release the rowlock before sync-ing the Hlog
> ------------------------------------------------------------------------
>
>                 Key: HBASE-4487
>                 URL: https://issues.apache.org/jira/browse/HBASE-4487
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: dhruba borthakur
>            Assignee: dhruba borthakur
>         Attachments: appendNoSync4.txt, appendNoSync5.txt, appendNoSync6.txt
>
>
> This allows for better throughput when there are hot rows.I have seen this change make
a single row update improve from 400 increments/sec/server to 4000 increments/sec/server.

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

        

Mime
View raw message