[
https://issues.apache.org/jira/browse/HBASE-23157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16950866#comment-16950866
]
Guangxu Cheng commented on HBASE-23157:
---------------------------------------
HI, [~stack] , [~zhangduo] this issue does not cause data loss, but will cause
WAL files to not be deleted.
The reason for this issue is as follows:
1. Write data using ASYNC_WAL
2. Write completion, but WAL is still in Disruptor due to some reason
3. flush this region, the information of this region will be removed from
lowestUnflushedSequenceIds
4. Now, RingBufferEventHandler begin to write wals to hdfs and rewirte
information of this region to lowestUnflushedSequenceIds
5. move this region to other RS
When the RS deletes the WAL file, the region will still to be flushed, but the
region does not exist anymore on this RS which cause RS to fail to delete WAL
files.
> WAL unflushed seqId tracking may wrong when Durability.ASYNC_WAL is used
> ------------------------------------------------------------------------
>
> Key: HBASE-23157
> URL: https://issues.apache.org/jira/browse/HBASE-23157
> Project: HBase
> Issue Type: Bug
> Components: regionserver, wal
> Affects Versions: 2.2.1
> Reporter: Lijin Bin
> Assignee: Lijin Bin
> Priority: Major
> Attachments: HBASE-23157-master-v1.patch
>
>
> Durability.ASYNC_WAL do not wait wal sync and commit mvcc ahead. So when
> region start flush may get a large flushedSeqId and later wal process buffer
> entry and put a small unflushedSequenceIds for this region again.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)