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

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

commit 36d43ed08741e427c0c8f7093d7c47e6d629d8af
Author: Semyon Danilov <[email protected]>
AuthorDate: Tue Sep 27 17:30:03 2022 +0400

    IGNITE-17720 Extend MvPartitionStorage scan API with write intent 
resolution capabilities
---
 .../TestConcurrentHashMapMvPartitionStorage.java   |  4 ++++
 .../mv/AbstractPageMemoryMvPartitionStorage.java   | 11 +++++-----
 .../storage/rocksdb/RocksDbMvPartitionStorage.java | 24 ----------------------
 3 files changed, 10 insertions(+), 29 deletions(-)

diff --git 
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvPartitionStorage.java
 
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvPartitionStorage.java
index be90f55363..f9da2dbab9 100644
--- 
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvPartitionStorage.java
+++ 
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvPartitionStorage.java
@@ -340,6 +340,10 @@ public class TestConcurrentHashMapMvPartitionStorage 
implements MvPartitionStora
 
             @Override
             public BinaryRow committed(HybridTimestamp timestamp) {
+                if (currentChain == null) {
+                    throw new IllegalStateException();
+                }
+
                 ReadResult read = read(currentChain, timestamp, null, filter);
 
                 if (read.transactionId() == null) {
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 9cc60288cd..0b8eabdb49 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
@@ -662,7 +662,7 @@ public abstract class AbstractPageMemoryMvPartitionStorage 
implements MvPartitio
             throw new StorageException("Find failed", e);
         }
 
-        return new ScanCursor(treeCursor, keyFilter, txId);
+        return new TransactionIdCursor(treeCursor, keyFilter, txId);
     }
 
     @Override
@@ -775,6 +775,7 @@ public abstract class AbstractPageMemoryMvPartitionStorage 
implements MvPartitio
             assert nextRead != null;
 
             ReadResult res = nextRead;
+
             nextRead = null;
 
             return res;
@@ -787,8 +788,8 @@ public abstract class AbstractPageMemoryMvPartitionStorage 
implements MvPartitio
 
         @Override
         public BinaryRow committed(HybridTimestamp timestamp) {
-            if (iterationExhausted) {
-                throw new NoSuchElementException();
+            if (iterationExhausted || nextRead == null) {
+                throw new IllegalStateException();
             }
 
             VersionChain chain = getCurrentChainFromTreeCursor();
@@ -799,7 +800,7 @@ public abstract class AbstractPageMemoryMvPartitionStorage 
implements MvPartitio
         }
     }
 
-    private class ScanCursor implements Cursor<BinaryRow> {
+    private class TransactionIdCursor implements Cursor<BinaryRow> {
         private final IgniteCursor<VersionChain> treeCursor;
 
         private final Predicate<BinaryRow> keyFilter;
@@ -810,7 +811,7 @@ public abstract class AbstractPageMemoryMvPartitionStorage 
implements MvPartitio
 
         private boolean iterationExhausted = false;
 
-        public ScanCursor(
+        public TransactionIdCursor(
                 IgniteCursor<VersionChain> treeCursor,
                 Predicate<BinaryRow> keyFilter,
                 @Nullable UUID transactionId
diff --git 
a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java
 
b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java
index 3028d9afe2..994d697561 100644
--- 
a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java
+++ 
b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java
@@ -813,30 +813,6 @@ public class RocksDbMvPartitionStorage implements 
MvPartitionStorage {
             public void close() throws Exception {
                 IgniteUtils.closeAll(it, options);
             }
-
-            private void incrementRowId(ByteBuffer buf) {
-                long lsb = 1 + buf.getLong(ROW_ID_OFFSET + Long.BYTES);
-
-                buf.putLong(ROW_ID_OFFSET + Long.BYTES, lsb);
-
-                if (lsb != 0L) {
-                    return;
-                }
-
-                long msb = 1 + buf.getLong(ROW_ID_OFFSET);
-
-                buf.putLong(ROW_ID_OFFSET, msb);
-
-                if (msb != 0L) {
-                    return;
-                }
-
-                short partitionId = (short) (1 + buf.getShort(0));
-
-                assert partitionId != 0;
-
-                buf.putShort(0, partitionId);
-            }
         };
     }
 

Reply via email to