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);