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

benedict pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-accord.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 6a9482be restore lost commit
6a9482be is described below

commit 6a9482beac98b0421176937b6557565f4f8ca1be
Author: Benedict Elliott Smith <bened...@apache.org>
AuthorDate: Thu Oct 3 11:51:47 2024 +0100

    restore lost commit
---
 .../src/main/java/accord/impl/TimestampsForKeys.java        |  1 -
 accord-core/src/main/java/accord/local/Cleanup.java         | 13 +++++++++++--
 accord-core/src/main/java/accord/local/CommandStore.java    | 11 -----------
 .../src/main/java/accord/local/SafeCommandStore.java        |  7 ++++---
 accord-core/src/main/java/accord/primitives/Timestamp.java  | 10 ----------
 accord-core/src/main/java/accord/primitives/Txn.java        |  2 +-
 6 files changed, 16 insertions(+), 28 deletions(-)

diff --git a/accord-core/src/main/java/accord/impl/TimestampsForKeys.java 
b/accord-core/src/main/java/accord/impl/TimestampsForKeys.java
index baea052c..987400b0 100644
--- a/accord-core/src/main/java/accord/impl/TimestampsForKeys.java
+++ b/accord-core/src/main/java/accord/impl/TimestampsForKeys.java
@@ -20,7 +20,6 @@ package accord.impl;
 
 import accord.api.RoutingKey;
 import accord.api.VisibleForImplementation;
-import accord.local.CommandStore;
 import accord.local.SafeCommandStore;
 import accord.primitives.RoutingKeys;
 import accord.primitives.Timestamp;
diff --git a/accord-core/src/main/java/accord/local/Cleanup.java 
b/accord-core/src/main/java/accord/local/Cleanup.java
index b07c8a09..0c0cecf7 100644
--- a/accord-core/src/main/java/accord/local/Cleanup.java
+++ b/accord-core/src/main/java/accord/local/Cleanup.java
@@ -52,16 +52,20 @@ import static accord.utils.Invariants.illegalState;
 public enum Cleanup
 {
     NO(Uninitialised),
+    // we don't know if the command has been applied or invalidated as we have 
incomplete information
+    // so erase what information we don't need in future to decide this
+    // TODO (required): tighten up semantics here (and maybe infer more 
aggressively)
+    EXPUNGE_PARTIAL(TruncatedApplyWithOutcome),
     TRUNCATE_WITH_OUTCOME(TruncatedApplyWithOutcome),
     TRUNCATE(TruncatedApply),
     INVALIDATE(Invalidated),
     VESTIGIAL(ErasedOrVestigial),
     ERASE(Erased),
-    // erase all fields except any participants and committed executeAt
-    EXPUNGE_PARTIAL(Erased),
     // we can stop storing the record entirely
     EXPUNGE(Erased);
 
+    private static final Cleanup[] VALUES = values();
+
     public final SaveStatus appliesIfNot;
 
     Cleanup(SaveStatus appliesIfNot)
@@ -239,4 +243,9 @@ public enum Cleanup
         //  then we can safely erase. Revisit as part of rationalising 
RedundantBefore registers.
         return redundantBefore.shardStatus(txnId) == SHARD_REDUNDANT;
     }
+
+    public static Cleanup forOrdinal(int ordinal)
+    {
+        return VALUES[ordinal];
+    }
 }
diff --git a/accord-core/src/main/java/accord/local/CommandStore.java 
b/accord-core/src/main/java/accord/local/CommandStore.java
index d8a4583e..cc6abde3 100644
--- a/accord-core/src/main/java/accord/local/CommandStore.java
+++ b/accord-core/src/main/java/accord/local/CommandStore.java
@@ -242,22 +242,11 @@ public abstract class CommandStore implements 
AgentExecutor
 
     protected abstract void registerHistoricalTransactions(Deps deps, 
SafeCommandStore safeStore);
 
