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