This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new e4048310aa HDDS-8978. SCM SequenceIdGenerator#reinitialize only needs
to acquire the lock once (#5027)
e4048310aa is described below
commit e4048310aa21f562926a847a3858abe7248d734d
Author: hao guo <[email protected]>
AuthorDate: Thu Jul 20 02:29:32 2023 +0800
HDDS-8978. SCM SequenceIdGenerator#reinitialize only needs to acquire the
lock once (#5027)
---
.../org/apache/hadoop/hdds/scm/ha/SequenceIdGenerator.java | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SequenceIdGenerator.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SequenceIdGenerator.java
index 02b9565dd7..4e72376f85 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SequenceIdGenerator.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SequenceIdGenerator.java
@@ -161,23 +161,27 @@ public class SequenceIdGenerator {
public void invalidateBatch() {
lock.lock();
try {
- sequenceIdToBatchMap.forEach(
- (sequenceId, batch) -> batch.nextId = batch.lastId + 1);
+ invalidateBatchInternal();
} finally {
lock.unlock();
}
}
+ private void invalidateBatchInternal() {
+ sequenceIdToBatchMap
+ .forEach((sequenceId, batch) -> batch.nextId = batch.lastId + 1);
+ }
+
/**
* Reinitialize the SequenceIdGenerator with the latest sequenceIdTable
* during SCM reload.
*/
public void reinitialize(Table<String, Long> sequenceIdTable)
throws IOException {
+ LOG.info("reinitialize SequenceIdGenerator.");
lock.lock();
try {
- LOG.info("reinitialize SequenceIdGenerator.");
- invalidateBatch();
+ invalidateBatchInternal();
stateManager.reinitialize(sequenceIdTable);
} finally {
lock.unlock();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]