[
https://issues.apache.org/jira/browse/HBASE-28971?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dong0829 updated HBASE-28971:
-----------------------------
Description:
For the FSHLog, when we try to roll the writer, we will
# initiate the zigzagLatch, and wait for the safe point
# After the safe point obtained, continue to close the writer
For above process, looks like we have
[assumption|https://github.com/apache/hbase/blob/branch-2.6/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java#L388]
that the highestSyncedTxid will must be bigger than highestUnsyncedTxid, I do
not think it must be true, because for
[attainSafePoint|https://github.com/apache/hbase/blob/branch-2.6/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java#L1119]
we did not limit the save point much be sync workload, if its stop at append
workload, the highestUnsyncedTxid will always be bigger highestSyncedTxid,
right?
In our environment, we can reproduce the issue which will causing the wal log
pilling up very quickly if a lot of writing, if we want to to make sure the the
existing logic is working, we need to add a check and make attainSafePoint only
on sync workload
was:
For the FSHLog, when we try to roll the writer, we will
# initiate the zigzagLatch, and wait for the safe point
# After the safe point obtained, continue to close the writer
For above process, looks like we have
[assumption|https://github.com/apache/hbase/blob/branch-2.6/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java#L388]
that the highestSyncedTxid will must be bigger than highestUnsyncedTxid, I do
not think it must be true, because for [attainSafePoint|#L1119], we did not
limit the save point much be sync workload, if its stop at append workload, the
highestUnsyncedTxid will always be bigger highestSyncedTxid, right?
In our environment, we can reproduce the issue which will causing the wal log
pilling up very quickly if a lot of writing, if we want to to make sure the the
existing logic is working, we need to add a check and make attainSafePoint only
on sync workload
> FSHLog can not roll the WAL log properly
> ----------------------------------------
>
> Key: HBASE-28971
> URL: https://issues.apache.org/jira/browse/HBASE-28971
> Project: HBase
> Issue Type: Bug
> Components: wal
> Affects Versions: 2.4.18, 2.6.1, 2.5.10
> Reporter: Dong0829
> Assignee: Dong0829
> Priority: Major
>
> For the FSHLog, when we try to roll the writer, we will
> # initiate the zigzagLatch, and wait for the safe point
> # After the safe point obtained, continue to close the writer
> For above process, looks like we have
> [assumption|https://github.com/apache/hbase/blob/branch-2.6/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java#L388]
> that the highestSyncedTxid will must be bigger than highestUnsyncedTxid, I
> do not think it must be true, because for
> [attainSafePoint|https://github.com/apache/hbase/blob/branch-2.6/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java#L1119]
> we did not limit the save point much be sync workload, if its stop at append
> workload, the highestUnsyncedTxid will always be bigger highestSyncedTxid,
> right?
> In our environment, we can reproduce the issue which will causing the wal log
> pilling up very quickly if a lot of writing, if we want to to make sure the
> the existing logic is working, we need to add a check and make
> attainSafePoint only on sync workload
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)