amazingJing commented on a change in pull request #16969:
URL: https://github.com/apache/flink/pull/16969#discussion_r701710658
##########
File path:
flink-state-backends/flink-statebackend-rocksdb/src/test/java/org/apache/flink/contrib/streaming/state/snapshot/RocksIncrementalSnapshotStrategyTest.java
##########
@@ -0,0 +1,148 @@
+package org.apache.flink.contrib.streaming.state.snapshot;
+
+import org.apache.flink.api.common.state.StateDescriptor;
+import org.apache.flink.api.common.typeutils.base.IntSerializer;
+import org.apache.flink.api.java.tuple.Tuple2;
+import org.apache.flink.contrib.streaming.state.RocksDBKeyedStateBackend;
+import org.apache.flink.contrib.streaming.state.RocksDBOptions;
+import org.apache.flink.contrib.streaming.state.RocksDBStateUploader;
+import org.apache.flink.core.fs.CloseableRegistry;
+import org.apache.flink.runtime.checkpoint.CheckpointOptions;
+import org.apache.flink.runtime.state.ArrayListSerializer;
+import org.apache.flink.runtime.state.CompositeKeySerializationUtils;
+import org.apache.flink.runtime.state.KeyGroupRange;
+import org.apache.flink.runtime.state.RegisteredKeyValueStateBackendMetaInfo;
+import org.apache.flink.runtime.state.StateHandleID;
+import org.apache.flink.runtime.state.TestLocalRecoveryConfig;
+import org.apache.flink.runtime.state.filesystem.FsCheckpointStreamFactory;
+import org.apache.flink.util.ResourceGuard;
+
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.rocksdb.ColumnFamilyDescriptor;
+import org.rocksdb.ColumnFamilyHandle;
+import org.rocksdb.RocksDB;
+import org.rocksdb.RocksDBException;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.UUID;
+
+import static org.apache.flink.core.fs.Path.fromLocalFile;
+import static org.apache.flink.core.fs.local.LocalFileSystem.getSharedInstance;
+import static org.powermock.api.mockito.PowerMockito.spy;
+
+/**
+ * Test for verifying the changed logic about notifyCheckpointComplete over
+ * RocksIncrementalSnapshotStrategy is incremental.
+ */
+public class RocksIncrementalSnapshotStrategyTest {
+
+ @Rule public final TemporaryFolder tmp = new TemporaryFolder();
+
+ @Test
+ public void testCheckpointIsIncremental() throws Exception {
+ CloseableRegistry closeableRegistry = new CloseableRegistry();
+
+ // prepare components
+ Tuple2<RocksIncrementalSnapshotStrategy, SortedMap<Long,
Set<StateHandleID>>> prepareData =
+ prepareCreateSnapshotStrategy(closeableRegistry);
+ RocksIncrementalSnapshotStrategy checkpointSnapshotStrategy =
prepareData.f0;
+ SortedMap<Long, Set<StateHandleID>> materializedSstFiles =
prepareData.f1;
+
+ // make checkpoint with id 1
+ RocksIncrementalSnapshotStrategy.IncrementalRocksDBSnapshotResources
snapshotResources =
+ checkpointSnapshotStrategy.syncPrepareResources(1L);
+
+ checkpointSnapshotStrategy
+ .asyncSnapshot(
+ snapshotResources,
+ 1L,
+ 1L,
+ new FsCheckpointStreamFactory(
+ getSharedInstance(),
+ fromLocalFile(tmp.newFolder("checkpointsDir")),
+ fromLocalFile(tmp.newFolder("sharedStateDir")),
+ 100,
+ 100),
+ CheckpointOptions.forCheckpointWithDefaultLocation())
+ .get(closeableRegistry);
+
+ // notify checkpoint with id 1
+ checkpointSnapshotStrategy.notifyCheckpointComplete(1L);
+
+ // notify savepoint with id 2
+ checkpointSnapshotStrategy.notifyCheckpointComplete(2L);
+
+ // verify stateHandleIDSet is not empty after a savepoint
notifyComplete
+ Set<StateHandleID> stateHandleIDSet = materializedSstFiles.get(1L);
+ Assert.assertNotNull(stateHandleIDSet);
+ Assert.assertTrue(stateHandleIDSet.size() > 0);
Review comment:
We have completed the modification. Please help review.Thanks! @
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]