@@ -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