This is an automated email from the ASF dual-hosted git repository. ifesdjeen pushed a commit to branch test-fixes-2 in repository https://gitbox.apache.org/repos/asf/cassandra-accord.git
commit 9cbff65ec4a7ba1cc5a6c27220b8103474ae3d35 Author: Alex Petrov <[email protected]> AuthorDate: Wed Oct 23 14:30:49 2024 +0200 Avoid splitting un-splittable ranges --- accord-core/src/main/java/accord/local/ShardDistributor.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/accord-core/src/main/java/accord/local/ShardDistributor.java b/accord-core/src/main/java/accord/local/ShardDistributor.java index d2dd9da5..43a7ef99 100644 --- a/accord-core/src/main/java/accord/local/ShardDistributor.java +++ b/accord-core/src/main/java/accord/local/ShardDistributor.java @@ -47,6 +47,7 @@ public interface ShardDistributor { public interface Splitter<T> { + default boolean splittable(Range range, int numSplits) { return true; } T sizeOf(Range range); Range subRange(Range range, T start, T end); @@ -76,6 +77,8 @@ public interface ShardDistributor Invariants.checkArgument(from <= to); Invariants.checkArgument(to <= numSplits); Splitter<T> splitter = this.splitter.apply(Ranges.single(range)); + if (!splitter.splittable(range, numSplits)) + return range; T size = splitter.sizeOf(range); T splitSize = splitter.divide(size, numSplits); T remainder = splitter.subtract(size, splitter.multiply(splitSize, numSplits)); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