-    protected void upsertDurableBefore(DurableBefore addDurableBefore)
-    {
-        durableBefore = DurableBefore.merge(durableBefore, addDurableBefore);
-    }
-
     protected void unsafeSetRejectBefore(RejectBefore newRejectBefore)
     {
         this.rejectBefore = newRejectBefore;
     }
 
-    // Should be called _only_ via safe command store
-    protected void upsertRedundantBefore(RedundantBefore addRedundantBefore)
-    {
-        redundantBefore = RedundantBefore.merge(redundantBefore, 
addRedundantBefore);
-    }
-
     protected void unsafeSetDurableBefore(DurableBefore newDurableBefore)
     {
         durableBefore = newDurableBefore;
diff --git a/accord-core/src/main/java/accord/local/SafeCommandStore.java 
b/accord-core/src/main/java/accord/local/SafeCommandStore.java
index bb2bf7e8..2788f4bb 100644
--- a/accord-core/src/main/java/accord/local/SafeCommandStore.java
+++ b/accord-core/src/main/java/accord/local/SafeCommandStore.java
@@ -239,12 +239,13 @@ public abstract class SafeCommandStore
 
     public void upsertRedundantBefore(RedundantBefore addRedundantBefore)
     {
-        commandStore().upsertRedundantBefore(addRedundantBefore);
+        RedundantBefore newRedundantBefore = 
RedundantBefore.merge(redundantBefore(), addRedundantBefore);
+        unsafeSetRedundantBefore(newRedundantBefore);
     }
 
-    public void upsertDurableBefore(DurableBefore addDurableBefore)
+    protected void unsafeSetRedundantBefore(RedundantBefore newRedundantBefore)
     {
-        commandStore().upsertDurableBefore(addDurableBefore);
+        commandStore().unsafeSetRedundantBefore(newRedundantBefore);
     }
 
     public void setBootstrapBeganAt(NavigableMap<TxnId, Ranges> 
newBootstrapBeganAt)
diff --git a/accord-core/src/main/java/accord/primitives/Timestamp.java 
b/accord-core/src/main/java/accord/primitives/Timestamp.java
index 4211771b..da8cb733 100644
--- a/accord-core/src/main/java/accord/primitives/Timestamp.java
+++ b/accord-core/src/main/java/accord/primitives/Timestamp.java
@@ -157,16 +157,6 @@ public class Timestamp implements Comparable<Timestamp>, 
EpochSupplier
         return minEpoch <= epoch() ? this : new Timestamp(minEpoch, hlc(), 
flags(), node);
     }
 
-    public Timestamp withHlcAtLeast(long minHlc)
-    {
-        return minHlc <= hlc() ? this : new Timestamp(epoch(), minHlc, 
flags(), node);
-    }
-
-    public Timestamp withHlcAtLeastAndNoFlags(long minHlc)
-    {
-        return minHlc <= hlc() ? this : new Timestamp(epoch(), minHlc, 0, 
node);
-    }
-
     public Timestamp withEpoch(long epoch)
     {
         return epoch == epoch() ? this : new Timestamp(epoch, hlc(), flags(), 
node);
diff --git a/accord-core/src/main/java/accord/primitives/Txn.java 
b/accord-core/src/main/java/accord/primitives/Txn.java
index 55ede129..99e18979 100644
--- a/accord-core/src/main/java/accord/primitives/Txn.java
+++ b/accord-core/src/main/java/accord/primitives/Txn.java
@@ -447,7 +447,7 @@ public interface Txn
     default AsyncChain<Data> read(SafeCommandStore safeStore, Timestamp 
executeAt, Ranges unavailable)
     {
         Ranges ranges = 
safeStore.ranges().allAt(executeAt).without(unavailable);
-        List<AsyncChain<Data>> chains = Routables.foldlMinimal(keys(), ranges, 
(key, accumulate, index) -> {
+        List<AsyncChain<Data>> chains = Routables.foldlMinimal(read().keys(), 
ranges, (key, accumulate, index) -> {
             AsyncChain<Data> result = read().read(key, safeStore, executeAt, 
safeStore.dataStore());
             accumulate.add(result);
             return accumulate;


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

Reply via email to