You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by if...@apache.org on 2024/12/13 14:22:51 UTC
(cassandra) 01/04: Implement field saving/loading in AccordJournal
This is an automated email from the ASF dual-hosted git repository.
ifesdjeen pushed a commit to branch cep-15-accord
in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit 8a77b745f6ea90ac8a5772f734c7c59286d6a7b4
Author: Alex Petrov <ol...@gmail.com>
AuthorDate: Tue Nov 26 15:26:54 2024 +0100
Implement field saving/loading in AccordJournal
Patch by Alex Petrov; reviewed by Benedict Elliott Smith for CASSANDRA-20115
---
modules/accord | 2 +-
.../service/accord/AccordCommandStore.java | 4 +-
.../cassandra/service/accord/AccordJournal.java | 4 +-
.../accord/AccordJournalValueSerializers.java | 45 +++++----
.../service/accord/AccordSafeCommandStore.java | 110 +++------------------
.../serializers/CommandStoreSerializers.java | 7 +-
.../accord/AccordJournalCompactionTest.java | 4 +-
.../compaction/CompactionAccordIteratorsTest.java | 6 +-
.../cassandra/service/accord/AccordTestUtils.java | 8 +-
.../accord/SimulatedAccordCommandStore.java | 2 +-
.../service/accord/SimulatedDepsTest.java | 4 +-
.../accord/SimulatedMultiKeyAndRangeTest.java | 2 +-
.../SimulatedRandomKeysWithRangeConflictTest.java | 2 +-
.../apache/cassandra/utils/AccordGenerators.java | 4 +-
14 files changed, 61 insertions(+), 143 deletions(-)
diff --git a/modules/accord b/modules/accord
index 1401e93490..19ebc1cab7 160000
--- a/modules/accord
+++ b/modules/accord
@@ -1 +1 @@
-Subproject commit 1401e93490de57c65a12020d85830fbba8ef8c26
+Subproject commit 19ebc1cab7901a43952c06d630f20fefcf84b4fb
diff --git a/src/java/org/apache/cassandra/service/accord/AccordCommandStore.java b/src/java/org/apache/cassandra/service/accord/AccordCommandStore.java
index 0fbfea91c0..58a7af0f7a 100644
--- a/src/java/org/apache/cassandra/service/accord/AccordCommandStore.java
+++ b/src/java/org/apache/cassandra/service/accord/AccordCommandStore.java
@@ -611,9 +611,9 @@ public class AccordCommandStore extends CommandStore
unsafeSetSafeToRead(safeToRead);
}
- void loadRangesForEpoch(CommandStores.RangesForEpoch.Snapshot rangesForEpoch)
+ void loadRangesForEpoch(CommandStores.RangesForEpoch rangesForEpoch)
{
if (rangesForEpoch != null)
- unsafeSetRangesForEpoch(new CommandStores.RangesForEpoch(rangesForEpoch.epochs, rangesForEpoch.ranges, this));
+ unsafeSetRangesForEpoch(rangesForEpoch);
}
}
diff --git a/src/java/org/apache/cassandra/service/accord/AccordJournal.java b/src/java/org/apache/cassandra/service/accord/AccordJournal.java
index 331ad04ab3..6e2e57fc40 100644
--- a/src/java/org/apache/cassandra/service/accord/AccordJournal.java
+++ b/src/java/org/apache/cassandra/service/accord/AccordJournal.java
@@ -241,9 +241,9 @@ public class AccordJournal implements IJournal, Shutdownable
}
@Override
- public CommandStores.RangesForEpoch.Snapshot loadRangesForEpoch(int store)
+ public CommandStores.RangesForEpoch loadRangesForEpoch(int store)
{
- IdentityAccumulator<RangesForEpoch.Snapshot> accumulator = readAll(new JournalKey(TxnId.NONE, JournalKey.Type.RANGES_FOR_EPOCH, store));
+ IdentityAccumulator<RangesForEpoch> accumulator = readAll(new JournalKey(TxnId.NONE, JournalKey.Type.RANGES_FOR_EPOCH, store));
return accumulator.get();
}
diff --git a/src/java/org/apache/cassandra/service/accord/AccordJournalValueSerializers.java b/src/java/org/apache/cassandra/service/accord/AccordJournalValueSerializers.java
index 54af375f17..ad8d2594dd 100644
--- a/src/java/org/apache/cassandra/service/accord/AccordJournalValueSerializers.java
+++ b/src/java/org/apache/cassandra/service/accord/AccordJournalValueSerializers.java
@@ -28,6 +28,7 @@ import accord.local.RedundantBefore;
import accord.primitives.Ranges;
import accord.primitives.Timestamp;
import accord.primitives.TxnId;
+import accord.utils.Invariants;
import org.apache.cassandra.io.util.DataInputPlus;
import org.apache.cassandra.io.util.DataOutputPlus;
import org.apache.cassandra.net.MessagingService;
@@ -280,44 +281,50 @@ public class AccordJournalValueSerializers
}
public static class RangesForEpochSerializer
- implements FlyweightSerializer<RangesForEpoch.Snapshot, IdentityAccumulator<RangesForEpoch.Snapshot>>
+ implements FlyweightSerializer<RangesForEpoch, IdentityAccumulator<RangesForEpoch>>
{
- public IdentityAccumulator<RangesForEpoch.Snapshot> mergerFor(JournalKey key)
+ public IdentityAccumulator<RangesForEpoch> mergerFor(JournalKey key)
{
return new IdentityAccumulator<>(null);
}
@Override
- public void serialize(JournalKey key, RangesForEpoch.Snapshot from, DataOutputPlus out, int userVersion) throws IOException
+ public void serialize(JournalKey key, RangesForEpoch from, DataOutputPlus out, int userVersion) throws IOException
{
- out.writeUnsignedVInt32(from.ranges.length);
- for (Ranges ranges : from.ranges)
- KeySerializers.ranges.serialize(ranges, out, messagingVersion);
-
- out.writeUnsignedVInt32(from.epochs.length);
- for (long epoch : from.epochs)
- out.writeLong(epoch);
+ out.writeUnsignedVInt32(from.size());
+ from.forEach((epoch, ranges) -> {
+ try
+ {
+ out.writeLong(epoch);
+ KeySerializers.ranges.serialize(ranges, out, messagingVersion);
+ }
+ catch (Throwable t)
+ {
+ throw new IllegalStateException("Serialization error", t);
+ }
+ });
}
@Override
- public void reserialize(JournalKey key, IdentityAccumulator<RangesForEpoch.Snapshot> from, DataOutputPlus out, int userVersion) throws IOException
+ public void reserialize(JournalKey key, IdentityAccumulator<RangesForEpoch> from, DataOutputPlus out, int userVersion) throws IOException
{
serialize(key, from.get(), out, messagingVersion);
}
@Override
- public void deserialize(JournalKey key, IdentityAccumulator<RangesForEpoch.Snapshot> into, DataInputPlus in, int userVersion) throws IOException
+ public void deserialize(JournalKey key, IdentityAccumulator<RangesForEpoch> into, DataInputPlus in, int userVersion) throws IOException
{
- Ranges[] ranges = new Ranges[in.readUnsignedVInt32()];
+ int size = in.readUnsignedVInt32();
+ Ranges[] ranges = new Ranges[size];
+ long[] epochs = new long[size];
for (int i = 0; i < ranges.length; i++)
+ {
ranges[i] = KeySerializers.ranges.deserialize(in, messagingVersion);
-
- long[] epochs = new long[in.readUnsignedVInt32()];
- for (int i = 0; i < epochs.length; i++)
- epochs[i] = in.readLong(); // TODO: assert lengths equal?
-
- into.update(new RangesForEpoch.Snapshot(epochs, ranges));
+ epochs[i] = in.readLong();
+ }
+ Invariants.checkState(ranges.length == epochs.length);
+ into.update(new RangesForEpoch(epochs, ranges));
}
}
}
\ No newline at end of file
diff --git a/src/java/org/apache/cassandra/service/accord/AccordSafeCommandStore.java b/src/java/org/apache/cassandra/service/accord/AccordSafeCommandStore.java
index c33279e925..a05a3c7929 100644
--- a/src/java/org/apache/cassandra/service/accord/AccordSafeCommandStore.java
+++ b/src/java/org/apache/cassandra/service/accord/AccordSafeCommandStore.java
@@ -20,7 +20,6 @@ package org.apache.cassandra.service.accord;
import java.util.Collections;
import java.util.Map;
-import java.util.NavigableMap;
import java.util.Set;
import java.util.function.BiFunction;
import javax.annotation.Nullable;
@@ -34,12 +33,9 @@ import accord.api.RoutingKey;
import accord.impl.AbstractSafeCommandStore;
import accord.impl.CommandsSummary;
import accord.local.CommandStores;
-import accord.local.CommandStores.RangesForEpoch;
import accord.local.NodeCommandStoreService;
-import accord.local.RedundantBefore;
import accord.local.cfk.CommandsForKey;
import accord.primitives.AbstractKeys;
-import accord.primitives.Ranges;
import accord.primitives.Routables;
import accord.primitives.Timestamp;
import accord.primitives.Txn;
@@ -48,7 +44,6 @@ import accord.primitives.Unseekables;
import accord.utils.Invariants;
import org.apache.cassandra.service.accord.AccordCommandStore.ExclusiveCaches;
-import static accord.api.Journal.*;
import static accord.utils.Invariants.illegalState;
public class AccordSafeCommandStore extends AbstractSafeCommandStore<AccordSafeCommand, AccordSafeTimestampsForKey, AccordSafeCommandsForKey, AccordCommandStore.ExclusiveCaches>
@@ -56,20 +51,26 @@ public class AccordSafeCommandStore extends AbstractSafeCommandStore<AccordSafeC
final AccordTask<?> task;
private final @Nullable CommandsForRanges commandsForRanges;
private final AccordCommandStore commandStore;
- private RangesForEpoch ranges;
- private FieldUpdates fieldUpdates;
private AccordSafeCommandStore(AccordTask<?> task,
@Nullable CommandsForRanges commandsForRanges,
AccordCommandStore commandStore)
{
- super(task.preLoadContext());
+ super(task.preLoadContext(), commandStore);
this.task = task;
this.commandsForRanges = commandsForRanges;
this.commandStore = commandStore;
commandStore.updateRangesForEpoch(this);
- if (this.ranges == null)
- this.ranges = Invariants.nonNull(commandStore.unsafeRangesForEpoch());
+ }
+
+ @Override
+ public CommandStores.RangesForEpoch ranges()
+ {
+ CommandStores.RangesForEpoch ranges = super.ranges();
+ if (ranges != null)
+ return ranges;
+
+ return commandStore.unsafeGetRangesForEpoch();
}
public static AccordSafeCommandStore create(AccordTask<?> operation,
@@ -196,12 +197,6 @@ public class AccordSafeCommandStore extends AbstractSafeCommandStore<AccordSafeC
return commandStore.node();
}
- @Override
- public RangesForEpoch ranges()
- {
- return ranges;
- }
-
private <O> O mapReduce(Routables<?> keysOrRanges, BiFunction<CommandsSummary, O, O> map, O accumulate)
{
Invariants.checkState(context.keys().containsAll(keysOrRanges), "Attempted to access keysOrRanges outside of what was asked for; asked for %s, accessed %s", context.keys(), keysOrRanges);
@@ -278,87 +273,4 @@ public class AccordSafeCommandStore extends AbstractSafeCommandStore<AccordSafeC
{
return "AccordSafeCommandStore(id=" + commandStore().id() + ")";
}
-
- @Override
- public void upsertRedundantBefore(RedundantBefore addRedundantBefore)
- {
- // TODO (required): this is a temporary measure, see comment on AccordJournalValueSerializers; upsert instead
- // when modifying, only modify together with AccordJournalValueSerializers
- ensureFieldUpdates().newRedundantBefore = RedundantBefore.merge(redundantBefore(), addRedundantBefore);
- }
-
- @Override
- public void setBootstrapBeganAt(NavigableMap<TxnId, Ranges> newBootstrapBeganAt)
- {
- ensureFieldUpdates().newBootstrapBeganAt = newBootstrapBeganAt;
- }
-
- @Override
- public void setSafeToRead(NavigableMap<Timestamp, Ranges> newSafeToRead)
- {
- ensureFieldUpdates().newSafeToRead = newSafeToRead;
- }
-
- @Override
- public void setRangesForEpoch(CommandStores.RangesForEpoch rangesForEpoch)
- {
- ensureFieldUpdates().newRangesForEpoch = rangesForEpoch.snapshot();
- ranges = rangesForEpoch;
- }
-
- @Override
- public NavigableMap<TxnId, Ranges> bootstrapBeganAt()
- {
- if (fieldUpdates != null && fieldUpdates.newBootstrapBeganAt != null)
- return fieldUpdates.newBootstrapBeganAt;
-
- return super.bootstrapBeganAt();
- }
-
- @Override
- public NavigableMap<Timestamp, Ranges> safeToReadAt()
- {
- if (fieldUpdates != null && fieldUpdates.newSafeToRead != null)
- return fieldUpdates.newSafeToRead;
-
- return super.safeToReadAt();
- }
-
- @Override
- public RedundantBefore redundantBefore()
- {
- if (fieldUpdates != null && fieldUpdates.newRedundantBefore != null)
- return fieldUpdates.newRedundantBefore;
-
- return super.redundantBefore();
- }
-
- private FieldUpdates ensureFieldUpdates()
- {
- if (fieldUpdates == null) fieldUpdates = new FieldUpdates();
- return fieldUpdates;
- }
-
- public FieldUpdates fieldUpdates()
- {
- return fieldUpdates;
- }
-
- public void postExecute()
- {
- if (fieldUpdates == null)
- return;
-
- if (fieldUpdates.newRedundantBefore != null)
- super.unsafeSetRedundantBefore(fieldUpdates.newRedundantBefore);
-
- if (fieldUpdates.newBootstrapBeganAt != null)
- super.setBootstrapBeganAt(fieldUpdates.newBootstrapBeganAt);
-
- if (fieldUpdates.newSafeToRead != null)
- super.setSafeToRead(fieldUpdates.newSafeToRead);
-
- if (fieldUpdates.newRangesForEpoch != null)
- super.setRangesForEpoch(ranges);
- }
}
\ No newline at end of file
diff --git a/src/java/org/apache/cassandra/service/accord/serializers/CommandStoreSerializers.java b/src/java/org/apache/cassandra/service/accord/serializers/CommandStoreSerializers.java
index 4e40531033..10433feaf4 100644
--- a/src/java/org/apache/cassandra/service/accord/serializers/CommandStoreSerializers.java
+++ b/src/java/org/apache/cassandra/service/accord/serializers/CommandStoreSerializers.java
@@ -38,7 +38,6 @@ import org.apache.cassandra.db.TypeSizes;
import org.apache.cassandra.io.IVersionedSerializer;
import org.apache.cassandra.io.util.DataInputPlus;
import org.apache.cassandra.io.util.DataOutputPlus;
-import org.apache.cassandra.service.accord.TokenRange;
import org.apache.cassandra.utils.CollectionSerializers;
import org.apache.cassandra.utils.NullableSerializer;
@@ -138,7 +137,7 @@ public class CommandStoreSerializers
@Override
public void serialize(RedundantBefore.Entry t, DataOutputPlus out, int version) throws IOException
{
- TokenRange.serializer.serialize((TokenRange) t.range, out, version);
+ KeySerializers.range.serialize(t.range, out, version);
Invariants.checkState(t.startOwnershipEpoch <= t.endOwnershipEpoch);
out.writeUnsignedVInt(t.startOwnershipEpoch);
if (t.endOwnershipEpoch == Long.MAX_VALUE) out.writeUnsignedVInt(0L);
@@ -156,7 +155,7 @@ public class CommandStoreSerializers
@Override
public RedundantBefore.Entry deserialize(DataInputPlus in, int version) throws IOException
{
- Range range = TokenRange.serializer.deserialize(in, version);
+ Range range = KeySerializers.range.deserialize(in, version);
long startEpoch = in.readUnsignedVInt();
long endEpoch = in.readUnsignedVInt();
if (endEpoch == 0) endEpoch = Long.MAX_VALUE;
@@ -175,7 +174,7 @@ public class CommandStoreSerializers
@Override
public long serializedSize(RedundantBefore.Entry t, int version)
{
- long size = TokenRange.serializer.serializedSize((TokenRange) t.range, version);
+ long size = KeySerializers.range.serializedSize(t.range, version);
size += TypeSizes.sizeofUnsignedVInt(t.startOwnershipEpoch);
size += TypeSizes.sizeofUnsignedVInt(t.endOwnershipEpoch == Long.MAX_VALUE ? 0 : 1 + t.endOwnershipEpoch - t.startOwnershipEpoch);
size += CommandSerializers.txnId.serializedSize(t.locallyWitnessedOrInvalidatedBefore, version);
diff --git a/test/distributed/org/apache/cassandra/service/accord/AccordJournalCompactionTest.java b/test/distributed/org/apache/cassandra/service/accord/AccordJournalCompactionTest.java
index 1a790eece5..647ba1c814 100644
--- a/test/distributed/org/apache/cassandra/service/accord/AccordJournalCompactionTest.java
+++ b/test/distributed/org/apache/cassandra/service/accord/AccordJournalCompactionTest.java
@@ -90,12 +90,12 @@ public class AccordJournalCompactionTest
DurableBeforeAccumulator durableBeforeAccumulator = new DurableBeforeAccumulator();
NavigableMap<Timestamp, Ranges> safeToReadAtAccumulator = ImmutableSortedMap.of(Timestamp.NONE, Ranges.EMPTY);
NavigableMap<TxnId, Ranges> bootstrapBeganAtAccumulator = ImmutableSortedMap.of(TxnId.NONE, Ranges.EMPTY);
- RangesForEpoch.Snapshot rangesForEpochAccumulator = null;
+ RangesForEpoch rangesForEpochAccumulator = null;
Gen<RedundantBefore> redundantBeforeGen = AccordGenerators.redundantBefore(DatabaseDescriptor.getPartitioner());
Gen<DurableBefore> durableBeforeGen = AccordGenerators.durableBeforeGen(DatabaseDescriptor.getPartitioner());
Gen<NavigableMap<Timestamp, Ranges>> safeToReadGen = AccordGenerators.safeToReadGen(DatabaseDescriptor.getPartitioner());
- Gen<RangesForEpoch.Snapshot> rangesForEpochGen = AccordGenerators.rangesForEpoch(DatabaseDescriptor.getPartitioner());
+ Gen<RangesForEpoch> rangesForEpochGen = AccordGenerators.rangesForEpoch(DatabaseDescriptor.getPartitioner());
Gen<Range> rangeGen = AccordGenerators.range(DatabaseDescriptor.getPartitioner());
Gen<Deps> historicalTransactionsGen = depsGen();
diff --git a/test/unit/org/apache/cassandra/db/compaction/CompactionAccordIteratorsTest.java b/test/unit/org/apache/cassandra/db/compaction/CompactionAccordIteratorsTest.java
index fbcfee12f3..b6ecc52140 100644
--- a/test/unit/org/apache/cassandra/db/compaction/CompactionAccordIteratorsTest.java
+++ b/test/unit/org/apache/cassandra/db/compaction/CompactionAccordIteratorsTest.java
@@ -440,7 +440,7 @@ public class CompactionAccordIteratorsTest
if (durableBefore != null)
durableBefores.put(commandStore.id(), durableBefore);
Int2ObjectHashMap<CommandStores.RangesForEpoch> rangesForEpochs = new Int2ObjectHashMap<>();
- rangesForEpochs.put(commandStore.id(), commandStore.unsafeRangesForEpoch());
+ rangesForEpochs.put(commandStore.id(), commandStore.unsafeGetRangesForEpoch());
when(mockAccordService.getCompactionInfo()).thenReturn(new IAccordService.CompactionInfo(redundantBefores, rangesForEpochs, durableBefores));
return mockAccordService;
}
@@ -491,8 +491,8 @@ public class CompactionAccordIteratorsTest
{
Txn txn = txnId.kind().isWrite() ? writeTxn : readTxn;
PartialDeps partialDeps = Deps.NONE.intersecting(AccordTestUtils.fullRange(txn));
- PartialTxn partialTxn = txn.slice(commandStore.unsafeRangesForEpoch().currentRanges(), true);
- Route<?> partialRoute = route.slice(commandStore.unsafeRangesForEpoch().currentRanges());
+ PartialTxn partialTxn = txn.slice(commandStore.unsafeGetRangesForEpoch().currentRanges(), true);
+ Route<?> partialRoute = route.slice(commandStore.unsafeGetRangesForEpoch().currentRanges());
getUninterruptibly(commandStore.execute(contextFor(txnId, route, SYNC), safe -> {
CheckedCommands.preaccept(safe, txnId, partialTxn, route, appendDiffToKeyspace(commandStore));
}).beginAsResult());
diff --git a/test/unit/org/apache/cassandra/service/accord/AccordTestUtils.java b/test/unit/org/apache/cassandra/service/accord/AccordTestUtils.java
index c3ac81e1a9..2a10715c8b 100644
--- a/test/unit/org/apache/cassandra/service/accord/AccordTestUtils.java
+++ b/test/unit/org/apache/cassandra/service/accord/AccordTestUtils.java
@@ -350,9 +350,9 @@ public class AccordTestUtils
this.ranges = ranges;
}
- private void set(CommandStore store)
+ private void set()
{
- add(1, new CommandStores.RangesForEpoch(1, ranges, store), ranges);
+ add(1, new CommandStores.RangesForEpoch(1, ranges), ranges);
}
}
@@ -378,7 +378,7 @@ public class AccordTestUtils
SingleEpochRanges holder = new SingleEpochRanges(Ranges.of(range));
InMemoryCommandStore.Synchronized result = new InMemoryCommandStore.Synchronized(0, time, new AccordAgent(),
null, null, cs -> null, holder);
- holder.set(result);
+ holder.set();
return result;
}
@@ -421,7 +421,7 @@ public class AccordTestUtils
cs -> new NoOpProgressLog(),
cs -> new DefaultLocalListeners(new NoOpRemoteListeners(), new NoOpNotifySink()),
holder, journal, executor);
- holder.set(result);
+ holder.set();
result.unsafeUpdateRangesForEpoch();
return result;
}
diff --git a/test/unit/org/apache/cassandra/service/accord/SimulatedAccordCommandStore.java b/test/unit/org/apache/cassandra/service/accord/SimulatedAccordCommandStore.java
index 5c5285f1d0..fe82e3b009 100644
--- a/test/unit/org/apache/cassandra/service/accord/SimulatedAccordCommandStore.java
+++ b/test/unit/org/apache/cassandra/service/accord/SimulatedAccordCommandStore.java
@@ -220,7 +220,7 @@ public class SimulatedAccordCommandStore implements AutoCloseable
});
this.topology = AccordTopology.createAccordTopology(ClusterMetadata.current());
this.topologies = new Topologies.Single(SizeOfIntersectionSorter.SUPPLIER, topology);
- var rangesForEpoch = new CommandStores.RangesForEpoch(topology.epoch(), topology.ranges(), commandStore);
+ CommandStores.RangesForEpoch rangesForEpoch = new CommandStores.RangesForEpoch(topology.epoch(), topology.ranges());
updateHolder.add(topology.epoch(), rangesForEpoch, topology.ranges());
updateHolder.updateGlobal(topology.ranges());
commandStore.unsafeUpdateRangesForEpoch();
diff --git a/test/unit/org/apache/cassandra/service/accord/SimulatedDepsTest.java b/test/unit/org/apache/cassandra/service/accord/SimulatedDepsTest.java
index 770af5b314..5de604aff9 100644
--- a/test/unit/org/apache/cassandra/service/accord/SimulatedDepsTest.java
+++ b/test/unit/org/apache/cassandra/service/accord/SimulatedDepsTest.java
@@ -186,7 +186,7 @@ public class SimulatedDepsTest extends SimulatedAccordCommandStoreTestBase
FullRangeRoute rangeRoute = ranges.toRoute(pk.toUnseekable());
Txn rangeTxn = createTxn(Txn.Kind.ExclusiveSyncPoint, ranges);
- DepsModel model = new DepsModel(instance.commandStore.unsafeRangesForEpoch().currentRanges());
+ DepsModel model = new DepsModel(instance.commandStore.unsafeGetRangesForEpoch().currentRanges());
for (int i = 0; i < numSamples; i++)
{
instance.maybeCacheEvict(keyRoute, ranges);
@@ -258,7 +258,7 @@ public class SimulatedDepsTest extends SimulatedAccordCommandStoreTestBase
Range left = tokenRange(tbl.id, token - 10, token + 5);
Range right = tokenRange(tbl.id, token - 5, token + 10);
- DepsModel model = new DepsModel(instance.commandStore.unsafeRangesForEpoch().currentRanges());
+ DepsModel model = new DepsModel(instance.commandStore.unsafeGetRangesForEpoch().currentRanges());
for (int i = 0; i < numSamples; i++)
{
Ranges partialRange = Ranges.of(rs.nextBoolean() ? left : right);
diff --git a/test/unit/org/apache/cassandra/service/accord/SimulatedMultiKeyAndRangeTest.java b/test/unit/org/apache/cassandra/service/accord/SimulatedMultiKeyAndRangeTest.java
index cf09d8eab8..485f7d98b9 100644
--- a/test/unit/org/apache/cassandra/service/accord/SimulatedMultiKeyAndRangeTest.java
+++ b/test/unit/org/apache/cassandra/service/accord/SimulatedMultiKeyAndRangeTest.java
@@ -71,7 +71,7 @@ public class SimulatedMultiKeyAndRangeTest extends SimulatedAccordCommandStoreTe
Gen.IntGen keyCountGen = keyDistribution.next(rs);
Gen.IntGen rangeCountGen = rangeDistribution.next(rs);
- DepsModel model = new DepsModel(instance.commandStore.unsafeRangesForEpoch().currentRanges());
+ DepsModel model = new DepsModel(instance.commandStore.unsafeGetRangesForEpoch().currentRanges());
for (int i = 0; i < numSamples; i++)
{
diff --git a/test/unit/org/apache/cassandra/service/accord/SimulatedRandomKeysWithRangeConflictTest.java b/test/unit/org/apache/cassandra/service/accord/SimulatedRandomKeysWithRangeConflictTest.java
index 68a2b3cef3..d91b0fe013 100644
--- a/test/unit/org/apache/cassandra/service/accord/SimulatedRandomKeysWithRangeConflictTest.java
+++ b/test/unit/org/apache/cassandra/service/accord/SimulatedRandomKeysWithRangeConflictTest.java
@@ -88,7 +88,7 @@ public class SimulatedRandomKeysWithRangeConflictTest extends SimulatedAccordCom
AccordKeyspace.unsafeClear();
this.instance = new SimulatedAccordCommandStore(rs);
this.instance.commandStore.executor().cacheUnsafe().setShrinkingOn(false);
- this.model = new DepsModel(instance.commandStore.unsafeRangesForEpoch().currentRanges());
+ this.model = new DepsModel(instance.commandStore.unsafeGetRangesForEpoch().currentRanges());
}
@Override
diff --git a/test/unit/org/apache/cassandra/utils/AccordGenerators.java b/test/unit/org/apache/cassandra/utils/AccordGenerators.java
index e4e08ac180..93ad3b9232 100644
--- a/test/unit/org/apache/cassandra/utils/AccordGenerators.java
+++ b/test/unit/org/apache/cassandra/utils/AccordGenerators.java
@@ -517,7 +517,7 @@ public class AccordGenerators
};
}
- public static Gen<RangesForEpoch.Snapshot> rangesForEpoch(IPartitioner partitioner)
+ public static Gen<RangesForEpoch> rangesForEpoch(IPartitioner partitioner)
{
Gen<Ranges> rangesGen = ranges(partitioner);
@@ -529,7 +529,7 @@ public class AccordGenerators
Ranges[] ranges = new Ranges[size];
for (int i = 0; i < size; i++)
ranges[i] = rangesGen.next(rs);
- return new RangesForEpoch.Snapshot(epochs, ranges);
+ return new RangesForEpoch(epochs, ranges);
};
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org