This is an automated email from the ASF dual-hosted git repository.

mpochatkin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 9090ad5eb46 IGNITE-26823 Add current revision getter (#6845)
9090ad5eb46 is described below

commit 9090ad5eb463f5a49ddf36824e33f96fbeaeb738
Author: Vadim Pakhnushev <[email protected]>
AuthorDate: Fri Oct 24 15:59:15 2025 +0300

    IGNITE-26823 Add current revision getter (#6845)
---
 .../apache/ignite/internal/index/TestIndexManagementUtils.java   | 9 +++------
 .../apache/ignite/internal/metastorage/MetaStorageManager.java   | 5 +++++
 .../ignite/internal/metastorage/impl/MetaStorageManagerImpl.java | 7 +++++++
 3 files changed, 15 insertions(+), 6 deletions(-)

diff --git 
a/modules/index/src/test/java/org/apache/ignite/internal/index/TestIndexManagementUtils.java
 
b/modules/index/src/test/java/org/apache/ignite/internal/index/TestIndexManagementUtils.java
index d521382b5a1..35be5e141ec 100644
--- 
a/modules/index/src/test/java/org/apache/ignite/internal/index/TestIndexManagementUtils.java
+++ 
b/modules/index/src/test/java/org/apache/ignite/internal/index/TestIndexManagementUtils.java
@@ -43,9 +43,7 @@ import org.apache.ignite.internal.hlc.HybridTimestamp;
 import org.apache.ignite.internal.lang.ByteArray;
 import org.apache.ignite.internal.metastorage.Entry;
 import org.apache.ignite.internal.metastorage.MetaStorageManager;
-import org.apache.ignite.internal.metastorage.command.response.RevisionsInfo;
 import org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl;
-import org.apache.ignite.internal.metastorage.impl.MetaStorageService;
 import org.apache.ignite.internal.network.ClusterNodeImpl;
 import org.apache.ignite.internal.network.InternalClusterNode;
 import org.apache.ignite.internal.placementdriver.ReplicaMeta;
@@ -111,12 +109,11 @@ class TestIndexManagementUtils {
     static void 
awaitTillGlobalMetastoreRevisionIsApplied(MetaStorageManagerImpl 
metaStorageManager) throws Exception {
         assertTrue(
                 waitForCondition(() -> {
-                    CompletableFuture<RevisionsInfo> currentRevisionsFuture = 
metaStorageManager.metaStorageService()
-                            .thenCompose(MetaStorageService::currentRevisions);
+                    CompletableFuture<Long> currentRevisionFuture = 
metaStorageManager.currentRevision();
 
-                    assertThat(currentRevisionsFuture, 
willCompleteSuccessfully());
+                    assertThat(currentRevisionFuture, 
willCompleteSuccessfully());
 
-                    return currentRevisionsFuture.join().revision() == 
metaStorageManager.appliedRevision();
+                    return currentRevisionFuture.join() == 
metaStorageManager.appliedRevision();
                 }, 1_000)
         );
     }
diff --git 
a/modules/metastorage-api/src/main/java/org/apache/ignite/internal/metastorage/MetaStorageManager.java
 
b/modules/metastorage-api/src/main/java/org/apache/ignite/internal/metastorage/MetaStorageManager.java
index 4674b208632..8bf68af7f47 100644
--- 
a/modules/metastorage-api/src/main/java/org/apache/ignite/internal/metastorage/MetaStorageManager.java
+++ 
b/modules/metastorage-api/src/main/java/org/apache/ignite/internal/metastorage/MetaStorageManager.java
@@ -53,6 +53,11 @@ public interface MetaStorageManager extends IgniteComponent {
      */
     long appliedRevision();
 
+    /**
+     * Returns a future which will hold the current revision of the 
metastorage leader.
+     */
+    CompletableFuture<Long> currentRevision();
+
     /**
      * Returns a future of getting the latest version of an entry by key from 
the metastorage leader.
      *
diff --git 
a/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java
 
b/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java
index 6a90c2e94bd..e35b45f17e7 100644
--- 
a/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java
+++ 
b/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java
@@ -76,6 +76,7 @@ import 
org.apache.ignite.internal.metastorage.RevisionUpdateListener;
 import org.apache.ignite.internal.metastorage.Revisions;
 import org.apache.ignite.internal.metastorage.WatchListener;
 import org.apache.ignite.internal.metastorage.command.CompactionCommand;
+import org.apache.ignite.internal.metastorage.command.response.RevisionsInfo;
 import org.apache.ignite.internal.metastorage.dsl.Condition;
 import org.apache.ignite.internal.metastorage.dsl.Iif;
 import org.apache.ignite.internal.metastorage.dsl.Operation;
@@ -841,6 +842,12 @@ public class MetaStorageManagerImpl implements 
MetaStorageManager, MetastorageGr
         return appliedRevision;
     }
 
+    @Override
+    public CompletableFuture<Long> currentRevision() {
+        return 
metaStorageSvcFut.thenCompose(MetaStorageService::currentRevisions)
+                .thenApply(RevisionsInfo::revision);
+    }
+
     @Override
     public void registerPrefixWatch(ByteArray key, WatchListener listener) {
         storage.watchRange(key.bytes(), storage.nextKey(key.bytes()), 
appliedRevision() + 1, listener);

Reply via email to