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

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


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

Ship it!


+1 for commit to trunk.

Great work, Dhruba.  Really nice comments explaining the changes too.

A few minor nits, mostly docs and stuff.  My major issue is around a better 
test of some of the potential race conditions.  Let's file a follow-up JIRA to 
deal with that.  I'm good with committing now as this is only going to trunk 
and there's plenty of time to continue making improvements and better tests.  
We'll be brining this to our 92 branch so it'll get cluster testing as well.


/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
<https://reviews.apache.org/r/2141/#comment5963>

    it's not before we commit, it's before we even begin iterating memstore / 
writing the storefiles, right?  (a distinction we discussed yesterday)



/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
<https://reviews.apache.org/r/2141/#comment5964>

    nice fix



/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
<https://reviews.apache.org/r/2141/#comment5965>

    this is an awesome comment



/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
<https://reviews.apache.org/r/2141/#comment5966>

    This is not really Write to WAL?  This is just building the WALEdit?



/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
<https://reviews.apache.org/r/2141/#comment5967>

    good



/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
<https://reviews.apache.org/r/2141/#comment5968>

    nit, whitespace



/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
<https://reviews.apache.org/r/2141/#comment5969>

    add something like ", or null to create and complete an rwcc transaction 
within the call?



/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
<https://reviews.apache.org/r/2141/#comment5970>

    the description seems a little vague.  this is specifically for exceptions 
during log syncing when using early-lock-release?  or does this / will this 
potentially cover other failures? also, some whitespace in this method.



/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java
<https://reviews.apache.org/r/2141/#comment5974>

    TODO: optimize  (not a big deal because this is rarely used but you can use 
tailMaps/iterators and such to make this more efficient, especially if the set 
of input KVs are sorted)



/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
<https://reviews.apache.org/r/2141/#comment5975>

    rollbacks only happen on the MemStore?  never the snapshot?  are there race 
conditions here?



/src/test/java/org/apache/hadoop/hbase/regionserver/TestParallelPut.java
<https://reviews.apache.org/r/2141/#comment5976>

    should we be flushing concurrently?  and doing other nasty things like 
mocking an exception out of the sync and verifying the rollback?  i think a 
majority of the change is easy enough to verify through code analysis, and i 
think it's fine to commit this change as-is, but i'm worried about some kind of 
race between snapshotting, waiting for the read point to advance, an hlog 
exception, and rollback of the memstore.  need to ensure rwcc still moves 
forward, need to ensure edits don't make it to hlog / get replayed, if 
post-snapshot there are new edits going to memstore and a new hlog, that the 
right thing happens w.r.t. that hlog sync either succeeding or failing again.
    
    i'm cool with filing a follow-up JIRA about making this test more thorough.


- Jonathan


On 2011-10-18 07:04:47, Dhruba Borthakur wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/2141/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-10-18 07:04:47)
bq.  
bq.  
bq.  Review request for hbase.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  The changes the multiPut operation so that the sync to the wal occurs 
outside the rowlock.
bq.  
bq.  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.
bq.  
bq.  
bq.  This addresses bug HBASE-4528.
bq.      https://issues.apache.org/jira/browse/HBASE-4528
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    /src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java 1185500 
bq.    
/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueSkipListSet.java 
1185500 
bq.    /src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java 
1185500 
bq.    
/src/main/java/org/apache/hadoop/hbase/regionserver/ReadWriteConsistencyControl.java
 1185500 
bq.    /src/main/java/org/apache/hadoop/hbase/regionserver/Store.java 1185500 
bq.    /src/main/java/org/apache/hadoop/hbase/regionserver/StoreFlusher.java 
1185500 
bq.    /src/test/java/org/apache/hadoop/hbase/regionserver/TestParallelPut.java 
PRE-CREATION 
bq.    /src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java 
1185500 
bq.    
/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java 
1185500 
bq.  
bq.  Diff: https://reviews.apache.org/r/2141/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  I ran TestLogRolling over and over again, about 50 times, not failed a 
single time.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Dhruba
bq.  
bq.


                
> 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
>             Fix For: 0.94.0
>
>         Attachments: appendNoSync5.txt, appendNoSyncPut1.txt, 
> appendNoSyncPut2.txt, appendNoSyncPut3.txt, appendNoSyncPut4.txt, 
> appendNoSyncPut5.txt, appendNoSyncPut6.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

        

Reply via email to