This is an automated email from the ASF dual-hosted git repository.
apolovtsev 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 9c4f2a784d IGNITE-22616 Implement
AbstractPageMemoryMvPartitionStorage#estimatedSize (#4102)
9c4f2a784d is described below
commit 9c4f2a784dea60d8a6d0959cea5b01a8a76a2e12
Author: Alexander Polovtcev <[email protected]>
AuthorDate: Thu Jul 18 12:46:38 2024 +0300
IGNITE-22616 Implement AbstractPageMemoryMvPartitionStorage#estimatedSize
(#4102)
---
.../storage/AbstractMvPartitionStorageTest.java | 68 +++++++++++++++++++++-
.../storage/AbstractMvTableStorageTest.java | 25 ++++++++
.../storage/pagememory/StoragePartitionMeta.java | 55 +++++++++++++++--
.../pagememory/StoragePartitionMetaFactory.java | 3 +-
.../storage/pagememory/StoragePartitionMetaIo.java | 25 ++++++++
.../mv/AbstractPageMemoryMvPartitionStorage.java | 20 +++++--
.../mv/AddWriteCommittedInvokeClosure.java | 10 ++++
.../pagememory/mv/CommitWriteInvokeClosure.java | 24 +++++++-
.../mv/PersistentPageMemoryMvPartitionStorage.java | 15 +++++
.../mv/VolatilePageMemoryMvPartitionStorage.java | 23 ++++++++
.../PersistentPageMemoryMvTableStorageTest.java | 13 -----
.../StoragePartitionMetaManagerTest.java | 7 ++-
.../pagememory/StoragePartitionMetaTest.java | 48 +++++++++++----
.../VolatilePageMemoryMvTableStorageTest.java | 13 -----
.../AbstractPageMemoryMvPartitionStorageTest.java | 37 ------------
...ageMemoryMvPartitionStorageConcurrencyTest.java | 7 ---
...ageMemoryMvPartitionStorageConcurrencyTest.java | 7 ---
.../rocksdb/RocksDbMvPartitionStorageTest.java | 20 +++++--
.../storage/rocksdb/RocksDbMvTableStorageTest.java | 6 ++
.../ignite/internal/table/ItEstimatedSizeTest.java | 8 +--
20 files changed, 320 insertions(+), 114 deletions(-)
diff --git
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java
index e859083cdb..92adba279a 100644
---
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java
+++
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvPartitionStorageTest.java
@@ -1435,7 +1435,7 @@ public abstract class AbstractMvPartitionStorageTest
extends BaseMvPartitionStor
}
@Test
- public void estimatedSizeNeverFallsBelowZero() {
+ public void estimatedSizeNeverFallsBelowZeroUsingWriteCommitted() {
assertThat(storage.estimatedSize(), is(0L));
addWriteCommitted(ROW_ID, null, clock.now());
@@ -1456,7 +1456,42 @@ public abstract class AbstractMvPartitionStorageTest
extends BaseMvPartitionStor
}
@Test
- public void estimatedSizeShowsLatestRowsNumber() {
+ public void estimatedSizeNeverFallsBelowZeroUsingCommitWrite() {
+ assertThat(storage.estimatedSize(), is(0L));
+
+ UUID txId = UUID.randomUUID();
+
+ addWrite(ROW_ID, null, txId);
+
+ assertThat(storage.estimatedSize(), is(0L));
+
+ commitWrite(ROW_ID, clock.now());
+
+ assertThat(storage.estimatedSize(), is(0L));
+
+ addWriteCommitted(ROW_ID, binaryRow, clock.now());
+
+ assertThat(storage.estimatedSize(), is(1L));
+
+ addWrite(ROW_ID, null, txId);
+
+ assertThat(storage.estimatedSize(), is(1L));
+
+ commitWrite(ROW_ID, clock.now());
+
+ assertThat(storage.estimatedSize(), is(0L));
+
+ addWrite(ROW_ID, null, txId);
+
+ assertThat(storage.estimatedSize(), is(0L));
+
+ commitWrite(ROW_ID, clock.now());
+
+ assertThat(storage.estimatedSize(), is(0L));
+ }
+
+ @Test
+ public void estimatedSizeShowsLatestRowsNumberUsingWriteCommited() {
assertThat(storage.estimatedSize(), is(0L));
var rowId1 = new RowId(PARTITION_ID);
@@ -1473,6 +1508,35 @@ public abstract class AbstractMvPartitionStorageTest
extends BaseMvPartitionStor
assertThat(storage.estimatedSize(), is(2L));
}
+ @Test
+ public void estimatedSizeShowsLatestRowsNumberUsingCommitWrite() {
+ assertThat(storage.estimatedSize(), is(0L));
+
+ var rowId1 = new RowId(PARTITION_ID);
+ var rowId2 = new RowId(PARTITION_ID);
+
+ UUID txId = UUID.randomUUID();
+
+ addWrite(rowId1, binaryRow, txId);
+ addWrite(rowId2, binaryRow, txId);
+
+ assertThat(storage.estimatedSize(), is(0L));
+
+ commitWrite(rowId1, clock.now());
+ commitWrite(rowId2, clock.now());
+
+ assertThat(storage.estimatedSize(), is(2L));
+
+ // Overwrite an existing row.
+ addWrite(rowId1, binaryRow, txId);
+
+ assertThat(storage.estimatedSize(), is(2L));
+
+ commitWrite(rowId1, clock.now());
+
+ assertThat(storage.estimatedSize(), is(2L));
+ }
+
@Test
public void estimatedSizeIsNotAffectedByGarbageTombstones() {
assertThat(storage.estimatedSize(), is(0L));
diff --git
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java
index 1db331c084..455b8d3437 100644
---
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java
+++
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/AbstractMvTableStorageTest.java
@@ -1450,6 +1450,31 @@ public abstract class AbstractMvTableStorageTest extends
BaseMvStoragesTest {
assertThat(mvPartitionStorage.estimatedSize(), is(0L));
}
+ @Test
+ public void testEstimatedSizeAfterRestart() throws Exception {
+ MvPartitionStorage mvPartitionStorage =
getOrCreateMvPartition(PARTITION_ID);
+
+ List<TestRow> rows = List.of(
+ new TestRow(new RowId(PARTITION_ID), binaryRow(new TestKey(0,
"0"), new TestValue(0, "0"))),
+ new TestRow(new RowId(PARTITION_ID), binaryRow(new TestKey(1,
"1"), new TestValue(1, "1")))
+ );
+
+ fillStorages(mvPartitionStorage, null, null, rows);
+
+ assertThat(mvPartitionStorage.flush(), willCompleteSuccessfully());
+
+ assertThat(mvPartitionStorage.estimatedSize(), is(2L));
+
+ // Restart storages.
+ tableStorage.close();
+
+ tableStorage = createMvTableStorage();
+
+ mvPartitionStorage = getOrCreateMvPartition(PARTITION_ID);
+
+ assertThat(mvPartitionStorage.estimatedSize(),
is(tableStorage.isVolatile() ? 0L : 2L));
+ }
+
private void startRebalanceWithChecks(
int partitionId,
MvPartitionStorage mvPartitionStorage,
diff --git
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMeta.java
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMeta.java
index abfa6e16d4..7e4d94030d 100644
---
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMeta.java
+++
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMeta.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.storage.pagememory;
import java.util.UUID;
+import java.util.concurrent.atomic.AtomicLongFieldUpdater;
import org.apache.ignite.internal.pagememory.persistence.PartitionMeta;
import org.apache.ignite.internal.pagememory.persistence.PartitionMetaFactory;
import org.apache.ignite.internal.pagememory.persistence.io.PartitionMetaIo;
@@ -31,6 +32,9 @@ public class StoragePartitionMeta extends PartitionMeta {
public static final PartitionMetaFactory FACTORY = new
StoragePartitionMetaFactory();
+ private static final AtomicLongFieldUpdater<StoragePartitionMeta>
ESTIMATED_SIZE_UPDATER =
+ AtomicLongFieldUpdater.newUpdater(StoragePartitionMeta.class,
"estimatedSize");
+
private volatile long lastAppliedIndex;
private volatile long lastAppliedTerm;
@@ -47,6 +51,8 @@ public class StoragePartitionMeta extends PartitionMeta {
private volatile long gcQueueMetaPageId;
+ private volatile long estimatedSize;
+
/**
* Constructor.
*
@@ -59,6 +65,7 @@ public class StoragePartitionMeta extends PartitionMeta {
* @param versionChainTreeRootPageId Version chain tree root page ID.
* @param indexTreeMetaPageId Index tree meta page ID.
* @param gcQueueMetaPageId Garbage collection queue meta page ID.
+ * @param estimatedSize Estimated size of the partition.
*/
public StoragePartitionMeta(
int pageCount,
@@ -69,7 +76,8 @@ public class StoragePartitionMeta extends PartitionMeta {
long freeListRootPageId,
long versionChainTreeRootPageId,
long indexTreeMetaPageId,
- long gcQueueMetaPageId
+ long gcQueueMetaPageId,
+ long estimatedSize
) {
super(pageCount);
this.lastAppliedIndex = lastAppliedIndex;
@@ -80,6 +88,7 @@ public class StoragePartitionMeta extends PartitionMeta {
this.versionChainTreeRootPageId = versionChainTreeRootPageId;
this.indexTreeMetaPageId = indexTreeMetaPageId;
this.gcQueueMetaPageId = gcQueueMetaPageId;
+ this.estimatedSize = estimatedSize;
}
/**
@@ -217,6 +226,31 @@ public class StoragePartitionMeta extends PartitionMeta {
this.gcQueueMetaPageId = gcQueueMetaPageId;
}
+ /**
+ * Returns the estimated size of this partition.
+ */
+ public long estimatedSize() {
+ return estimatedSize;
+ }
+
+ /**
+ * Increments the estimated size of this partition.
+ */
+ public void incrementEstimatedSize(@Nullable UUID checkpointId) {
+ updateSnapshot(checkpointId);
+
+ ESTIMATED_SIZE_UPDATER.incrementAndGet(this);
+ }
+
+ /**
+ * Decrements the estimated size of this partition.
+ */
+ public void decrementEstimatedSize(@Nullable UUID checkpointId) {
+ updateSnapshot(checkpointId);
+
+ ESTIMATED_SIZE_UPDATER.decrementAndGet(this);
+ }
+
@Override
protected StoragePartitionMetaSnapshot buildSnapshot(@Nullable UUID
checkpointId) {
return new StoragePartitionMetaSnapshot(
@@ -229,7 +263,8 @@ public class StoragePartitionMeta extends PartitionMeta {
indexTreeMetaPageId,
gcQueueMetaPageId,
pageCount(),
- leaseStartTime
+ leaseStartTime,
+ estimatedSize
);
}
@@ -292,6 +327,8 @@ public class StoragePartitionMeta extends PartitionMeta {
private final long leaseStartTime;
+ private final long estimatedSize;
+
private StoragePartitionMetaSnapshot(
@Nullable UUID checkpointId,
long lastAppliedIndex,
@@ -302,7 +339,8 @@ public class StoragePartitionMeta extends PartitionMeta {
long indexTreeMetaPageId,
long gcQueueMetaPageId,
int pageCount,
- long leaseStartTime
+ long leaseStartTime,
+ long estimatedSize
) {
this.checkpointId = checkpointId;
this.lastAppliedIndex = lastAppliedIndex;
@@ -314,6 +352,7 @@ public class StoragePartitionMeta extends PartitionMeta {
this.gcQueueMetaPageId = gcQueueMetaPageId;
this.pageCount = pageCount;
this.leaseStartTime = leaseStartTime;
+ this.estimatedSize = estimatedSize;
}
/**
@@ -374,13 +413,18 @@ public class StoragePartitionMeta extends PartitionMeta {
/**
* Returns the lease start time.
- *
- * @return Lease start time.
*/
public long leaseStartTime() {
return leaseStartTime;
}
+ /**
+ * Returns the estimated size of this partition.
+ */
+ public long estimatedSize() {
+ return estimatedSize;
+ }
+
/**
* Writes the contents of the snapshot to a page of type {@link
StoragePartitionMetaIo}.
*
@@ -399,6 +443,7 @@ public class StoragePartitionMeta extends PartitionMeta {
storageMetaIo.setGcQueueMetaPageId(pageAddr, gcQueueMetaPageId);
storageMetaIo.setPageCount(pageAddr, pageCount);
storageMetaIo.setLeaseStartTime(pageAddr, leaseStartTime);
+ storageMetaIo.setEstimatedSize(pageAddr, estimatedSize);
}
/**
diff --git
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaFactory.java
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaFactory.java
index d4b331107d..0f791b8f7c 100644
---
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaFactory.java
+++
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaFactory.java
@@ -39,7 +39,8 @@ public class StoragePartitionMetaFactory implements
PartitionMetaFactory {
StoragePartitionMetaIo.getFreeListRootPageId(pageAddr),
metaIo.getVersionChainTreeRootPageId(pageAddr),
metaIo.getIndexTreeMetaPageId(pageAddr),
- metaIo.getGcQueueMetaPageId(pageAddr)
+ metaIo.getGcQueueMetaPageId(pageAddr),
+ metaIo.getEstimatedSize(pageAddr)
);
return result.init(checkpointId);
diff --git
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaIo.java
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaIo.java
index 11b5e4c61e..20e3c62bec 100644
---
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaIo.java
+++
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaIo.java
@@ -48,6 +48,8 @@ public class StoragePartitionMetaIo extends PartitionMetaIo {
private static final int LEASE_START_TIME_OFF = GC_QUEUE_META_PAGE_ID_OFF
+ Long.BYTES;
+ private static final int ESTIMATED_SIZE_OFF = LEASE_START_TIME_OFF +
Long.BYTES;
+
/** I/O versions. */
public static final IoVersions<StoragePartitionMetaIo> VERSIONS = new
IoVersions<>(new StoragePartitionMetaIo(1));
@@ -75,6 +77,7 @@ public class StoragePartitionMetaIo extends PartitionMetaIo {
setGcQueueMetaPageId(pageAddr, 0);
setPageCount(pageAddr, 0);
setLeaseStartTime(pageAddr, HybridTimestamp.MIN_VALUE.longValue());
+ setEstimatedSize(pageAddr, 0);
}
/**
@@ -246,6 +249,27 @@ public class StoragePartitionMetaIo extends
PartitionMetaIo {
return getLong(pageAddr, LEASE_START_TIME_OFF);
}
+ /**
+ * Sets the estimated size of this partition.
+ *
+ * @param pageAddr Page address.
+ * @param estimatedSize Estimated size.
+ */
+ public void setEstimatedSize(long pageAddr, long estimatedSize) {
+ assertPageType(pageAddr);
+
+ putLong(pageAddr, ESTIMATED_SIZE_OFF, estimatedSize);
+ }
+
+ /**
+ * Returns the estimated size of this partition.
+ *
+ * @param pageAddr Page address.
+ */
+ public long getEstimatedSize(long pageAddr) {
+ return getLong(pageAddr, ESTIMATED_SIZE_OFF);
+ }
+
@Override
protected void printPage(long addr, int pageSize, IgniteStringBuilder sb) {
sb.app("TablePartitionMeta [").nl()
@@ -258,6 +282,7 @@ public class StoragePartitionMetaIo extends PartitionMetaIo
{
.app("gcQueueMetaPageId=").appendHex(getGcQueueMetaPageId(addr)).nl()
.app("pageCount=").app(getPageCount(addr)).nl()
.app("leaseStartTime=").app(getLeaseStartTime(addr)).nl()
+ .app("estimatedSize=").app(getEstimatedSize(addr)).nl()
.app(']');
}
}
diff --git
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorage.java
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorage.java
index 71dbad0a29..07f4eff195 100644
---
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorage.java
+++
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorage.java
@@ -246,12 +246,6 @@ public abstract class AbstractPageMemoryMvPartitionStorage
implements MvPartitio
});
}
- // TODO: Implement, see https://issues.apache.org/jira/browse/IGNITE-22616
- @Override
- public long estimatedSize() {
- throw new UnsupportedOperationException();
- }
-
private static boolean lookingForLatestVersion(HybridTimestamp timestamp) {
return HybridTimestamp.MAX_VALUE.equals(timestamp);
}
@@ -902,4 +896,18 @@ public abstract class AbstractPageMemoryMvPartitionStorage
implements MvPartitio
public CompletableFuture<Void> destroyIndex(int indexId) {
return busy(() -> indexes.destroyIndex(indexId,
renewableState.indexMetaTree()));
}
+
+ /**
+ * Increments the estimated size of this partition.
+ *
+ * @see MvPartitionStorage#estimatedSize
+ */
+ public abstract void incrementEstimatedSize();
+
+ /**
+ * Decrements the estimated size of this partition.
+ *
+ * @see MvPartitionStorage#estimatedSize
+ */
+ public abstract void decrementEstimatedSize();
}
diff --git
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AddWriteCommittedInvokeClosure.java
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AddWriteCommittedInvokeClosure.java
index a54d34466e..a2d4ebf103 100644
---
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AddWriteCommittedInvokeClosure.java
+++
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/AddWriteCommittedInvokeClosure.java
@@ -143,5 +143,15 @@ class AddWriteCommittedInvokeClosure implements
InvokeClosure<VersionChain> {
if (rowLinkForAddToGcQueue != NULL_LINK) {
gcQueue.add(rowId, commitTimestamp, rowLinkForAddToGcQueue);
}
+
+ if (operationType == OperationType.PUT) {
+ if (row == null) {
+ storage.decrementEstimatedSize();
+ } else if (rowLinkForAddToGcQueue == NULL_LINK) {
+ // Checking for NULL_LINK allows us to distinguish if a new
version chain was created or not. In other words if this is
+ // an insert or an update to an existing row.
+ storage.incrementEstimatedSize();
+ }
+ }
}
}
diff --git
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/CommitWriteInvokeClosure.java
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/CommitWriteInvokeClosure.java
index 2e9cde3a91..2a7565da3c 100644
---
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/CommitWriteInvokeClosure.java
+++
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/CommitWriteInvokeClosure.java
@@ -73,6 +73,11 @@ class CommitWriteInvokeClosure implements
InvokeClosure<VersionChain> {
private final UpdateTimestampHandler updateTimestampHandler;
+ /**
+ * Flag indicating that we are committing a tombstone.
+ */
+ private boolean isCurrentRowTombstone = false;
+
CommitWriteInvokeClosure(
RowId rowId,
HybridTimestamp timestamp,
@@ -88,7 +93,6 @@ class CommitWriteInvokeClosure implements
InvokeClosure<VersionChain> {
this.freeList = localState.freeList();
this.gcQueue = localState.gcQueue();
-
}
static class UpdateTimestampHandler implements
PageHandler<HybridTimestamp, Object> {
@@ -128,7 +132,9 @@ class CommitWriteInvokeClosure implements
InvokeClosure<VersionChain> {
RowVersion current = storage.readRowVersion(oldRow.headLink(),
DONT_LOAD_VALUE);
RowVersion next = oldRow.hasNextLink() ?
storage.readRowVersion(oldRow.nextLink(), DONT_LOAD_VALUE) : null;
- if (next == null && current.isTombstone()) {
+ isCurrentRowTombstone = current.isTombstone();
+
+ if (next == null && isCurrentRowTombstone) {
// If there is only one version, and it is a tombstone, then
remove the chain.
operationType = OperationType.REMOVE;
@@ -136,7 +142,7 @@ class CommitWriteInvokeClosure implements
InvokeClosure<VersionChain> {
}
// If the previous and current version are tombstones, then delete the
current version.
- if (next != null && current.isTombstone() && next.isTombstone()) {
+ if (next != null && isCurrentRowTombstone && next.isTombstone()) {
toRemove = current;
newRow = VersionChain.createCommitted(oldRow.rowId(), next.link(),
next.nextLink());
@@ -195,5 +201,17 @@ class CommitWriteInvokeClosure implements
InvokeClosure<VersionChain> {
if (rowLinkForAddToGcQueue != NULL_LINK) {
gcQueue.add(rowId, timestamp, rowLinkForAddToGcQueue);
}
+
+ // We need to check the "toRemove" field in order to avoid a situation
when we are committing a tombstone
+ // over an existing tombstone.
+ if (operationType == OperationType.PUT && toRemove == null) {
+ if (isCurrentRowTombstone) {
+ storage.decrementEstimatedSize();
+ } else if (rowLinkForAddToGcQueue == NULL_LINK) {
+ // Checking for NULL_LINK allows us to distinguish if a new
version chain was created or not. In other words if this is
+ // an insert or an update to an existing row.
+ storage.incrementEstimatedSize();
+ }
+ }
}
}
diff --git
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorage.java
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorage.java
index f9f197c080..18148d2ea8 100644
---
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorage.java
+++
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorage.java
@@ -451,4 +451,19 @@ public class PersistentPageMemoryMvPartitionStorage
extends AbstractPageMemoryMv
throw new StorageException("Failed to save free list metadata:
[{}]", e, createStorageInfo());
}
}
+
+ @Override
+ public long estimatedSize() {
+ return meta.estimatedSize();
+ }
+
+ @Override
+ public void incrementEstimatedSize() {
+ updateMeta((lastCheckpointId, meta) ->
meta.incrementEstimatedSize(lastCheckpointId));
+ }
+
+ @Override
+ public void decrementEstimatedSize() {
+ updateMeta((lastCheckpointId, meta) ->
meta.decrementEstimatedSize(lastCheckpointId));
+ }
}
diff --git
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorage.java
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorage.java
index a1f26490d7..e9d48d763a 100644
---
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorage.java
+++
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorage.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
+import java.util.concurrent.atomic.AtomicLongFieldUpdater;
import java.util.function.Consumer;
import java.util.function.Predicate;
import org.apache.ignite.internal.hlc.HybridTimestamp;
@@ -55,6 +56,9 @@ public class VolatilePageMemoryMvPartitionStorage extends
AbstractPageMemoryMvPa
private static final Predicate<HybridTimestamp> NEVER_LOAD_VALUE = ts ->
false;
+ private static final
AtomicLongFieldUpdater<VolatilePageMemoryMvPartitionStorage>
ESTIMATED_SIZE_UPDATER =
+
AtomicLongFieldUpdater.newUpdater(VolatilePageMemoryMvPartitionStorage.class,
"estimatedSize");
+
/** Last applied index value. */
private volatile long lastAppliedIndex;
@@ -67,6 +71,8 @@ public class VolatilePageMemoryMvPartitionStorage extends
AbstractPageMemoryMvPa
/** Last group configuration. */
private volatile byte @Nullable [] groupConfig;
+ private volatile long estimatedSize;
+
/**
* Constructor.
*
@@ -343,6 +349,8 @@ public class VolatilePageMemoryMvPartitionStorage extends
AbstractPageMemoryMvPa
indexMetaTree,
gcQueue
);
+
+ estimatedSize = 0;
}
@Override
@@ -351,4 +359,19 @@ public class VolatilePageMemoryMvPartitionStorage extends
AbstractPageMemoryMvPa
this.groupConfig = config;
}
+
+ @Override
+ public long estimatedSize() {
+ return estimatedSize;
+ }
+
+ @Override
+ public void incrementEstimatedSize() {
+ ESTIMATED_SIZE_UPDATER.incrementAndGet(this);
+ }
+
+ @Override
+ public void decrementEstimatedSize() {
+ ESTIMATED_SIZE_UPDATER.decrementAndGet(this);
+ }
}
diff --git
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryMvTableStorageTest.java
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryMvTableStorageTest.java
index 53009c3ba3..698fa830fb 100644
---
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryMvTableStorageTest.java
+++
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryMvTableStorageTest.java
@@ -43,7 +43,6 @@ import
org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.internal.util.IgniteUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.params.ParameterizedTest;
@@ -136,16 +135,4 @@ public class PersistentPageMemoryMvTableStorageTest
extends AbstractMvTableStora
);
}
}
-
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void testEstimatedSizeAfterRebalance() {
- super.testEstimatedSizeAfterRebalance();
- }
-
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void testEstimatedSizeAfterAbortRebalance() {
- super.testEstimatedSizeAfterAbortRebalance();
- }
}
diff --git
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaManagerTest.java
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaManagerTest.java
index d9e4fce7ec..5a731c0f6f 100644
---
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaManagerTest.java
+++
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaManagerTest.java
@@ -91,6 +91,7 @@ public class StoragePartitionMetaManagerTest extends
BaseIgniteAbstractTest {
assertEquals(0, meta.freeListRootPageId());
assertEquals(1, meta.pageCount());
assertEquals(HybridTimestamp.MIN_VALUE.longValue(),
meta.leaseStartTime());
+ assertEquals(0, meta.estimatedSize());
// Change the meta and write it to the file.
meta.lastApplied(null, 50, 10);
@@ -99,6 +100,7 @@ public class StoragePartitionMetaManagerTest extends
BaseIgniteAbstractTest {
meta.freeListRootPageId(null, 900);
meta.incrementPageCount(null);
meta.updateLease(null, 500);
+ meta.incrementEstimatedSize(null);
manager.writeMetaToBuffer(partId,
meta.metaSnapshot(UUID.randomUUID()), buffer);
@@ -120,13 +122,14 @@ public class StoragePartitionMetaManagerTest extends
BaseIgniteAbstractTest {
assertEquals(900, meta.freeListRootPageId());
assertEquals(2, meta.pageCount());
assertEquals(500, meta.leaseStartTime());
+ assertEquals(1, meta.estimatedSize());
}
// Check with delta file.
try (FilePageStore filePageStore =
createFilePageStore(testFilePath)) {
manager.writeMetaToBuffer(
partId,
- new StoragePartitionMeta(4, 100, 10, 34, 1000, 900,
300, 200, 400)
+ new StoragePartitionMeta(4, 100, 10, 34, 1000, 900,
300, 200, 400, 200)
.init(null)
.metaSnapshot(null),
buffer.rewind()
@@ -152,6 +155,7 @@ public class StoragePartitionMetaManagerTest extends
BaseIgniteAbstractTest {
assertEquals(400, meta.gcQueueMetaPageId());
assertEquals(4, meta.pageCount());
assertEquals(1000, meta.leaseStartTime());
+ assertEquals(200, meta.estimatedSize());
}
// Let's check the broken CRC.
@@ -171,6 +175,7 @@ public class StoragePartitionMetaManagerTest extends
BaseIgniteAbstractTest {
assertEquals(0, meta.versionChainTreeRootPageId());
assertEquals(0, meta.freeListRootPageId());
assertEquals(1, meta.pageCount());
+ assertEquals(0, meta.estimatedSize());
}
} finally {
freeBuffer(buffer);
diff --git
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaTest.java
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaTest.java
index 6ef1a42ab8..62195c21a8 100644
---
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaTest.java
+++
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/StoragePartitionMetaTest.java
@@ -126,38 +126,62 @@ public class StoragePartitionMetaTest {
assertEquals(500, meta.freeListRootPageId());
}
+ @Test
+ void testEstimatedSize() {
+ StoragePartitionMeta meta = createMeta();
+
+ assertEquals(0, meta.estimatedSize());
+
+ assertDoesNotThrow(() -> meta.incrementEstimatedSize(null));
+
+ assertEquals(1, meta.estimatedSize());
+
+ assertDoesNotThrow(() ->
meta.incrementEstimatedSize(UUID.randomUUID()));
+
+ assertEquals(2, meta.estimatedSize());
+
+ assertDoesNotThrow(() -> meta.decrementEstimatedSize(null));
+
+ assertEquals(1, meta.estimatedSize());
+
+ assertDoesNotThrow(() ->
meta.decrementEstimatedSize(UUID.randomUUID()));
+
+ assertEquals(0, meta.estimatedSize());
+ }
+
@Test
void testSnapshot() {
StoragePartitionMeta meta = createMeta();
UUID checkpointId = null;
- checkSnapshot(meta.metaSnapshot(checkpointId), 0, 0, 0, 0, 0, 0);
- checkSnapshot(meta.metaSnapshot(checkpointId = UUID.randomUUID()), 0,
0, 0, 0, 0, 0);
+ checkSnapshot(meta.metaSnapshot(checkpointId), 0, 0, 0, 0, 0, 0, 0);
+ checkSnapshot(meta.metaSnapshot(checkpointId = UUID.randomUUID()), 0,
0, 0, 0, 0, 0, 0);
meta.lastApplied(checkpointId, 50, 5);
meta.lastReplicationProtocolGroupConfigFirstPageId(checkpointId, 12);
meta.versionChainTreeRootPageId(checkpointId, 300);
meta.freeListRootPageId(checkpointId, 900);
meta.incrementPageCount(checkpointId);
+ meta.incrementEstimatedSize(checkpointId);
- checkSnapshot(meta.metaSnapshot(checkpointId), 0, 0, 0, 0, 0, 0);
- checkSnapshot(meta.metaSnapshot(UUID.randomUUID()), 50, 5, 12, 300,
900, 1);
+ checkSnapshot(meta.metaSnapshot(checkpointId), 0, 0, 0, 0, 0, 0, 0);
+ checkSnapshot(meta.metaSnapshot(UUID.randomUUID()), 50, 5, 12, 300,
900, 1, 1);
meta.lastApplied(checkpointId = UUID.randomUUID(), 51, 6);
meta.lastReplicationProtocolGroupConfigFirstPageId(checkpointId, 34);
- checkSnapshot(meta.metaSnapshot(checkpointId), 50, 5, 12, 300, 900, 1);
+ checkSnapshot(meta.metaSnapshot(checkpointId), 50, 5, 12, 300, 900, 1,
1);
meta.versionChainTreeRootPageId(checkpointId = UUID.randomUUID(), 303);
- checkSnapshot(meta.metaSnapshot(checkpointId), 51, 6, 34, 300, 900, 1);
+ checkSnapshot(meta.metaSnapshot(checkpointId), 51, 6, 34, 300, 900, 1,
1);
meta.freeListRootPageId(checkpointId = UUID.randomUUID(), 909);
- checkSnapshot(meta.metaSnapshot(checkpointId), 51, 6, 34, 303, 900, 1);
+ checkSnapshot(meta.metaSnapshot(checkpointId), 51, 6, 34, 303, 900, 1,
1);
meta.incrementPageCount(checkpointId = UUID.randomUUID());
- checkSnapshot(meta.metaSnapshot(checkpointId), 51, 6, 34, 303, 909, 1);
+ checkSnapshot(meta.metaSnapshot(checkpointId), 51, 6, 34, 303, 909, 1,
1);
- checkSnapshot(meta.metaSnapshot(UUID.randomUUID()), 51, 6, 34, 303,
909, 2);
+ checkSnapshot(meta.metaSnapshot(UUID.randomUUID()), 51, 6, 34, 303,
909, 2, 1);
}
@Test
@@ -176,7 +200,8 @@ public class StoragePartitionMetaTest {
long expLastGroupConfigFirstPageId,
long expVersionChainTreeRootPageId,
long expFreeListRootPageId,
- int expPageCount
+ int expPageCount,
+ long expEstimatedSize
) {
assertThat(snapshot.lastAppliedIndex(), equalTo(expLastAppliedIndex));
assertThat(snapshot.lastAppliedTerm(), equalTo(expLastAppliedTerm));
@@ -184,10 +209,11 @@ public class StoragePartitionMetaTest {
assertThat(snapshot.versionChainTreeRootPageId(),
equalTo(expVersionChainTreeRootPageId));
assertThat(snapshot.freeListRootPageId(),
equalTo(expFreeListRootPageId));
assertThat(snapshot.pageCount(), equalTo(expPageCount));
+ assertThat(snapshot.estimatedSize(), equalTo(expEstimatedSize));
}
private static StoragePartitionMeta createMeta() {
- return new StoragePartitionMeta(0, 0, 0, 0, 0, 0, 0, 0, 0)
+ return new StoragePartitionMeta(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
.init(null);
}
}
diff --git
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryMvTableStorageTest.java
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryMvTableStorageTest.java
index df03145f05..21478b0f53 100644
---
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryMvTableStorageTest.java
+++
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryMvTableStorageTest.java
@@ -48,7 +48,6 @@ import org.apache.ignite.internal.type.NativeTypes;
import org.apache.ignite.internal.util.IgniteUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
/**
@@ -236,18 +235,6 @@ public class VolatilePageMemoryMvTableStorageTest extends
AbstractMvTableStorage
}
}
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void testEstimatedSizeAfterRebalance() {
- super.testEstimatedSizeAfterRebalance();
- }
-
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void testEstimatedSizeAfterAbortRebalance() {
- super.testEstimatedSizeAfterAbortRebalance();
- }
-
private VolatilePageMemoryDataRegion dataRegion() {
return ((VolatilePageMemoryTableStorage) tableStorage).dataRegion();
}
diff --git
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorageTest.java
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorageTest.java
index 3607ed7a1c..ca368dc929 100644
---
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorageTest.java
+++
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/AbstractPageMemoryMvPartitionStorageTest.java
@@ -28,7 +28,6 @@ import org.apache.ignite.internal.schema.BinaryRow;
import org.apache.ignite.internal.storage.AbstractMvPartitionStorageTest;
import org.apache.ignite.internal.storage.PartitionTimestampCursor;
import org.apache.ignite.internal.storage.RowId;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
/**
@@ -110,40 +109,4 @@ abstract class AbstractPageMemoryMvPartitionStorageTest
extends AbstractMvPartit
assertThat(foundRow, isRow(longRow));
}
}
-
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void estimatedSizeUsingWriteIntents() {
- super.estimatedSizeUsingWriteIntents();
- }
-
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void estimatedSizeUsingCommittedWrites() {
- super.estimatedSizeUsingCommittedWrites();
- }
-
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void estimatedSizeNeverFallsBelowZero() {
- super.estimatedSizeNeverFallsBelowZero();
- }
-
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void estimatedSizeShowsLatestRowsNumber() {
- super.estimatedSizeShowsLatestRowsNumber();
- }
-
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void estimatedSizeIsNotAffectedByGarbageTombstones() {
- super.estimatedSizeIsNotAffectedByGarbageTombstones();
- }
-
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void estimatedSizeHandlesTransactionAborts() {
- super.estimatedSizeHandlesTransactionAborts();
- }
}
diff --git
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageConcurrencyTest.java
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageConcurrencyTest.java
index f10fca967f..f1b1abfe0f 100644
---
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageConcurrencyTest.java
+++
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageConcurrencyTest.java
@@ -38,7 +38,6 @@ import
org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.internal.util.IgniteUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(WorkDirectoryExtension.class)
@@ -90,10 +89,4 @@ class PersistentPageMemoryMvPartitionStorageConcurrencyTest
extends AbstractMvPa
engine == null ? null : engine::stop
);
}
-
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void testConcurrentAddAndRemoveEstimatedSize() {
- super.testConcurrentAddAndRemoveEstimatedSize();
- }
}
diff --git
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorageConcurrencyTest.java
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorageConcurrencyTest.java
index 1836477c75..84a29c720f 100644
---
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorageConcurrencyTest.java
+++
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorageConcurrencyTest.java
@@ -33,7 +33,6 @@ import
org.apache.ignite.internal.storage.pagememory.configuration.schema.Volati
import org.apache.ignite.internal.util.IgniteUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
class VolatilePageMemoryMvPartitionStorageConcurrencyTest extends
AbstractMvPartitionStorageConcurrencyTest {
private VolatilePageMemoryStorageEngine engine;
@@ -71,10 +70,4 @@ class VolatilePageMemoryMvPartitionStorageConcurrencyTest
extends AbstractMvPart
engine == null ? null : engine::stop
);
}
-
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-22616")
- @Override
- public void testConcurrentAddAndRemoveEstimatedSize() {
- super.testConcurrentAddAndRemoveEstimatedSize();
- }
}
diff --git
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java
index 59ecda3de5..8648722bbe 100644
---
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java
+++
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java
@@ -98,14 +98,26 @@ public class RocksDbMvPartitionStorageTest extends
AbstractMvPartitionStorageTes
@Disabled("https://issues.apache.org/jira/browse/IGNITE-22617")
@Override
- public void estimatedSizeNeverFallsBelowZero() {
- super.estimatedSizeNeverFallsBelowZero();
+ public void estimatedSizeNeverFallsBelowZeroUsingWriteCommitted() {
+ super.estimatedSizeNeverFallsBelowZeroUsingWriteCommitted();
}
@Disabled("https://issues.apache.org/jira/browse/IGNITE-22617")
@Override
- public void estimatedSizeShowsLatestRowsNumber() {
- super.estimatedSizeShowsLatestRowsNumber();
+ public void estimatedSizeNeverFallsBelowZeroUsingCommitWrite() {
+ super.estimatedSizeNeverFallsBelowZeroUsingCommitWrite();
+ }
+
+ @Disabled("https://issues.apache.org/jira/browse/IGNITE-22617")
+ @Override
+ public void estimatedSizeShowsLatestRowsNumberUsingWriteCommited() {
+ super.estimatedSizeShowsLatestRowsNumberUsingWriteCommited();
+ }
+
+ @Disabled("https://issues.apache.org/jira/browse/IGNITE-22617")
+ @Override
+ public void estimatedSizeShowsLatestRowsNumberUsingCommitWrite() {
+ super.estimatedSizeShowsLatestRowsNumberUsingCommitWrite();
}
@Disabled("https://issues.apache.org/jira/browse/IGNITE-22617")
diff --git
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java
index 8e5751a5a6..ce2397730c 100644
---
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java
+++
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java
@@ -175,4 +175,10 @@ public class RocksDbMvTableStorageTest extends
AbstractMvTableStorageTest {
public void testEstimatedSizeAfterAbortRebalance() {
super.testEstimatedSizeAfterAbortRebalance();
}
+
+ @Disabled("https://issues.apache.org/jira/browse/IGNITE-22617")
+ @Override
+ public void testEstimatedSizeAfterRestart() throws Exception {
+ super.testEstimatedSizeAfterRestart();
+ }
}
diff --git
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItEstimatedSizeTest.java
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItEstimatedSizeTest.java
index ed53068a3c..f1925000f4 100644
---
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItEstimatedSizeTest.java
+++
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItEstimatedSizeTest.java
@@ -17,6 +17,8 @@
package org.apache.ignite.internal.table;
+import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_AIMEM_PROFILE_NAME;
+import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_AIPERSIST_PROFILE_NAME;
import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_TEST_PROFILE_NAME;
import static org.apache.ignite.internal.TestWrappers.unwrapTableViewInternal;
import static
org.apache.ignite.internal.catalog.commands.CatalogUtils.IMMEDIATE_TIMER_VALUE;
@@ -53,10 +55,8 @@ public class ItEstimatedSizeTest extends
ClusterPerTestIntegrationTest {
private static final String[] ALL_STORAGE_PROFILES = {
DEFAULT_TEST_PROFILE_NAME,
- // TODO: https://issues.apache.org/jira/browse/IGNITE-22616
- // DEFAULT_AIPERSIST_PROFILE_NAME,
- // TODO: https://issues.apache.org/jira/browse/IGNITE-22616
- // DEFAULT_AIMEM_PROFILE_NAME,
+ DEFAULT_AIPERSIST_PROFILE_NAME,
+ DEFAULT_AIMEM_PROFILE_NAME
// TODO: https://issues.apache.org/jira/browse/IGNITE-22617
// DEFAULT_ROCKSDB_PROFILE_NAME
};