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-4528) The put operation can release the rowlock before sync-ing the Hlog
Date Thu, 06 Oct 2011 08:10:31 GMT

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

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


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

(Updated 2011-10-06 08:08:49.288861)


Review request for hbase.


Changes
-------

1. The flush of memstore waits for current transactions to quiesce before committing the flushed
files. This should address the problem pointed out by Kannan.

2. The Hlog.syncer() does not throw an exception, instead causes the regionserver to exit
if it is unable to sync to hdfs. The assumption here is that if hbase is unable to write/sync
to hdfs, then the simplest and correct error recovery is to exit. (For example, if the memstore
flush fails, the regionserver exits)


Summary
-------

The changes the multiPut operation so that the sync to the wal occurs outside the rowlock.

This enhancement is done only to HRegion.mut(Put[]) because this is the only method that gets
invoked from an application. The HRegion.put(Put) is used only by unit tests and should possibly
be deprecated.

I have attached a unit test. I have not yet run all unit tests, but early feedback on this
patch will be very helpful.


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


Diffs (updated)
-----

  /src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java 1179529 
  /src/main/java/org/apache/hadoop/hbase/regionserver/ReadWriteConsistencyControl.java 1179529

  /src/main/java/org/apache/hadoop/hbase/regionserver/Store.java 1179529 
  /src/main/java/org/apache/hadoop/hbase/regionserver/StoreFlusher.java 1179529 
  /src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java 1179529 
  /src/test/java/org/apache/hadoop/hbase/regionserver/TestParallelPut.java PRE-CREATION 
  /src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java 1179529 

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


Testing
-------

Not yet run the full suite of unit tests.


Thanks,

Dhruba


                
> The put operation can release the rowlock before sync-ing the Hlog
> ------------------------------------------------------------------
>
>                 Key: HBASE-4528
>                 URL: https://issues.apache.org/jira/browse/HBASE-4528
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>            Reporter: dhruba borthakur
>            Assignee: dhruba borthakur
>         Attachments: appendNoSyncPut1.txt, appendNoSyncPut2.txt, appendNoSyncPut3.txt
>
>
> This allows for better throughput when there are hot rows. A single row update improves
from 100 puts/sec/server to 5000 puts/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