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

[email protected] commented on HBASE-4528:
------------------------------------------------------


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


Now as per the current logic if there are 2 syncs happening parallely
If there are 2 thread trying to sync
Thread A has txid 1 and thread B has txid 2.
Now if first B completes sync then the syncedTillHere will be 2 and later if A 
completes sync he will update as 1.
So now LogSyncer will see this condition and he will again try to sync

if (unflushedEntries.get() <= syncedTillHere) {
Because now unflushedEntries will be 2.  This is not a bug may be an additional 
sync call.

I may be wrong.  You can ignore if this comment is not valid.  Thanks Dhruba.

Minor comments
==============
After the first testPut() gets executed the very first sync as part of 
testParallelPuts() will not get invoked as already the this.syncedTillHere is 
1. 
assertEquals(0, ret.length); -> This should be           assertEquals(1, 
ret.length); as we get some return value here.


- ramkrishna


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