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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]