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

Sean Busbey commented on HBASE-23573:
-------------------------------------

Edits to the WAL each have a monotonically increasing transaction id. pushing 
edits into the WAL happens in a different thread than the syncs and there are 
multiple threads all calling sync (on the same HDFS pipeline). The variable 
{{highestSyncedTxid}} is how we coordinate amongst those sync threads how far 
we've gotten in the monotonically increasing sequence.

The short cut you see there is just asking "while I was getting ready to call 
sync this time, did someone else already get past the point that I'm trying to 
handle". It does this by using that shared variable. Note that in the client 
notification case you highlight we won't ever get to the sync call for the 
given sequence number because to the {{continue}} will have us grab the next 
sequence number.

make sense?

> can not guarantee consistency.
> ------------------------------
>
>                 Key: HBASE-23573
>                 URL: https://issues.apache.org/jira/browse/HBASE-23573
>             Project: HBase
>          Issue Type: Bug
>          Components: wal
>    Affects Versions: 2.1.5
>            Reporter: 刘本龙
>            Priority: Major
>         Attachments: image-2019-12-13-11-41-42-200.png
>
>
> wal sync has not exe, but has notified thread . if RegionServer halt,such as 
> Power off. the client think the write was successful, but the write failed. 
> the data writed into memstore is loss , wal has not data too。
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to