Skip to content

Commit 1c20df4

Browse files
authored
Persist writer meta out of lock (#18124)
1 parent bbd424f commit 1c20df4

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/IoTConsensusServerImpl.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,9 @@ public TSStatus write(IConsensusRequest request) {
331331
}
332332
searchIndex.incrementAndGet();
333333
}
334-
updateWriterMetaOnSuccess(indexedConsensusRequest);
334+
latestWriterMeta =
335+
new WriterMeta(
336+
indexedConsensusRequest.getLocalSeq(), indexedConsensusRequest.getPhysicalTime());
335337
// statistic the time of offering request into queue
336338
ioTConsensusServerMetrics.recordOfferRequestToQueueTime(
337339
System.nanoTime() - writeToStateMachineEndTime);
@@ -351,6 +353,7 @@ public TSStatus write(IConsensusRequest request) {
351353
return result;
352354
} finally {
353355
stateMachineLock.unlock();
356+
persistLatestWriterMeta(false);
354357
}
355358
}
356359

@@ -1046,9 +1049,7 @@ private void initializeWriterMeta() {
10461049
}
10471050

10481051
private void updateWriterMetaOnSuccess(final IndexedConsensusRequest indexedConsensusRequest) {
1049-
latestWriterMeta =
1050-
new WriterMeta(
1051-
indexedConsensusRequest.getLocalSeq(), indexedConsensusRequest.getPhysicalTime());
1052+
10521053
persistLatestWriterMeta(false);
10531054
}
10541055

@@ -1067,8 +1068,8 @@ private void persistLatestWriterMeta(final boolean force) {
10671068
synchronized (writerMetaPersistLock) {
10681069
final WriterMeta latestMeta = latestWriterMeta;
10691070
if (latestMeta == null
1070-
|| (latestMeta.getLastAllocatedLocalSeq() == lastPersistedWriterLocalSeq
1071-
&& latestMeta.getLastAssignedPhysicalTimeMs() == lastPersistedWriterPhysicalTime)) {
1071+
|| (latestMeta.getLastAllocatedLocalSeq() <= lastPersistedWriterLocalSeq
1072+
&& latestMeta.getLastAssignedPhysicalTimeMs() <= lastPersistedWriterPhysicalTime)) {
10721073
return;
10731074
}
10741075

0 commit comments

Comments
 (0)