Merge branch 'cassandra-3.11' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9fecf947 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9fecf947 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9fecf947 Branch: refs/heads/trunk Commit: 9fecf947729e6113a79cd8069a52082b4c335629 Parents: 71a27ee 32f9e67 Author: Aleksey Yeshchenko <alek...@apple.com> Authored: Mon Apr 30 18:52:43 2018 +0100 Committer: Aleksey Yeshchenko <alek...@apple.com> Committed: Mon Apr 30 18:52:43 2018 +0100 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../apache/cassandra/hints/HintsCatalog.java | 7 ++ .../apache/cassandra/hints/HintsService.java | 2 +- .../org/apache/cassandra/hints/HintsStore.java | 7 ++ .../cassandra/service/StorageService.java | 7 +- .../cassandra/hints/HintsCatalogTest.java | 119 ++++++++++++++++++- 6 files changed, 137 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9fecf947/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index 15c2c2e,c392059..33c81d1 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -245,6 -10,9 +245,7 @@@ * RateBasedBackPressure unnecessarily invokes a lock on the Guava RateLimiter (CASSANDRA-14163) * Fix wildcard GROUP BY queries (CASSANDRA-14209) Merged from 3.0: + * Delay hints store excise by write timeout to avoid race with decommission (CASSANDRA-13740) - * Deprecate background repair and probablistic read_repair_chance table options - (CASSANDRA-13910) * Add missed CQL keywords to documentation (CASSANDRA-14359) * Fix unbounded validation compactions on repair / revert CASSANDRA-13797 (CASSANDRA-14332) * Avoid deadlock when running nodetool refresh before node is fully up (CASSANDRA-14310) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9fecf947/src/java/org/apache/cassandra/hints/HintsService.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9fecf947/src/java/org/apache/cassandra/hints/HintsStore.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/hints/HintsStore.java index bbf57f5,032de5a..9f95884 --- a/src/java/org/apache/cassandra/hints/HintsStore.java +++ b/src/java/org/apache/cassandra/hints/HintsStore.java @@@ -77,7 -78,13 +78,13 @@@ final class HintsStor return new HintsStore(hostId, hintsDirectory, writerParams, descriptors); } + @VisibleForTesting + int getDispatchQueueSize() + { + return dispatchDequeue.size(); + } + - InetAddress address() + InetAddressAndPort address() { return StorageService.instance.getEndpointForHostId(hostId); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/9fecf947/src/java/org/apache/cassandra/service/StorageService.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9fecf947/test/unit/org/apache/cassandra/hints/HintsCatalogTest.java ---------------------------------------------------------------------- diff --cc test/unit/org/apache/cassandra/hints/HintsCatalogTest.java index a255338,68acd0c..92cfc71 --- a/test/unit/org/apache/cassandra/hints/HintsCatalogTest.java +++ b/test/unit/org/apache/cassandra/hints/HintsCatalogTest.java @@@ -23,6 -24,13 +24,12 @@@ import java.nio.file.Files import java.util.*; import com.google.common.collect.ImmutableMap; + import org.apache.cassandra.SchemaLoader; -import org.apache.cassandra.config.Schema; + import org.apache.cassandra.db.Mutation; -import org.apache.cassandra.db.RowUpdateBuilder; + import org.apache.cassandra.schema.KeyspaceParams; ++import org.apache.cassandra.schema.Schema; + import org.apache.cassandra.utils.FBUtilities; + import org.junit.BeforeClass; import org.junit.Test; import static junit.framework.Assert.*; @@@ -117,4 -190,43 +189,43 @@@ public class HintsCatalogTes { } } + + private static Mutation createMutation(String key, long now) + { + Mutation.SimpleBuilder builder = Mutation.simpleBuilder(KEYSPACE, dk(key)); + - builder.update(Schema.instance.getCFMetaData(KEYSPACE, TABLE0)) ++ builder.update(Schema.instance.getTableMetadata(KEYSPACE, TABLE0)) + .timestamp(now) + .row("column0") + .add("val", "value0"); + - builder.update(Schema.instance.getCFMetaData(KEYSPACE, TABLE1)) ++ builder.update(Schema.instance.getTableMetadata(KEYSPACE, TABLE1)) + .timestamp(now + 1) + .row("column1") + .add("val", "value1"); + - builder.update(Schema.instance.getCFMetaData(KEYSPACE, TABLE2)) ++ builder.update(Schema.instance.getTableMetadata(KEYSPACE, TABLE2)) + .timestamp(now + 2) + .row("column2") + .add("val", "value2"); + + return builder.build(); + } + + @SuppressWarnings("EmptyTryBlock") + private static void createHintFile(File directory, HintsDescriptor descriptor) throws IOException + { + try (HintsWriter writer = HintsWriter.create(directory, descriptor)) + { + ByteBuffer writeBuffer = ByteBuffer.allocateDirect(WRITE_BUFFER_SIZE); + try (HintsWriter.Session session = writer.newSession(writeBuffer)) + { + long now = FBUtilities.timestampMicros(); + Mutation mutation = createMutation("testSerializer", now); + Hint hint = Hint.create(mutation, now / 1000); + + session.append(hint); + } + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org