aweisberg commented on code in PR #3463:
URL: https://github.com/apache/cassandra/pull/3463#discussion_r1838345982


##########
src/java/org/apache/cassandra/service/accord/txn/TxnKeyRead.java:
##########
@@ -60,60 +64,58 @@
 
 public class TxnKeyRead extends AbstractKeySorted<TxnNamedRead> implements 
TxnRead
 {
-    public static final TxnKeyRead EMPTY = new TxnKeyRead(new TxnNamedRead[0], 
Keys.EMPTY, null);
+    public static final TxnKeyRead EMPTY = new TxnKeyRead(new TxnNamedRead[0], 
null);
     private static final long EMPTY_SIZE = ObjectSizes.measure(EMPTY);
 
-    public static final String CAS_READ_NAME = "CAS_READ";
-    public static final TxnDataName CAS_READ = new 
TxnDataName(TxnDataName.Kind.CAS_READ, CAS_READ_NAME);
-
-    @Nonnull
-    private final Keys txnKeys;
-
     // Cassandra's consistency level used by Accord to safely read data 
written outside of Accord
     @Nullable
     private final ConsistencyLevel cassandraConsistencyLevel;
 
-    public TxnKeyRead(@Nonnull TxnNamedRead[] items, @Nonnull Keys txnKeys, 
@Nullable ConsistencyLevel cassandraConsistencyLevel)
+    private TxnKeyRead(@Nonnull TxnNamedRead[] items, @Nullable 
ConsistencyLevel cassandraConsistencyLevel)
     {
         super(items);
+        checkNotNull(items, "items is null");
         checkArgument(cassandraConsistencyLevel == null || 
SUPPORTED_READ_CONSISTENCY_LEVELS.contains(cassandraConsistencyLevel), 
"Unsupported consistency level for read");
-        this.txnKeys = txnKeys;
         this.cassandraConsistencyLevel = cassandraConsistencyLevel;
     }
 
-    public TxnKeyRead(@Nonnull List<TxnNamedRead> items, @Nonnull Keys 
txnKeys, @Nullable ConsistencyLevel cassandraConsistencyLevel)
+    private TxnKeyRead(@Nonnull List<TxnNamedRead> items, @Nullable 
ConsistencyLevel cassandraConsistencyLevel)
     {
         super(items);
+        checkNotNull(items, "items is null");
         checkArgument(cassandraConsistencyLevel == null || 
SUPPORTED_READ_CONSISTENCY_LEVELS.contains(cassandraConsistencyLevel), 
"Unsupported consistency level for read");
-        this.txnKeys = txnKeys;
         this.cassandraConsistencyLevel = cassandraConsistencyLevel;
     }
 
-    public static TxnKeyRead createTxnRead(@Nonnull List<TxnNamedRead> items, 
@Nonnull Keys txnKeys, @Nullable ConsistencyLevel consistencyLevel)
+    public static TxnKeyRead createTxnRead(@Nonnull List<TxnNamedRead> items, 
@Nullable ConsistencyLevel consistencyLevel)
     {
-        return new TxnKeyRead(items, txnKeys, consistencyLevel);
+        items.sort(Comparator.comparing(TxnNamedRead::key));
+        return new TxnKeyRead(items, consistencyLevel);
     }
 
     public static TxnKeyRead createSerialRead(List<SinglePartitionReadCommand> 
readCommands, ConsistencyLevel consistencyLevel)
     {
         List<TxnNamedRead> reads = new ArrayList<>(readCommands.size());
         for (int i = 0; i < readCommands.size(); i++)
-            reads.add(new TxnNamedRead(TxnDataName.user(String.valueOf(i)), 
readCommands.get(i)));
-        Keys keys = Keys.of(reads, TxnNamedRead::key);
-        return new TxnKeyRead(reads, keys, consistencyLevel);
+            reads.add(new TxnNamedRead(txnDataName(USER, i), 
readCommands.get(i)));
+        reads.sort(Comparator.comparing(TxnNamedRead::key));

Review Comment:
   I can make it static. I don't know if allocates.



-- 
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: pr-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org
For additional commands, e-mail: pr-h...@cassandra.apache.org

Reply via email to