(cassandra-website) branch trunk updated: Ninja fix for typo in Data Masking blog post.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra-website.git The following commit(s) were added to refs/heads/trunk by this push: new f609e8c54 Ninja fix for typo in Data Masking blog post. f609e8c54 is described below commit f609e8c541abc80be92ad7841267246ce9202b1b Author: Jon Haddad AuthorDate: Tue Aug 13 15:11:10 2024 -0700 Ninja fix for typo in Data Masking blog post. --- .../pages/blog/Apache-Cassandra-5.0-Features-Dynamic-Data-Masking.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site-content/source/modules/ROOT/pages/blog/Apache-Cassandra-5.0-Features-Dynamic-Data-Masking.adoc b/site-content/source/modules/ROOT/pages/blog/Apache-Cassandra-5.0-Features-Dynamic-Data-Masking.adoc index dcf7f599f..82073e03c 100644 --- a/site-content/source/modules/ROOT/pages/blog/Apache-Cassandra-5.0-Features-Dynamic-Data-Masking.adoc +++ b/site-content/source/modules/ROOT/pages/blog/Apache-Cassandra-5.0-Features-Dynamic-Data-Masking.adoc @@ -123,7 +123,7 @@ INSERT INTO patients(id, name, birth) Then we create two users with SELECT permission for the table, but we only grant the UNMASK permission to one of the users: -CRCREATE USER privileged WITH PASSWORD 'xyz'; +CREATE USER privileged WITH PASSWORD 'xyz'; GRANT SELECT ON TABLE patients TO privileged; GRANT UNMASK ON TABLE patients TO privileged; - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-website] branch trunk updated: Added rustyrazorblade consulting to ecosystem page.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra-website.git The following commit(s) were added to refs/heads/trunk by this push: new 31eba98f Added rustyrazorblade consulting to ecosystem page. 31eba98f is described below commit 31eba98f1b6dd4fdb9e0d09b12d71c275de79440 Author: Jon Haddad AuthorDate: Mon Oct 9 14:17:24 2023 -0700 Added rustyrazorblade consulting to ecosystem page. --- site-content/source/modules/ROOT/pages/ecosystem.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site-content/source/modules/ROOT/pages/ecosystem.adoc b/site-content/source/modules/ROOT/pages/ecosystem.adoc index 7a763b68..d96cdbdf 100644 --- a/site-content/source/modules/ROOT/pages/ecosystem.adoc +++ b/site-content/source/modules/ROOT/pages/ecosystem.adoc @@ -337,6 +337,8 @@ https://www.instaclustr.com/services/[Instaclustr,window=blank] https://opencredo.com/about-us/[Open Credo,window=blank] +https://rustyrazorblade.com/[RustyRazorBlade Consulting,window=blank] + - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-sidecar] branch trunk updated: Fix checkstyle error in CassandraPod.java
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git The following commit(s) were added to refs/heads/trunk by this push: new 16cd2a0 Fix checkstyle error in CassandraPod.java 16cd2a0 is described below commit 16cd2a05531f2719814240e47a0b24ec8d39f7bb Author: Saranya Krishnakumar AuthorDate: Tue Jul 13 12:21:13 2021 -0700 Fix checkstyle error in CassandraPod.java --- .../java/org/apache/cassandra/sidecar/common/testing/CassandraPod.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/testing/CassandraPod.java b/cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/testing/CassandraPod.java index 9014146..afa658e 100644 --- a/cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/testing/CassandraPod.java +++ b/cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/testing/CassandraPod.java @@ -193,7 +193,8 @@ class CassandraPod } started = namespacedPod.getStatus().getContainerStatuses().get(0).getStarted(); -if (namespacedPod.getStatus().getContainerStatuses().get(0).getReady() && started) { +if (namespacedPod.getStatus().getContainerStatuses().get(0).getReady() && started) +{ logger.info("Pod startup OK"); break; } - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-sidecar] branch master updated (c9da4b2 -> a4805a9)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git. from c9da4b2 Ninja-Fix: CHANGES.txt for CASSANDRASC-22 add a4805a9 Support for multiple Cassandra versions No new revisions were added by this update. Summary of changes: .circleci/config.yml | 49 ++- .circleci/setup-microk8.sh | 23 ++ CHANGES.txt| 1 + README.md | 45 ++- build.gradle | 125 +-- cassandra-integration-tests/build.gradle | 44 +++ .../cassandra/sidecar/common/StatusTest.java | 51 +++ .../common/testing/CassandraIntegrationTest.java | 27 +- .../sidecar/common/testing/CassandraPod.java | 363 .../common/testing/CassandraPodException.java | 12 + .../common/testing/CassandraTestContext.java | 56 .../common/testing/CassandraTestTemplate.java | 176 ++ .../sidecar/common/testing/DelegateTest.java | 67 .../sidecar/common/testing/TestVersion.java| 31 +- .../common/testing/TestVersionSupplier.java| 44 +++ cassandra40/build.gradle | 18 + .../sidecar/cassandra40/Cassandra40Factory.java| 30 +- common/build.gradle| 38 +++ .../cassandra/sidecar/common}/CQLSession.java | 41 ++- .../sidecar/common/CassandraAdapterDelegate.java | 196 +++ .../sidecar/common/CassandraVersionProvider.java | 109 ++ .../sidecar/common/ICassandraAdapter.java | 22 +- .../sidecar/common/ICassandraFactory.java | 18 +- .../cassandra/sidecar/common/MinimumVersion.java | 23 +- .../sidecar/common/MockCassandraFactory.java | 18 +- .../cassandra/sidecar/common/NodeStatus.java | 17 +- .../sidecar/common/SimpleCassandraVersion.java | 159 + .../org/apache/cassandra/sidecar/mocks/V30.java| 27 +- .../org/apache/cassandra/sidecar/mocks/V40.java| 27 +- .../org/apache/cassandra/sidecar/mocks/V41.java| 27 +- .../common/SimpleCassandraVersionProviderTest.java | 85 + .../sidecar/common/SimpleCassandraVersionTest.java | 121 +++ containers/build.gradle| 76 + containers/src/Cassandra40/Dockerfile | 18 + containers/src/docker-entrypoint.sh| 15 + containers/src/optimize-memory.sh | 16 + docs/src/development.adoc | 95 ++ gradle.properties | 5 +- gradle/wrapper/gradle-wrapper.properties | 5 +- scripts/cleanup-pods.sh| 12 + scripts/setup-minikube.sh | 30 ++ settings.gradle| 5 + .../spotbugs-exclude.xml => spotbugs-exclude.xml | 0 .../sidecar/HealthServiceIntegrationTest.java | 366 - .../cassandra/sidecar/CassandraSidecarDaemon.java | 7 +- .../org/apache/cassandra/sidecar/MainModule.java | 30 ++ .../cassandra/sidecar/routes/HealthCheck.java | 89 - .../cassandra/sidecar/routes/HealthService.java| 101 +- .../sidecar/AbstractHealthServiceTest.java | 37 ++- .../org/apache/cassandra/sidecar/TestModule.java | 39 ++- .../apache/cassandra/sidecar/TestSslModule.java| 17 + 51 files changed, 2266 insertions(+), 787 deletions(-) create mode 100755 .circleci/setup-microk8.sh create mode 100644 cassandra-integration-tests/build.gradle create mode 100644 cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/StatusTest.java copy src/test/java/org/apache/cassandra/sidecar/HealthServiceTest.java => cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/testing/CassandraIntegrationTest.java (58%) create mode 100644 cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/testing/CassandraPod.java create mode 100644 cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/testing/CassandraPodException.java create mode 100644 cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/testing/CassandraTestContext.java create mode 100644 cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/testing/CassandraTestTemplate.java create mode 100644 cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/testing/DelegateTest.java copy src/test/java/org/apache/cassandra/sidecar/mocks/MockHealthCheck.java => cassandra-integration-tests/src/test/java/org/apache/cassandra/sidecar/common/testing/TestVersion.java (56%) create mode 100644 cassandra-integration-tests/src/test/java/org/apache/cassandra/sidec
[cassandra] branch trunk updated: Improving Cassandra configuration docs
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 57a63f8 Improving Cassandra configuration docs 57a63f8 is described below commit 57a63f8551448d10d39f67d138842e0c81414526 Author: polandll AuthorDate: Fri May 8 17:24:32 2020 -0700 Improving Cassandra configuration docs * Update copyright date to 2020 * Add glossary * Rearranged rackdc for better flow * Add topologies properties file * Add commitlog_archiving file * Add logback.xml info * jvm.options files * Removed invalid reference to wiki from configuration file Patch by Lorina Poland; Reviewed by Jon Haddad for CASSANDRA-15822 --- conf/cassandra.yaml|5 +- doc/Dockerfile |2 +- doc/source/conf.py |2 +- doc/source/configuration/cass_cl_archive_file.rst | 46 + doc/source/configuration/cass_env_sh_file.rst | 132 ++ doc/source/configuration/cass_jvm_options_file.rst | 10 + doc/source/configuration/cass_logback_xml_file.rst | 157 ++ doc/source/configuration/cass_rackdc_file.rst | 67 + doc/source/configuration/cass_topo_file.rst| 48 + doc/source/configuration/cass_yaml_file.rst| 2074 doc/source/configuration/index.rst |8 +- doc/source/getting_started/configuring.rst | 59 +- doc/source/glossary.rst| 35 + 13 files changed, 2615 insertions(+), 30 deletions(-) diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index 6db9557..3a44a09 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -1,7 +1,7 @@ # Cassandra storage config YAML # NOTE: -# See http://wiki.apache.org/cassandra/StorageConfiguration for +# See https://cassandra.apache.org/doc/latest/configuration/ for # full explanations of configuration directives # /NOTE @@ -20,8 +20,6 @@ cluster_name: 'Test Cluster' # Specifying initial_token will override this setting on the node's initial start, # on subsequent starts, this setting will apply even if initial token is set. # -# If you already have a cluster with 1 token per node, and wish to migrate to -# multiple tokens per node, see http://wiki.apache.org/cassandra/Operations num_tokens: 256 # Triggers automatic allocation of num_tokens tokens for this node. The allocation @@ -47,7 +45,6 @@ num_tokens: 256 # that do not have vnodes enabled. # initial_token: -# See http://wiki.apache.org/cassandra/HintedHandoff # May either be "true" or "false" to enable globally hinted_handoff_enabled: true diff --git a/doc/Dockerfile b/doc/Dockerfile index 8999464..fcb4c41 100644 --- a/doc/Dockerfile +++ b/doc/Dockerfile @@ -13,7 +13,7 @@ RUN apt-get update && apt-get install -y software-properties-common RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - \ && add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ \ && apt-get update \ -&& apt-get install -y adoptopenjdk-8-hotspot ant +&& apt-get install -y adoptopenjdk-11-hotspot ant RUN apt-get clean diff --git a/doc/source/conf.py b/doc/source/conf.py index 7143b23..48f87a8 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -75,7 +75,7 @@ master_doc = 'index' # General information about the project. project = u'Apache Cassandra' -copyright = u'2016, The Apache Cassandra team' +copyright = u'2020, The Apache Cassandra team' author = u'The Apache Cassandra team' # The version info for the project you're documenting, acts as replacement for diff --git a/doc/source/configuration/cass_cl_archive_file.rst b/doc/source/configuration/cass_cl_archive_file.rst new file mode 100644 index 000..fc14440 --- /dev/null +++ b/doc/source/configuration/cass_cl_archive_file.rst @@ -0,0 +1,46 @@ +.. _cassandra-cl-archive: + +commitlog-archiving.properties file + + +The ``commitlog-archiving.properties`` configuration file can optionally set commands that are executed when archiving or restoring a commitlog segment. + +=== +Options +=== + +``archive_command=`` +-- +One command can be inserted with %path and %name arguments. %path is the fully qualified path of the commitlog segment to archive. %name is the filename of the commitlog. STDOUT, STDIN, or multiple commands cannot be executed. If multiple commands are required, add a pointer to a script in this option. + +**Example:** archive_command=/bin/ln %path /backup/%name + +**Default value:** blank + +``restore_command=`` +---
[cassandra-sidecar] branch master updated (56f547f -> d57f2a4)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git. from 56f547f Ninja fix to changelog add d57f2a4 Set up asciidoc based documentation. No new revisions were added by this update. Summary of changes: .circleci/config.yml | 12 +++- CHANGES.txt | 1 + build.gradle | 11 ++- docs/build.gradle | 16 docs/src/development.adoc | 30 ++ docs/src/user.adoc| 15 +++ settings.gradle | 4 7 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 docs/build.gradle create mode 100644 docs/src/development.adoc create mode 100644 docs/src/user.adoc create mode 100644 settings.gradle - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-sidecar] branch master updated: Ninja fix to changelog
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git The following commit(s) were added to refs/heads/master by this push: new 56f547f Ninja fix to changelog 56f547f is described below commit 56f547f02ce431038ede6d5c75011c8138e1968d Author: Jon Haddad AuthorDate: Thu Apr 23 16:33:21 2020 -0700 Ninja fix to changelog --- CHANGES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.txt b/CHANGES.txt index 7e12540..bc31a67 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 1.0.0 - + * Gradle can now generate Deb packages, RPMs and Docker containers (CASSANDRASC-14) * Security patch to fix incorrect usage of yaml configuration (CASSANDRASC-12) * Build and Test with both Java 8 & 11 in Circle CI (CASSANDRA-15611) * Upgraded Gradle and replaced FindBugs with SpotBugs (CASSANDRA-15610) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-sidecar] branch master updated: Gradle can now generate Deb packages, RPMs and Docker containers
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git The following commit(s) were added to refs/heads/master by this push: new 14770b6 Gradle can now generate Deb packages, RPMs and Docker containers 14770b6 is described below commit 14770b6921f0dcc801a2428da65e41553d13ada4 Author: Jon Haddad AuthorDate: Tue Apr 21 16:00:09 2020 -0700 Gradle can now generate Deb packages, RPMs and Docker containers Patch by Jon Haddad; Reviewed by Jake Luciani and Dinesh Joshi for CASSANDRASC-14 --- .circleci/config.yml | 43 ++- build.gradle | 40 ++-- gradle.properties| 1 + 3 files changed, 81 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 690b4a6..760af9d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,6 +12,12 @@ aliases: working_directory: ~/repo environment: TERM: dumb + centos: ¢os +docker: + - image: centos:centos8 +working_directory: ~/repo +environment: + TERM: dumb # we might modify this in the future to accept a parameter for the java package to install commands: @@ -76,6 +82,35 @@ jobs: - store_test_results: path: ~/repo/build/test-results/ + # ensures we can build and install deb packages + deb_build_install: +<<: *base_job +steps: + - checkout + - install_common + - install_java: + version: adoptopenjdk-11-hotspot + - run: ./gradlew buildDeb + - run: DEBIAN_FRONTEND=noninteractive sudo apt install -y ./build/distributions/cassandra-sidecar*.deb + - run: test -f /opt/cassandra-sidecar/bin/cassandra-sidecar + + # ensures we can build and install rpm packages + rpm_build_install: +<<: *centos +steps: + - checkout + - run: yum install -y java-11-openjdk-devel # the image uses root by default, no need for sudo + - run: JAVA_HOME=/usr/lib/jvm/java-11-openjdk ./gradlew buildRpm + - run: yum install -y ./build/distributions/cassandra-sidecar*.rpm + - run: test -f /opt/cassandra-sidecar/bin/cassandra-sidecar + + docker_build: +<<: *base_job +steps: + - checkout + - run: ./gradlew jibDockerBuild + + workflows: version: 2 @@ -85,4 +120,10 @@ workflows: test_java_11: jobs: - - java11 \ No newline at end of file + - java11 + + test_packaging: +jobs: + - deb_build_install + - rpm_build_install + - docker_build \ No newline at end of file diff --git a/build.gradle b/build.gradle index 6aa46d5..7eea59e 100644 --- a/build.gradle +++ b/build.gradle @@ -15,10 +15,15 @@ plugins { id 'jacoco' id "com.github.spotbugs" version "3.0.0" id 'org.hidetake.swagger.generator' version '2.16.0' + +// https://github.com/nebula-plugins/gradle-ospackage-plugin/wiki +id "nebula.ospackage" version "8.3.0" +id 'nebula.ospackage-application' version "8.3.0" +id 'com.google.cloud.tools.jib' version '2.2.0' } group 'org.apache.cassandra' -version '1.0-SNAPSHOT' +version project.version sourceCompatibility = 1.8 @@ -28,7 +33,7 @@ repositories { // Take the application out once we're running via Cassandra mainClassName = "org.apache.cassandra.sidecar.CassandraSidecarDaemon" -applicationName = 'CassandraSidecarDaemon' +applicationName = 'cassandra-sidecar' // Config file location should be in file:/// format for local files, def confFile = "file:" + File.separator + File.separator + "APP_HOME_TO_REPLACE/conf/sidecar.yaml" @@ -177,6 +182,37 @@ tasks.withType(com.github.spotbugs.SpotBugsTask) { reports.html.enabled = true } +/** + * General configuration for linux packages. + * Can be overridden in the buildRpm and buildDeb configuration + * We can put dependencies here, such as java, but unfortunately since java is distributed + * in an inconsistent manner depending on the version you want (8 vs 11) we can't include Java + * as a requirement without the install breaking if you want to use a different version + */ +ospackage { +packageName = "cassandra-sidecar" +version = project.version +// ospackage puts packages into /opt/[package] by default +// which is _technically_ the right spot for packages +link("/usr/local/bin/cassandra-sidecar", "/opt/cassandra-sidecar/bin/cassandra-sidecar") +license "Apache License 2.0" +description "Sidecar Management Tool for Apache Cassandra" +os = LINUX +user "root" +} + +buildRpm { +group = "build" +} + +build
[cassandra] branch trunk updated: Correct Visibility and Improve Safety of Methods in LatencyMetrics
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new c5eb532 Correct Visibility and Improve Safety of Methods in LatencyMetrics c5eb532 is described below commit c5eb532b63e80bb976d9dfdd4aa1c76f27f726e5 Author: Jeff Lai AuthorDate: Sat Feb 29 10:06:11 2020 -0500 Correct Visibility and Improve Safety of Methods in LatencyMetrics patch by jefftt; reviewed by Jordan West and Jon Haddad for CASSANDRA-15597 --- CHANGES.txt | 1 + src/java/org/apache/cassandra/metrics/LatencyMetrics.java | 12 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 5dd25e4..5a9d3e1 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Correct Visibility and Improve Safety of Methods in LatencyMetrics (CASSANDRA-15597) * Allow cqlsh to run with Python2.7/Python3.6+ (CASSANDRA-15659,CASSANDRA-15573) * Improve logging around incremental repair (CASSANDRA-15599) * Do not check cdc_raw_directory filesystem space if CDC disabled (CASSANDRA-15688) diff --git a/src/java/org/apache/cassandra/metrics/LatencyMetrics.java b/src/java/org/apache/cassandra/metrics/LatencyMetrics.java index 7d5d288..ab4c9a5 100644 --- a/src/java/org/apache/cassandra/metrics/LatencyMetrics.java +++ b/src/java/org/apache/cassandra/metrics/LatencyMetrics.java @@ -37,7 +37,7 @@ import static org.apache.cassandra.metrics.CassandraMetricsRegistry.Metrics; public class LatencyMetrics { /** Latency */ -public final Timer latency; +public final LatencyMetricsTimer latency; /** Total latency in micro sec */ public final Counter totalLatency; @@ -89,7 +89,7 @@ public class LatencyMetrics this.aliasFactory = aliasFactory; this.namePrefix = namePrefix; -Timer timer = new LatencyMetrics.LatencyMetricsTimer(new DecayingEstimatedHistogramReservoir()); +LatencyMetricsTimer timer = new LatencyMetrics.LatencyMetricsTimer(new DecayingEstimatedHistogramReservoir()); Counter counter = new LatencyMetricsCounter(); if (aliasFactory == null) @@ -122,12 +122,12 @@ public class LatencyMetrics } } -public void addChildren(LatencyMetrics latencyMetric) +private void addChildren(LatencyMetrics latencyMetric) { this.children.add(latencyMetric); } -public synchronized void removeChildren(LatencyMetrics toRelease) +private synchronized void removeChildren(LatencyMetrics toRelease) { /* Merge details of removed children metrics and add them to our local copy to prevent metrics from going @@ -135,7 +135,7 @@ public class LatencyMetrics Will not protect against simultaneous updates, but since these methods are used by linked parent instances only, they should not receive any updates. */ -((LatencyMetricsTimer) this.latency).releasedLatencyCount += toRelease.latency.getCount(); +this.latency.releasedLatencyCount += toRelease.latency.getCount(); DecayingEstimatedHistogramReservoir.EstimatedHistogramReservoirSnapshot childSnapshot = (DecayingEstimatedHistogramReservoir.EstimatedHistogramReservoirSnapshot) toRelease.latency.getSnapshot(); DecayingEstimatedHistogramReservoir.EstimatedHistogramReservoirSnapshot snapshot = (DecayingEstimatedHistogramReservoir.EstimatedHistogramReservoirSnapshot) this.latency.getSnapshot(); @@ -176,7 +176,7 @@ public class LatencyMetrics } } -class LatencyMetricsTimer extends Timer +public class LatencyMetricsTimer extends Timer { long releasedLatencyCount = 0; - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Updated the introductory section of the Installation page
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new ca2dc1b Updated the introductory section of the Installation page ca2dc1b is described below commit ca2dc1bfa9a7555d565c6b8a4fb957e35a5c0f13 Author: Erick Ramirez AuthorDate: Sun Apr 5 06:52:40 2020 + Updated the introductory section of the Installation page Patch by Erick Ramirez; Reviewed by Jon Haddad for CASSANDRA-15466 --- doc/source/getting_started/installing.rst | 306 +- 1 file changed, 262 insertions(+), 44 deletions(-) diff --git a/doc/source/getting_started/installing.rst b/doc/source/getting_started/installing.rst index a87589d..f3a22f2 100644 --- a/doc/source/getting_started/installing.rst +++ b/doc/source/getting_started/installing.rst @@ -19,88 +19,306 @@ Installing Cassandra +These are the instructions for deploying the supported releases of Apache Cassandra on Linux servers. + +Cassandra runs on a wide array of Linux distributions including (but not limited to): + +- Ubuntu, most notably LTS releases 16.04 to 18.04 +- CentOS & RedHat Enterprise Linux (RHEL) including 6.6 to 7.7 +- Amazon Linux AMIs including 2016.09 through to Linux 2 +- Debian versions 8 & 9 +- SUSE Enterprise Linux 12 + +This is not an exhaustive list of operating system platforms, nor is it prescriptive. However users will be +well-advised to conduct exhaustive tests of their own particularly for less-popular distributions of Linux. +Deploying on older versions is not recommended unless you have previous experience with the older distribution +in a production environment. + Prerequisites ^ -- The latest version of Java 8, either the `Oracle Java Standard Edition 8 +- Install the latest version of Java 8, either the `Oracle Java Standard Edition 8 <http://www.oracle.com/technetwork/java/javase/downloads/index.html>`__ or `OpenJDK 8 <http://openjdk.java.net/>`__. To verify that you have the correct version of java installed, type ``java -version``. - -- For using cqlsh, the latest version of `Python 2.7 <https://www.python.org/downloads/>`__. To verify that you have +- **NOTE**: *Experimental* support for Java 11 was added in Cassandra 4.0 (`CASSANDRA-9608 <https://issues.apache.org/jira/browse/CASSANDRA-9608>`__). + Running Cassandra on Java 11 is *experimental*. Do so at your own risk. For more information, see + `NEWS.txt <https://github.com/apache/cassandra/blob/trunk/NEWS.txt>`__. +- For using cqlsh, the latest version of `Python 2.7 <https://www.python.org/downloads/>`__ or Python 3.6+. To verify that you have the correct version of Python installed, type ``python --version``. -Installation from binary tarball files -^^ +Choosing an installation method +^^^ + +For most users, installing the binary tarball is the simplest choice. The tarball unpacks all its contents +into a single location with binaries and configuration files located in their own subdirectories. The most +obvious attribute of the tarball installation is it does not require ``root`` permissions and can be +installed on any Linux distribution. + +Packaged installations require ``root`` permissions. Install the RPM build on CentOS and RHEL-based +distributions if you want to install Cassandra using YUM. Install the Debian build on Ubuntu and other +Debian-based distributions if you want to install Cassandra using APT. Note that both the YUM and APT +methods required ``root`` permissions and will install the binaries and configuration files as the +``cassandra`` OS user. + +Installing the binary tarball +^ + +1. Verify the version of Java installed. For example: + +:: + + $ java -version + openjdk version "1.8.0_222" + OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~16.04.1-b10) + OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode) + +2. Download the binary tarball from one of the mirrors on the `Apache Cassandra Download <http://cassandra.apache.org/download/>`__ + site. For example, to download 4.0: + +:: + + $ curl -OL http://apache.mirror.digitalpacific.com.au/cassandra/4.0.0/apache-cassandra-4.0.0-bin.tar.gz + +NOTE: The mirrors only host the latest versions of each major supported release. To download an earlier +version of Cassandra, visit the `Apache Archives <http://archive.apache.org/dist/cassandra/>`__. + +3. OPTIONAL: Verify the integrity of the downloaded tarball using one of the methods `here <https://www.apache.org/dyn/closer.cgi#verify>`__. + For example, to verify the hash of the downloaded file using GPG: + +:: + + $ gpg --print-md SHA256 apache-cas
[cassandra] branch trunk updated: Add client request size metrics
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 165081a Add client request size metrics 165081a is described below commit 165081afdaf82ff36a1ccf46f933faf6f76ec102 Author: Jon Haddad j...@jonhaddad.com AuthorDate: Tue Apr 7 09:57:31 2020 -0700 Add client request size metrics Patch by Jon Haddad; Reviewed by David Capwell for CASSANDRA-15704 --- CHANGES.txt| 1 + .../metrics/ClientRequestSizeMetrics.java | 36 src/java/org/apache/cassandra/transport/Frame.java | 8 +++ .../cassandra/transport/ServerMetricsTest.java | 65 ++ 4 files changed, 110 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 88ba6cb..878770b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Add client request size server metrics (CASSANDRA-15704) * Add additional logging around FileUtils and compaction leftover cleanup (CASSANDRA-15705) * Mark system_views/system_virtual_schema as non-alterable keyspaces in cqlsh (CASSANDRA-15711) * Fail incremental repair if an old version sstable is involved (CASSANDRA-15612) diff --git a/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java new file mode 100644 index 000..41fb162 --- /dev/null +++ b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.metrics; + + +import static org.apache.cassandra.metrics.CassandraMetricsRegistry.Metrics; + +import com.codahale.metrics.Counter; +import com.codahale.metrics.Histogram; + +/** + * Metrics to track the size of incoming and outgoing bytes at Cassandra server. + */ +public class ClientRequestSizeMetrics +{ +private static final String TYPE = "ClientRequestSize"; +public static final Counter totalBytesRead = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "IncomingBytes", null)); +public static final Counter totalBytesWritten = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "OutgoingBytes", null)); +public static final Histogram bytesRecievedPerFrame = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesRecievedPerFrame", null), true); +public static final Histogram bytesTransmittedPerFrame = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesTransmittedPerFrame", null), true); +} diff --git a/src/java/org/apache/cassandra/transport/Frame.java b/src/java/org/apache/cassandra/transport/Frame.java index 8163d7a..b597cc2 100644 --- a/src/java/org/apache/cassandra/transport/Frame.java +++ b/src/java/org/apache/cassandra/transport/Frame.java @@ -32,6 +32,7 @@ import io.netty.handler.codec.MessageToMessageEncoder; import io.netty.util.Attribute; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.metrics.ClientRequestSizeMetrics; import org.apache.cassandra.transport.frame.FrameBodyTransformer; import org.apache.cassandra.transport.messages.ErrorMessage; @@ -222,6 +223,9 @@ public class Frame if (buffer.readableBytes() < frameLength) return null; +ClientRequestSizeMetrics.totalBytesRead.inc(frameLength); +ClientRequestSizeMetrics.bytesRecievedPerFrame.update(frameLength); + // extract body ByteBuf body = buffer.slice(idx, (int) bodyLength); body.retain(); @@ -299,6 +303,10 @@ public class Frame header.writeByte(type.opcode); header.writeInt(frame.body.readableBytes()); +int messageSize = header.readableBytes() + frame.body.readableBytes(); +ClientRequestSizeMetrics.totalBytesWritten.inc(messageSize); + ClientRequestSizeMetrics
[cassandra] branch trunk updated: Add client request size metrics
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 165081a Add client request size metrics 165081a is described below commit 165081afdaf82ff36a1ccf46f933faf6f76ec102 Author: Jon Haddad j...@jonhaddad.com AuthorDate: Tue Apr 7 09:57:31 2020 -0700 Add client request size metrics Patch by Jon Haddad; Reviewed by David Capwell for CASSANDRA-15704 --- CHANGES.txt| 1 + .../metrics/ClientRequestSizeMetrics.java | 36 src/java/org/apache/cassandra/transport/Frame.java | 8 +++ .../cassandra/transport/ServerMetricsTest.java | 65 ++ 4 files changed, 110 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 88ba6cb..878770b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Add client request size server metrics (CASSANDRA-15704) * Add additional logging around FileUtils and compaction leftover cleanup (CASSANDRA-15705) * Mark system_views/system_virtual_schema as non-alterable keyspaces in cqlsh (CASSANDRA-15711) * Fail incremental repair if an old version sstable is involved (CASSANDRA-15612) diff --git a/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java new file mode 100644 index 000..41fb162 --- /dev/null +++ b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.metrics; + + +import static org.apache.cassandra.metrics.CassandraMetricsRegistry.Metrics; + +import com.codahale.metrics.Counter; +import com.codahale.metrics.Histogram; + +/** + * Metrics to track the size of incoming and outgoing bytes at Cassandra server. + */ +public class ClientRequestSizeMetrics +{ +private static final String TYPE = "ClientRequestSize"; +public static final Counter totalBytesRead = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "IncomingBytes", null)); +public static final Counter totalBytesWritten = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "OutgoingBytes", null)); +public static final Histogram bytesRecievedPerFrame = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesRecievedPerFrame", null), true); +public static final Histogram bytesTransmittedPerFrame = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesTransmittedPerFrame", null), true); +} diff --git a/src/java/org/apache/cassandra/transport/Frame.java b/src/java/org/apache/cassandra/transport/Frame.java index 8163d7a..b597cc2 100644 --- a/src/java/org/apache/cassandra/transport/Frame.java +++ b/src/java/org/apache/cassandra/transport/Frame.java @@ -32,6 +32,7 @@ import io.netty.handler.codec.MessageToMessageEncoder; import io.netty.util.Attribute; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.metrics.ClientRequestSizeMetrics; import org.apache.cassandra.transport.frame.FrameBodyTransformer; import org.apache.cassandra.transport.messages.ErrorMessage; @@ -222,6 +223,9 @@ public class Frame if (buffer.readableBytes() < frameLength) return null; +ClientRequestSizeMetrics.totalBytesRead.inc(frameLength); +ClientRequestSizeMetrics.bytesRecievedPerFrame.update(frameLength); + // extract body ByteBuf body = buffer.slice(idx, (int) bodyLength); body.retain(); @@ -299,6 +303,10 @@ public class Frame header.writeByte(type.opcode); header.writeInt(frame.body.readableBytes()); +int messageSize = header.readableBytes() + frame.body.readableBytes(); +ClientRequestSizeMetrics.totalBytesWritten.inc(messageSize); + ClientRequestSizeMetrics
[cassandra] branch trunk updated: Add client request size metrics
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 165081a Add client request size metrics 165081a is described below commit 165081afdaf82ff36a1ccf46f933faf6f76ec102 Author: Jon Haddad j...@jonhaddad.com AuthorDate: Tue Apr 7 09:57:31 2020 -0700 Add client request size metrics Patch by Jon Haddad; Reviewed by David Capwell for CASSANDRA-15704 --- CHANGES.txt| 1 + .../metrics/ClientRequestSizeMetrics.java | 36 src/java/org/apache/cassandra/transport/Frame.java | 8 +++ .../cassandra/transport/ServerMetricsTest.java | 65 ++ 4 files changed, 110 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 88ba6cb..878770b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Add client request size server metrics (CASSANDRA-15704) * Add additional logging around FileUtils and compaction leftover cleanup (CASSANDRA-15705) * Mark system_views/system_virtual_schema as non-alterable keyspaces in cqlsh (CASSANDRA-15711) * Fail incremental repair if an old version sstable is involved (CASSANDRA-15612) diff --git a/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java new file mode 100644 index 000..41fb162 --- /dev/null +++ b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.metrics; + + +import static org.apache.cassandra.metrics.CassandraMetricsRegistry.Metrics; + +import com.codahale.metrics.Counter; +import com.codahale.metrics.Histogram; + +/** + * Metrics to track the size of incoming and outgoing bytes at Cassandra server. + */ +public class ClientRequestSizeMetrics +{ +private static final String TYPE = "ClientRequestSize"; +public static final Counter totalBytesRead = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "IncomingBytes", null)); +public static final Counter totalBytesWritten = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "OutgoingBytes", null)); +public static final Histogram bytesRecievedPerFrame = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesRecievedPerFrame", null), true); +public static final Histogram bytesTransmittedPerFrame = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesTransmittedPerFrame", null), true); +} diff --git a/src/java/org/apache/cassandra/transport/Frame.java b/src/java/org/apache/cassandra/transport/Frame.java index 8163d7a..b597cc2 100644 --- a/src/java/org/apache/cassandra/transport/Frame.java +++ b/src/java/org/apache/cassandra/transport/Frame.java @@ -32,6 +32,7 @@ import io.netty.handler.codec.MessageToMessageEncoder; import io.netty.util.Attribute; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.metrics.ClientRequestSizeMetrics; import org.apache.cassandra.transport.frame.FrameBodyTransformer; import org.apache.cassandra.transport.messages.ErrorMessage; @@ -222,6 +223,9 @@ public class Frame if (buffer.readableBytes() < frameLength) return null; +ClientRequestSizeMetrics.totalBytesRead.inc(frameLength); +ClientRequestSizeMetrics.bytesRecievedPerFrame.update(frameLength); + // extract body ByteBuf body = buffer.slice(idx, (int) bodyLength); body.retain(); @@ -299,6 +303,10 @@ public class Frame header.writeByte(type.opcode); header.writeInt(frame.body.readableBytes()); +int messageSize = header.readableBytes() + frame.body.readableBytes(); +ClientRequestSizeMetrics.totalBytesWritten.inc(messageSize); + ClientRequestSizeMetrics
[cassandra] 03/06: Renamed metrics based on feedback
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch client-metrics in repository https://gitbox.apache.org/repos/asf/cassandra.git commit 9d544700f64515ff02c866784a72515b0c0bea3d Author: Jon Haddad j...@jonhaddad.com AuthorDate: Wed Apr 8 14:14:19 2020 -0700 Renamed metrics based on feedback --- src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java index cf26e55..c1d497b 100644 --- a/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java +++ b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java @@ -31,6 +31,6 @@ public class ClientRequestSizeMetrics private static final String TYPE = "ClientRequestSize"; public static final Counter totalBytesRead = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "IncomingBytes", null)); public static final Counter totalBytesWritten = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "OutgoingBytes", null)); -public static final Histogram bytesReadPerQueryHistogram = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesReadPerQuery", null), true); -public static final Histogram bytesWrittenPerQueryHistogram = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesWrittenPerQuery", null), true); +public static final Histogram bytesReadPerQueryHistogram = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesRecievedPerFrame", null), true); +public static final Histogram bytesWrittenPerQueryHistogram = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesTransmittedPerFrame", null), true); } - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] 02/06: high res
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch client-metrics in repository https://gitbox.apache.org/repos/asf/cassandra.git commit 1a98571c1e2dd2a01fe01bd2115c27958253c7c8 Author: Jon Haddad j...@jonhaddad.com AuthorDate: Tue Apr 7 18:14:38 2020 -0700 high res --- .circleci/config.yml | 82 ++-- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3757f46..7fecdfe 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,10 +3,10 @@ jobs: j8_jvm_upgrade_dtests: docker: - image: spod/cassandra-testing-ubuntu1810-java11-w-dependencies:20190306 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l -parallelism: 1 +parallelism: 2 steps: - attach_workspace: at: /home/cassandra @@ -94,10 +94,10 @@ jobs: j8_cqlsh-dtests-py2-with-vnodes: docker: - image: spod/cassandra-testing-ubuntu1810-java11-w-dependencies:20190306 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l -parallelism: 4 +parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -171,10 +171,10 @@ jobs: j11_unit_tests: docker: - image: spod/cassandra-testing-ubuntu1810-java11:20181210 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l -parallelism: 4 +parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -263,10 +263,10 @@ jobs: j11_cqlsh-dtests-py3-with-vnodes: docker: - image: spod/cassandra-testing-ubuntu1810-java11:20181210 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l -parallelism: 4 +parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -341,10 +341,10 @@ jobs: j11_cqlsh-dtests-py3-no-vnodes: docker: - image: spod/cassandra-testing-ubuntu1810-java11:20181210 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l -parallelism: 4 +parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -419,10 +419,10 @@ jobs: j8_cqlsh-dtests-py3-with-vnodes: docker: - image: spod/cassandra-testing-ubuntu1810-java11-w-dependencies:20190306 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l -parallelism: 4 +parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -496,10 +496,10 @@ jobs: j8_cqlsh-dtests-py2-no-vnodes: docker: - image: spod/cassandra-testing-ubuntu1810-java11-w-dependencies:20190306 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l -parallelism: 4 +parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -573,10 +573,10 @@ jobs: j11_cqlsh-dtests-py2-with-vnodes: docker: - image: spod/cassandra-testing-ubuntu1810-java11:20181210 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l -parallelism: 4 +parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -651,10 +651,10 @@ jobs: j11_dtests-with-vnodes: docker: - image: spod/cassandra-testing-ubuntu1810-java11:20181210 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l -parallelism: 4 +parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -732,10 +732,10 @@ jobs: j8_dtests-no-vnodes: docker: - image: spod/cassandra-testing-ubuntu1810-java11-w-dependencies:20190306 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l -parallelism: 4 +parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -790,10 +790,10 @@ jobs: j8_upgradetests-no-vnodes: docker: - image: spod/cassandra-testing-ubuntu1810-java11-w-dependencies:20190306 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l -parallelism: 4 +parallelism: 100 steps: - attach_workspace: at: /home/cassandra @@ -889,7 +889,7 @@ jobs: utests_stress: docker: - image: spod/cassandra-testing-ubuntu1810-java11-w-dependencies:20190306 -resource_class: medium +resource_class: xlarge working_directory: ~/ shell: /bin/bash -eo pipefail -l parallelism: 1 @@ -934,10
[cassandra] 04/06: reworked the metric into the frame encoder / decoder instead of the pipeline
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch client-metrics in repository https://gitbox.apache.org/repos/asf/cassandra.git commit fc9fd13bdf22d3ec91fe9e320d5c692193c8890e Author: Jon Haddad j...@jonhaddad.com AuthorDate: Wed Apr 8 14:50:18 2020 -0700 reworked the metric into the frame encoder / decoder instead of the pipeline --- .../metrics/ClientRequestSizeMetrics.java | 4 +- .../transport/ClientRequestSizeMetricsHandler.java | 58 -- src/java/org/apache/cassandra/transport/Frame.java | 8 +++ .../org/apache/cassandra/transport/Server.java | 5 -- .../ClientRequestSizeMetricsHandlerTest.java | 55 ++-- 5 files changed, 14 insertions(+), 116 deletions(-) diff --git a/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java index c1d497b..41fb162 100644 --- a/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java +++ b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java @@ -31,6 +31,6 @@ public class ClientRequestSizeMetrics private static final String TYPE = "ClientRequestSize"; public static final Counter totalBytesRead = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "IncomingBytes", null)); public static final Counter totalBytesWritten = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "OutgoingBytes", null)); -public static final Histogram bytesReadPerQueryHistogram = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesRecievedPerFrame", null), true); -public static final Histogram bytesWrittenPerQueryHistogram = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesTransmittedPerFrame", null), true); +public static final Histogram bytesRecievedPerFrame = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesRecievedPerFrame", null), true); +public static final Histogram bytesTransmittedPerFrame = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesTransmittedPerFrame", null), true); } diff --git a/src/java/org/apache/cassandra/transport/ClientRequestSizeMetricsHandler.java b/src/java/org/apache/cassandra/transport/ClientRequestSizeMetricsHandler.java deleted file mode 100644 index 33fe034..000 --- a/src/java/org/apache/cassandra/transport/ClientRequestSizeMetricsHandler.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.cassandra.transport; - -import java.util.List; - -import io.netty.buffer.ByteBuf; -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.MessageToMessageCodec; -import org.apache.cassandra.metrics.ClientRequestSizeMetrics; - -/** - * Records the number of bytes read off of and written to the network - * Normally we only use the MessageToMessageCodec to apply a transformation in the Netty messaging pipeline - * Here we need to ensure the ByteBuf sticks around past this Handler, so we need to remember to call retain() - */ -@ChannelHandler.Sharable -public class ClientRequestSizeMetricsHandler extends MessageToMessageCodec -{ -@Override -public void decode(ChannelHandlerContext ctx, ByteBuf buf, List results) -{ -final long messageSize = buf.writerIndex() - buf.readerIndex(); -ClientRequestSizeMetrics.totalBytesRead.inc(messageSize); - ClientRequestSizeMetrics.bytesReadPerQueryHistogram.update(messageSize); -// the buffer needs to be retained here due to Netty's internal requirements. Without it the buffer may be freed -buf.retain(); -results.add(buf); -} - -@Override -public void encode(ChannelHandlerContext ctx, ByteBuf buf, List results) -{ -final long messageSize = buf.writerIndex() - buf.readerIndex(); -ClientRequestSizeMetrics.totalBytesWritten.inc(messageSize); - ClientRequestSizeMetrics.bytesWrittenPerQueryHistogram.update
[cassandra] 01/06: Add client request size metrics
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch client-metrics in repository https://gitbox.apache.org/repos/asf/cassandra.git commit 1fea9a507079cde5c9e87f8c70c8f33cb2c7486c Author: Jon Haddad j...@jonhaddad.com AuthorDate: Tue Apr 7 09:57:31 2020 -0700 Add client request size metrics Patch by Jon Haddad for CASSANDRA-15704 --- .../metrics/ClientRequestSizeMetrics.java | 36 +++ .../transport/ClientRequestSizeMetricsHandler.java | 58 +++ .../org/apache/cassandra/transport/Server.java | 5 + .../ClientRequestSizeMetricsHandlerTest.java | 112 + 4 files changed, 211 insertions(+) diff --git a/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java new file mode 100644 index 000..cf26e55 --- /dev/null +++ b/src/java/org/apache/cassandra/metrics/ClientRequestSizeMetrics.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.metrics; + + +import static org.apache.cassandra.metrics.CassandraMetricsRegistry.Metrics; + +import com.codahale.metrics.Counter; +import com.codahale.metrics.Histogram; + +/** + * Metrics to track the size of incoming and outgoing bytes at Cassandra server. + */ +public class ClientRequestSizeMetrics +{ +private static final String TYPE = "ClientRequestSize"; +public static final Counter totalBytesRead = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "IncomingBytes", null)); +public static final Counter totalBytesWritten = Metrics.counter(DefaultNameFactory.createMetricName(TYPE, "OutgoingBytes", null)); +public static final Histogram bytesReadPerQueryHistogram = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesReadPerQuery", null), true); +public static final Histogram bytesWrittenPerQueryHistogram = Metrics.histogram(DefaultNameFactory.createMetricName(TYPE, "BytesWrittenPerQuery", null), true); +} diff --git a/src/java/org/apache/cassandra/transport/ClientRequestSizeMetricsHandler.java b/src/java/org/apache/cassandra/transport/ClientRequestSizeMetricsHandler.java new file mode 100644 index 000..33fe034 --- /dev/null +++ b/src/java/org/apache/cassandra/transport/ClientRequestSizeMetricsHandler.java @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.cassandra.transport; + +import java.util.List; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageCodec; +import org.apache.cassandra.metrics.ClientRequestSizeMetrics; + +/** + * Records the number of bytes read off of and written to the network + * Normally we only use the MessageToMessageCodec to apply a transformation in the Netty messaging pipeline + * Here we need to ensure the ByteBuf sticks around past this Handler, so we need to remember to call retain() + */ +@ChannelHandler.Sharable +public class ClientRequestSizeMetricsHandler extends MessageToMessageCodec +{ +@Override +public void decode(ChannelHandlerContext ctx, ByteBuf buf, List results) +{ +final long messageSize = buf.writerInd
[cassandra] 05/06: renamed class
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch client-metrics in repository https://gitbox.apache.org/repos/asf/cassandra.git commit d77fc6ed4774acaf61e30ac4a829893dc19f8e32 Author: Jon Haddad j...@jonhaddad.com AuthorDate: Thu Apr 9 10:03:58 2020 -0700 renamed class --- ...lientRequestSizeMetricsHandlerTest.java => ServerMetricsTest.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/unit/org/apache/cassandra/transport/ClientRequestSizeMetricsHandlerTest.java b/test/unit/org/apache/cassandra/transport/ServerMetricsTest.java similarity index 94% rename from test/unit/org/apache/cassandra/transport/ClientRequestSizeMetricsHandlerTest.java rename to test/unit/org/apache/cassandra/transport/ServerMetricsTest.java index 1a8be13..081da00 100644 --- a/test/unit/org/apache/cassandra/transport/ClientRequestSizeMetricsHandlerTest.java +++ b/test/unit/org/apache/cassandra/transport/ServerMetricsTest.java @@ -31,9 +31,9 @@ import org.apache.cassandra.metrics.ClientRequestSizeMetrics; import static org.assertj.core.api.Assertions.assertThat; /** - * Ensures we properly account for bytes read from and to clients + * Ensures we properly account for metrics tracked in the native protocol */ -public class ClientRequestSizeMetricsHandlerTest extends CQLTester +public class ServerMetricsTest extends CQLTester { private long totalBytesReadStart; private long totalBytesWrittenStart; - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch client-metrics created (now 6a05bbd)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch client-metrics in repository https://gitbox.apache.org/repos/asf/cassandra.git. at 6a05bbd minor tweaks This branch includes the following new commits: new 1fea9a5 Add client request size metrics new 1a98571 high res new 9d54470 Renamed metrics based on feedback new fc9fd13 reworked the metric into the frame encoder / decoder instead of the pipeline new d77fc6e renamed class new 6a05bbd minor tweaks The 6 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] 06/06: minor tweaks
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch client-metrics in repository https://gitbox.apache.org/repos/asf/cassandra.git commit 6a05bbd5fd817c91cc709bae63179e94365cc58a Author: Jon Haddad j...@jonhaddad.com AuthorDate: Thu Apr 9 17:32:33 2020 -0700 minor tweaks --- src/java/org/apache/cassandra/transport/Frame.java | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/java/org/apache/cassandra/transport/Frame.java b/src/java/org/apache/cassandra/transport/Frame.java index 4a20a50..b597cc2 100644 --- a/src/java/org/apache/cassandra/transport/Frame.java +++ b/src/java/org/apache/cassandra/transport/Frame.java @@ -303,12 +303,12 @@ public class Frame header.writeByte(type.opcode); header.writeInt(frame.body.readableBytes()); -results.add(header); -results.add(frame.body); - -int messageSize = header.writerIndex() + frame.body.writerIndex(); +int messageSize = header.readableBytes() + frame.body.readableBytes(); ClientRequestSizeMetrics.totalBytesWritten.inc(messageSize); ClientRequestSizeMetrics.bytesTransmittedPerFrame.update(messageSize); + +results.add(header); +results.add(frame.body); } } - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Add additional logging around FileUtils and compaction leftover cleanup
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new e485636 Add additional logging around FileUtils and compaction leftover cleanup e485636 is described below commit e485636ff1ea53221c3b22b1b0e88fad0a009f2e Author: David Capwell AuthorDate: Tue Apr 7 16:43:40 2020 -0700 Add additional logging around FileUtils and compaction leftover cleanup Patch by David Capwell; Reviewed by Jon Haddad for CASSANDRA-15705 --- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/ColumnFamilyStore.java| 3 +++ .../org/apache/cassandra/db/lifecycle/LogTransaction.java | 6 +- src/java/org/apache/cassandra/io/util/FileUtils.java | 14 +++--- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 2ad2aab..88ba6cb 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Add additional logging around FileUtils and compaction leftover cleanup (CASSANDRA-15705) * Mark system_views/system_virtual_schema as non-alterable keyspaces in cqlsh (CASSANDRA-15711) * Fail incremental repair if an old version sstable is involved (CASSANDRA-15612) * Fix overflows on StreamingTombstoneHistogramBuilder produced by large deletion times (CASSANDRA-14773) diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java index ea04c86..e6bb877 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -635,7 +635,10 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean { cleanedDirectories.add(directory); for (File tmpFile : desc.getTemporaryFiles()) +{ +logger.info("Removing unfinished temporary file {}", tmpFile); tmpFile.delete(); +} } File dataFile = new File(desc.filenameFor(Component.DATA)); diff --git a/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java b/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java index 4adff86..4039322 100644 --- a/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java +++ b/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java @@ -30,6 +30,7 @@ import java.util.function.Predicate; import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.Runnables; +import org.apache.cassandra.service.StorageService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -214,7 +215,9 @@ class LogTransaction extends Transactional.AbstractTransactional implements Tran { try { -if (logger.isTraceEnabled()) +if (!StorageService.instance.isDaemonSetupCompleted()) +logger.info("Unfinished transaction log, deleting {} ", file); +else if (logger.isTraceEnabled()) logger.trace("Deleting {}", file); Files.delete(file.toPath()); @@ -479,6 +482,7 @@ class LogTransaction extends Transactional.AbstractTransactional implements Tran { try(LogFile txn = LogFile.make(entry.getKey(), entry.getValue())) { +logger.info("Verifying logfile transaction {}", txn); if (txn.verify()) { Throwable failure = txn.removeUnfinishedLeftovers(null); diff --git a/src/java/org/apache/cassandra/io/util/FileUtils.java b/src/java/org/apache/cassandra/io/util/FileUtils.java index 549e544..2be6b5e 100644 --- a/src/java/org/apache/cassandra/io/util/FileUtils.java +++ b/src/java/org/apache/cassandra/io/util/FileUtils.java @@ -43,16 +43,15 @@ import java.util.concurrent.atomic.AtomicReference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.cassandra.utils.SyncUtil; - import org.apache.cassandra.concurrent.ScheduledExecutors; import org.apache.cassandra.io.FSError; import org.apache.cassandra.io.FSErrorHandler; import org.apache.cassandra.io.FSReadError; import org.apache.cassandra.io.FSWriteError; import org.apache.cassandra.io.sstable.CorruptSSTableException; +import org.apache.cassandra.service.StorageService; import org.apache.cassandra.utils.JVMStabilityInspector; -import org.apache.cassandra.utils.memory.MemoryUtil; +import org.apache.cassandra.utils.SyncUtil; import static com.google.common.base.Throwables.propagate; import static org.apache.cassandra.utils.Throwables.maybeFail; @@ -192,6 +191,9 @@ public final class FileUtils { try { +if (!StorageService.instance.isDaemonSetupCompleted()
[cassandra] branch trunk updated: Only track ideal CL failure when request CL met
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 0e0d288 Only track ideal CL failure when request CL met 0e0d288 is described below commit 0e0d288ab7e87e7d4a7542c955dd06701798bd06 Author: Jon Haddad j...@jonhaddad.com AuthorDate: Mon Apr 6 12:53:27 2020 -0700 Only track ideal CL failure when request CL met Ideal consistency level tracking should not report a failure when requested CL was also not met either. Patch by Jon Haddad; Reviewed by Dinesh Joshi for CASSANDRA-15696. --- CHANGES.txt| 1 + .../service/AbstractWriteResponseHandler.java | 17 -- .../service/WriteResponseHandlerTest.java | 26 ++ 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index fb881de..95a6802 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Only track ideal CL failure when request CL met (CASSANDRA-15696) * Fix flaky CoordinatorMessagingTest and docstring in OutboundSink and ConsistentSession (CASSANDRA-15672) * Fix force compaction of wrapping ranges (CASSANDRA-15664) * Expose repair streaming metrics (CASSANDRA-15656) diff --git a/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java b/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java index 1889c79..b1eb5b3 100644 --- a/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java +++ b/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java @@ -74,6 +74,11 @@ public abstract class AbstractWriteResponseHandler implements RequestCallback private AbstractWriteResponseHandler idealCLDelegate; /** + * We don't want to increment the writeFailedIdealCL if we didn't achieve the original requested CL + */ +private boolean requestedCLAchieved = false; + +/** * @param callback A callback to be called when the write is successful. * @param queryStartNanoTime */ @@ -232,6 +237,13 @@ public abstract class AbstractWriteResponseHandler implements RequestCallback protected void signal() { +//The ideal CL should only count as a strike if the requested CL was achieved. +//If the requested CL is not achieved it's fine for the ideal CL to also not be achieved. +if (idealCLDelegate != null) +{ +idealCLDelegate.requestedCLAchieved = true; +} + condition.signalAll(); if (callback != null) callback.run(); @@ -279,8 +291,9 @@ public abstract class AbstractWriteResponseHandler implements RequestCallback int decrementedValue = responsesAndExpirations.decrementAndGet(); if (decrementedValue == 0) { -//The condition being signaled is a valid proxy for the CL being achieved -if (!condition.isSignaled()) +// The condition being signaled is a valid proxy for the CL being achieved +// Only mark it as failed if the requested CL was achieved. +if (!condition.isSignaled() && requestedCLAchieved) { replicaPlan.keyspace().metric.writeFailedIdealCL.inc(); } diff --git a/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java b/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java index f06b706..5d8d191 100644 --- a/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java +++ b/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java @@ -232,6 +232,32 @@ public class WriteResponseHandlerTest assertEquals(0, ks.metric.idealCLWriteLatency.totalLatency.getCount()); } +/** + * Validate that failing to achieve ideal CL doesn't increase the failure counter when not meeting CL + * @throws Throwable + */ +@Test +public void failedIdealCLDoesNotIncrementsStatOnQueryFailure() throws Throwable +{ +AbstractWriteResponseHandler awr = createWriteResponseHandler(ConsistencyLevel.LOCAL_QUORUM, ConsistencyLevel.EACH_QUORUM); + +long startingCount = ks.metric.writeFailedIdealCL.getCount(); + +// Failure in local DC +awr.onResponse(createDummyMessage(0)); + +awr.expired(); +awr.expired(); + +//Fail in remote DC +awr.expired(); +awr.expired(); +awr.expired(); + +assertEquals(startingCount, ks.metric.writeFailedIdealCL.getCount()); +} + + private static AbstractWriteResponseHandler createWriteResponseHandler(ConsistencyLevel cl, ConsistencyLevel ideal) { return createWriteResponseHandle
[cassandra] branch trunk updated: Republished 3.11.6 NEWS.txt, CHANGES.txt
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 45911cb Republished 3.11.6 NEWS.txt, CHANGES.txt 45911cb is described below commit 45911cba758fb42effcd52fe52bac91df9143548 Author: Erick Ramirez AuthorDate: Tue Mar 31 07:07:07 2020 + Republished 3.11.6 NEWS.txt, CHANGES.txt Patch by Erick Ramirez; Reviewed by Jon Haddad for CASSANDRA-15678 --- CHANGES.txt | 29 + NEWS.txt| 26 ++ 2 files changed, 55 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index dbe5926..b71d8da 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -496,6 +496,35 @@ Merged from 3.0: * Multi-version in-JVM dtests (CASSANDRA-14937) * Allow instance class loaders to be garbage collected for inJVM dtest (CASSANDRA-15170) +3.11.6 + * Fix bad UDT sstable metadata serialization headers written by C* 3.0 on upgrade and in sstablescrub (CASSANDRA-15035) + * Fix nodetool compactionstats showing extra pending task for TWCS - patch implemented (CASSANDRA-15409) + * Fix SELECT JSON formatting for the "duration" type (CASSANDRA-15075) + * Fix LegacyLayout to have same behavior as 2.x when handling unknown column names (CASSANDRA-15081) + * Update nodetool help stop output (CASSANDRA-15401) +Merged from 3.0: + * Run in-jvm upgrade dtests in circleci (CASSANDRA-15506) + * Include updates to static column in mutation size calculations (CASSANDRA-15293) + * Fix point-in-time recoevery ignoring timestamp of updates to static columns (CASSANDRA-15292) + * GC logs are also put under $CASSANDRA_LOG_DIR (CASSANDRA-14306) + * Fix sstabledump's position key value when partitions have multiple rows (CASSANDRA-14721) + * Avoid over-scanning data directories in LogFile.verify() (CASSANDRA-15364) + * Bump generations and document changes to system_distributed and system_traces in 3.0, 3.11 + (CASSANDRA-15441) + * Fix system_traces creation timestamp; optimise system keyspace upgrades (CASSANDRA-15398) + * Fix various data directory prefix matching issues (CASSANDRA-13974) + * Minimize clustering values in metadata collector (CASSANDRA-15400) + * Avoid over-trimming of results in mixed mode clusters (CASSANDRA-15405) + * validate value sizes in LegacyLayout (CASSANDRA-15373) + * Ensure that tracing doesn't break connections in 3.x/4.0 mixed mode by default (CASSANDRA-15385) + * Make sure index summary redistribution does not start when compactions are paused (CASSANDRA-15265) + * Ensure legacy rows have primary key livenessinfo when they contain illegal cells (CASSANDRA-15365) + * Fix race condition when setting bootstrap flags (CASSANDRA-14878) +Merged from 2.2: + * Fix SELECT JSON output for empty blobs (CASSANDRA-15435) + * In-JVM DTest: Set correct internode message version for upgrade test (CASSANDRA-15371) + * In-JVM DTest: Support NodeTool in dtest (CASSANDRA-15429) + * Fix NativeLibrary.tryOpenDirectory callers for Windows (CASSANDRA-15426) 3.11.5 * Fix cassandra-env.sh to use $CASSANDRA_CONF to find cassandra-jaas.config (CASSANDRA-14305) diff --git a/NEWS.txt b/NEWS.txt index 7d716fc..2f65586 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -258,6 +258,32 @@ Materialized Views to be NOT NULL, and no base primary key columns get automatically included in view definition. You have to specify them explicitly now. +3.11.6 +== + +Upgrading +- +- Sstables for tables using with a frozen UDT written by C* 3.0 appear as corrupted. + + Background: The serialization-header in the -Statistics.db sstable component contains the type information + of the table columns. C* 3.0 write incorrect type information for frozen UDTs by omitting the + "frozen" information. Non-frozen UDTs were introduced by CASSANDRA-7423 in C* 3.6. Since then, the missing + "frozen" information leads to deserialization issues that result in CorruptSSTableExceptions, potentially other + exceptions as well. + + As a mitigation, the sstable serialization-headers are rewritten to contain the missing "frozen" information for + UDTs once, when an upgrade from C* 3.0 is detected. This migration does not touch snapshots or backups. + + The sstablescrub tool now performs a check of the sstable serialization-header against the schema. A mismatch of + the types in the serialization-header and the schema will cause sstablescrub to error out and stop by default. + See the new `-e` option. `-e off` disables the new validation code. `-e fix` or `-e fix-only`, e.g. + `sstablescrub -e fix keyspace table`, will validate the serialization-header, rewrite the non-frozen UDTs + in the serialzation-header to frozen UDTs, if that matches the schema, an
[cassandra] branch trunk updated: Use more appropriate logging levels.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new dd9a6e0 Use more appropriate logging levels. dd9a6e0 is described below commit dd9a6e0a8a691bdee357eb6559f1b2b92b076925 Author: Jon Haddad j...@jonhaddad.com AuthorDate: Tue Mar 24 13:44:17 2020 -0700 Use more appropriate logging levels. The following logging was changed: * When the Commit log reader finishes logging each segment, from debug to info * When starting a new compaction, logging details of the compaction task, from debug -> info * When finishing a compaction, logging details of how many sstables, sizes, etc, from debug -> info * When performing a validation compaction, adding helpful logging * When flushing memtables, log details. debug -> info * When flushing largest memtable to free up room, logging more details at INFO * Various logging messages for incremental repair moved to INFO from debug * When failing incremental repair phase, log a warning instead of debug message Patch by Jon Haddad; Reviewed by Alexander Dejanovski for CASSANDRA-15661 --- CHANGES.txt| 1 + .../org/apache/cassandra/db/ColumnFamilyStore.java | 4 +-- src/java/org/apache/cassandra/db/Memtable.java | 12 .../cassandra/db/commitlog/CommitLogReader.java| 2 +- .../cassandra/db/compaction/CompactionTask.java| 33 +++--- .../db/repair/CassandraValidationIterator.java | 2 ++ .../org/apache/cassandra/io/sstable/SSTable.java | 2 +- .../cassandra/io/sstable/format/SSTableReader.java | 6 ++-- .../apache/cassandra/repair/ValidationManager.java | 1 + .../repair/consistent/CoordinatorSession.java | 12 .../cassandra/repair/consistent/LocalSessions.java | 18 ++-- .../transport/ConnectionLimitHandler.java | 4 +-- 12 files changed, 48 insertions(+), 49 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 3057ca6..dbe5926 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Use more appropriate logging levels (CASSANDRA-15661) * Added production recommendations and improved compaction doc organization * Document usage of EC2Snitch with intra-region VPC peering (CASSANDRA-15337) * Fixed flakey test in SASIIndexTest by shutting down its ExecutorService (CASSANDRA-15528) diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java index 61129bb..ea04c86 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -843,7 +843,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean offHeapTotal += allocator.offHeap().owns(); } -logger.debug("Enqueuing flush of {}: {}", +logger.info("Enqueuing flush of {}: {}", name, String.format("%s (%.0f%%) on-heap, %s (%.0f%%) off-heap", FBUtilities.prettyPrintMemory(onHeapTotal), @@ -1233,7 +1233,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean float flushingOffHeap = Memtable.MEMORY_POOL.offHeap.reclaimingRatio(); float thisOnHeap = largest.getAllocator().onHeap().ownershipRatio(); float thisOffHeap = largest.getAllocator().offHeap().ownershipRatio(); -logger.debug("Flushing largest {} to free up room. Used total: {}, live: {}, flushing: {}, this: {}", +logger.info("Flushing largest {} to free up room. Used total: {}, live: {}, flushing: {}, this: {}", largest.cfs, ratio(usedOnHeap, usedOffHeap), ratio(liveOnHeap, liveOffHeap), ratio(flushingOnHeap, flushingOffHeap), ratio(thisOnHeap, thisOffHeap)); largest.cfs.switchMemtableIfCurrent(largest); diff --git a/src/java/org/apache/cassandra/db/Memtable.java b/src/java/org/apache/cassandra/db/Memtable.java index 436b7ef..ba6337b 100644 --- a/src/java/org/apache/cassandra/db/Memtable.java +++ b/src/java/org/apache/cassandra/db/Memtable.java @@ -449,8 +449,7 @@ public class Memtable implements Comparable private void writeSortedContents() { -if (logger.isDebugEnabled()) -logger.debug("Writing {}, flushed range = ({}, {}]", Memtable.this.toString(), from, to); +logger.info("Writing {}, flushed range = ({}, {}]", Memtable.this.toString(), from, to); boolean trackContention = logger.isTraceEnabled(); int heavilyContendedRowCount = 0; @@ -479,11 +478,10 @@
[cassandra] branch trunk updated: Update README.asc
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 239ba66 Update README.asc 239ba66 is described below commit 239ba660d44b7ccc2028aed8c866124276ca8b1c Author: Chris Stokesmore AuthorDate: Mon Mar 30 17:54:59 2020 +0100 Update README.asc Point people to ASF Slack rather than IRC Closes #498 --- README.asc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.asc b/README.asc index 910f399..20fee32 100644 --- a/README.asc +++ b/README.asc @@ -84,7 +84,7 @@ reasonable way to think of it is as, "SQL minus joins and subqueries, plus colle Wondering where to go from here? - * Join us in #cassandra on irc.freenode.net and ask questions + * Join us in #cassandra on the https://s.apache.org/slack-invite[ASF Slack] and ask questions * Subscribe to the Users mailing list by sending a mail to user-subscr...@cassandra.apache.org * Visit the http://cassandra.apache.org/community/[community section] of the Cassandra website for more information on getting involved. - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Added production recommendations and improved compaction doc organization.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 4dcee71 Added production recommendations and improved compaction doc organization. 4dcee71 is described below commit 4dcee71b2de36b52feddf720564f6e58ad8fcc6d Author: Jon Haddad j...@jonhaddad.com AuthorDate: Mon Mar 9 16:46:03 2020 -0700 Added production recommendations and improved compaction doc organization. Each compaction strategy gets its own page. No longer recommending m1 instances in AWS. Patch by Jon Haddad; Reviewed by Jordan West for CASSANDRA-15618. --- CHANGES.txt| 1 + doc/source/getting_started/index.rst | 1 + doc/source/getting_started/production.rst | 156 + .../{compaction.rst => compaction/index.rst} | 184 +++-- doc/source/operating/compaction/lcs.rst| 90 ++ doc/source/operating/compaction/stcs.rst | 58 +++ doc/source/operating/compaction/twcs.rst | 76 + doc/source/operating/hardware.rst | 2 - doc/source/operating/index.rst | 2 +- 9 files changed, 402 insertions(+), 168 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 4cf5421..3057ca6 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Added production recommendations and improved compaction doc organization * Document usage of EC2Snitch with intra-region VPC peering (CASSANDRA-15337) * Fixed flakey test in SASIIndexTest by shutting down its ExecutorService (CASSANDRA-15528) * Fixed empty check in TrieMemIndex due to potential state inconsistency in ConcurrentSkipListMap (CASSANDRA-15526) diff --git a/doc/source/getting_started/index.rst b/doc/source/getting_started/index.rst index 4ca9c4d..a699aee 100644 --- a/doc/source/getting_started/index.rst +++ b/doc/source/getting_started/index.rst @@ -29,5 +29,6 @@ Cassandra. configuring querying drivers + production diff --git a/doc/source/getting_started/production.rst b/doc/source/getting_started/production.rst new file mode 100644 index 000..fe0c4a5 --- /dev/null +++ b/doc/source/getting_started/production.rst @@ -0,0 +1,156 @@ +.. Licensed to the Apache Software Foundation (ASF) under one +.. or more contributor license agreements. See the NOTICE file +.. distributed with this work for additional information +.. regarding copyright ownership. The ASF licenses this file +.. to you under the Apache License, Version 2.0 (the +.. "License"); you may not use this file except in compliance +.. with the License. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + +Production Recommendations + + +The ``cassandra.yaml`` and ``jvm.options`` files have a number of notes and recommendations for production usage. This page +expands on some of the notes in these files with additional information. + +Tokens +^^^ + +Using more than 1 token (referred to as vnodes) allows for more flexible expansion and more streaming peers when +bootstrapping new nodes into the cluster. This can limit the negative impact of streaming (I/O and CPU overhead) +as well as allow for incremental cluster expansion. + +As a tradeoff, more tokens will lead to sharing data with more peers, which can result in decreased availability. To learn more about this we +recommend reading `this paper <https://github.com/jolynch/python_performance_toolkit/raw/master/notebooks/cassandra_availability/whitepaper/cassandra-availability-virtual.pdf>`_. + +The number of tokens can be changed using the following setting: + +``num_tokens: 16`` + + +Here are the most common token counts with a brief explanation of when and why you would use each one. + ++-+---+ +| Token Count | Description | ++=+===+ +| 1 | Maximum availablility, maximum cluster size, fewest peers, | +| | but inflexible expansion. Must always | +| | double
[cassandra] branch trunk updated: Document usage of EC2Snitch with intra-region VPC peering
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 03424b4 Document usage of EC2Snitch with intra-region VPC peering 03424b4 is described below commit 03424b4fd728cb3e97be30117a03532f37459858 Author: Serban Teodorescu AuthorDate: Wed Sep 25 19:50:14 2019 +0300 Document usage of EC2Snitch with intra-region VPC peering Patch by Serban Teodorescu; Reviewed by Jon Haddad for CASSANDRA-15337 --- CHANGES.txt | 1 + doc/source/operating/snitch.rst | 8 +--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index f6a4495..4cf5421 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Document usage of EC2Snitch with intra-region VPC peering (CASSANDRA-15337) * Fixed flakey test in SASIIndexTest by shutting down its ExecutorService (CASSANDRA-15528) * Fixed empty check in TrieMemIndex due to potential state inconsistency in ConcurrentSkipListMap (CASSANDRA-15526) * Add compaction allocation measurement test (CASSANDRA-15388) diff --git a/doc/source/operating/snitch.rst b/doc/source/operating/snitch.rst index 85bd9e8..b716e82 100644 --- a/doc/source/operating/snitch.rst +++ b/doc/source/operating/snitch.rst @@ -65,9 +65,11 @@ PropertyFileSnitch ``cassandra-topology.properties``. Ec2Snitch -Appropriate for EC2 deployments in a single Region. Loads Region and Availability Zone information from the EC2 API. -The Region is treated as the datacenter, and the Availability Zone as the rack. Only private IPs are used, so this -will not work across multiple regions. +Appropriate for EC2 deployments in a single Region, or in multiple regions with inter-region VPC enabled (available +since the end of 2017, see `AWS announcement <https://aws.amazon.com/about-aws/whats-new/2017/11/announcing-support-for-inter-region-vpc-peering/>`_). +Loads Region and Availability Zone information from the EC2 API. The Region is treated as the datacenter, and the +Availability Zone as the rack. Only private IPs are used, so this will work across multiple regions only if +inter-region VPC is enabled. Ec2MultiRegionSnitch Uses public IPs as broadcast_address to allow cross-region connectivity (thus, you should set seed addresses to the - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-sidecar] branch master updated: Security patch for snake yaml
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git The following commit(s) were added to refs/heads/master by this push: new c2d684d Security patch for snake yaml c2d684d is described below commit c2d684d7423bbf02a6fc231345eb1c2335cbc0b3 Author: Jon Haddad AuthorDate: Mon Mar 9 12:45:10 2020 -0700 Security patch for snake yaml Bumped commons-configuration2 to latest version and correctly use YAMLConfiguration. Patch by Jon Haddad; Reviewed by Dinesh Joshi for CASSANDRASC-12 --- CHANGES.txt| 1 + build.gradle | 4 ++-- src/main/java/org/apache/cassandra/sidecar/MainModule.java | 12 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 00defa6..7e12540 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 1.0.0 - + * Security patch to fix incorrect usage of yaml configuration (CASSANDRASC-12) * Build and Test with both Java 8 & 11 in Circle CI (CASSANDRA-15611) * Upgraded Gradle and replaced FindBugs with SpotBugs (CASSANDRA-15610) * Improving local HealthCheckTest reliability (CASSANDRA-15615) diff --git a/build.gradle b/build.gradle index f080eb6..6aa46d5 100644 --- a/build.gradle +++ b/build.gradle @@ -85,10 +85,10 @@ dependencies { compile 'com.datastax.cassandra:cassandra-driver-core:3.6+' compile group: 'com.google.inject', name: 'guice', version: '4.2.2' -compile group: 'org.apache.commons', name: 'commons-configuration2', version: '2.4' +compile group: 'org.apache.commons', name: 'commons-configuration2', version: '2.7' runtime group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.3' -runtime group: 'org.yaml', name: 'snakeyaml', version: '1.23' +runtime group: 'org.yaml', name: 'snakeyaml', version: '1.26' jolokia 'org.jolokia:jolokia-jvm:1.6.0:agent' swaggerUI 'org.webjars:swagger-ui:3.10.0' diff --git a/src/main/java/org/apache/cassandra/sidecar/MainModule.java b/src/main/java/org/apache/cassandra/sidecar/MainModule.java index 38a53f8..82c9c69 100644 --- a/src/main/java/org/apache/cassandra/sidecar/MainModule.java +++ b/src/main/java/org/apache/cassandra/sidecar/MainModule.java @@ -18,11 +18,12 @@ package org.apache.cassandra.sidecar; +import java.io.IOException; +import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import org.apache.commons.configuration2.YAMLConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.configuration2.ex.ConfigurationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -106,15 +107,18 @@ public class MainModule extends AbstractModule @Provides @Singleton -public Configuration configuration() throws ConfigurationException +public Configuration configuration() throws ConfigurationException, IOException { final String confPath = System.getProperty("sidecar.config", "file://./conf/config.yaml"); logger.info("Reading configuration from {}", confPath); try { -Configurations confs = new Configurations(); URL url = new URL(confPath); -YAMLConfiguration yamlConf = confs.fileBased(YAMLConfiguration.class, url); + +YAMLConfiguration yamlConf = new YAMLConfiguration(); +InputStream stream = url.openStream(); +yamlConf.read(stream); + return new Configuration.Builder() .setCassandraHost(yamlConf.get(String.class, "cassandra.host")) .setCassandraPort(yamlConf.get(Integer.class, "cassandra.port")) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-sidecar] branch master updated: Linked to JIRA for issues
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git The following commit(s) were added to refs/heads/master by this push: new 86d5c28 Linked to JIRA for issues 86d5c28 is described below commit 86d5c28d4b23518d3073c947a38b38df8025bd8b Author: Jon Haddad AuthorDate: Tue Mar 17 16:33:43 2020 -0700 Linked to JIRA for issues --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f0e29b9..aec6c96 100644 --- a/README.md +++ b/README.md @@ -34,3 +34,4 @@ Wondering where to go from here? user-subscr...@cassandra.apache.org * Visit the [community section](http://cassandra.apache.org/community/) of the Cassandra website for more information on getting involved. * Visit the [development section](http://cassandra.apache.org/doc/latest/development/index.html) of the Cassandra website for more information on how to contribute. + * File issues with our [Sidecar JIRA](https://issues.apache.org/jira/projects/CASSANDRASC/issues/) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-sidecar] branch master updated: Ninja fix changelog
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git The following commit(s) were added to refs/heads/master by this push: new 2c5f484 Ninja fix changelog 2c5f484 is described below commit 2c5f4841479d5ff80a21540ec4e2fa5344a52251 Author: Jon Haddad AuthorDate: Mon Mar 9 11:11:17 2020 -0700 Ninja fix changelog --- CHANGES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.txt b/CHANGES.txt index 49d7800..00defa6 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 1.0.0 - + * Build and Test with both Java 8 & 11 in Circle CI (CASSANDRA-15611) * Upgraded Gradle and replaced FindBugs with SpotBugs (CASSANDRA-15610) * Improving local HealthCheckTest reliability (CASSANDRA-15615) * Read sidecar.yaml from sidecar.config System Property instead of classpath (CASSANDRA-15288) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-sidecar] branch master updated: Improving CircleCI build reliability
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git The following commit(s) were added to refs/heads/master by this push: new 595fea7 Improving CircleCI build reliability 595fea7 is described below commit 595fea7d97f0d87ac9b9a1510379a6faa6a29abf Author: Jon Haddad AuthorDate: Wed Mar 4 13:56:46 2020 -0800 Improving CircleCI build reliability Switched to Circle machine image - docker has issues with networking in tests Fix storing of test results Updated readme with Java 11 Upgrade vertx Wait for vertx server startup before sending requests Update simulacron to latest bug fix version added spotbugs exclude config to avoid incorrect NPE error on java 11 Configure CircleCi to run tests with Java 11 Patch by Jon Haddad; Reviewed by Dinesh Joshi for CASSANDRA-15611 --- .circleci/config.yml | 89 -- README.md | 11 ++- build.gradle | 17 +++-- .../sidecar/HealthServiceIntegrationTest.java | 1 + src/main/resources/spotbugs-exclude.xml| 14 .../sidecar/AbstractHealthServiceTest.java | 10 ++- 6 files changed, 110 insertions(+), 32 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8ab909d..690b4a6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,42 +2,87 @@ # # Check https://circleci.com/docs/2.0/language-java/ for more details # -version: 2 -jobs: - build: -docker: - - image: circleci/openjdk:8-jdk +version: 2.1 +# need to reuse the same base environment for several tests +aliases: + base_job: &base_job +machine: + image: ubuntu-1604:201903-01 working_directory: ~/repo - environment: TERM: dumb +# we might modify this in the future to accept a parameter for the java package to install +commands: + install_java: +description: "Installs Java 8 using AdoptOpenJDK" +parameters: + version: +type: string + steps: - - checkout + - run: wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add - + - run: sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ + - run: sudo apt-get update + - run: sudo apt-get install -y << parameters.version>> + + install_common: +description: "Installs common software and certificates" +steps: + - run: sudo apt-get update + - run: sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common - # Download and cache dependencies - - restore_cache: - keys: -- v1-dependencies-{{ checksum "build.gradle" }} -# fallback to using the latest cache if no exact match is found -- v1-dependencies- +jobs: + java8: +<<: *base_job - - run: ./gradlew dependencies +steps: + - checkout + - install_common + + - install_java: + version: adoptopenjdk-8-hotspot - - save_cache: - paths: -- ~/.gradle - key: v1-dependencies-{{ checksum "build.gradle" }} + - run: sudo update-java-alternatives -s adoptopenjdk-8-hotspot-amd64 && java -version # make sure it builds with build steps like swagger docs and dist - - run: ./gradlew build + - run: ./gradlew build --stacktrace + + - store_artifacts: + path: build/reports + destination: test-reports + + - store_test_results: + path: ~/repo/build/test-results/ + + java11: +<<: *base_job +steps: + - checkout + - install_common - # run tests! - - run: ./gradlew check + - install_java: + version: adoptopenjdk-11-hotspot + + - run: sudo update-java-alternatives -s adoptopenjdk-11-hotspot-amd64 && java -version + + - run: ./gradlew build --stacktrace - store_artifacts: path: build/reports destination: test-reports + - store_test_results: - path: build/reports \ No newline at end of file + path: ~/repo/build/test-results/ + +workflows: + version: 2 + + test_java_8: +jobs: + - java8 + + test_java_11: +jobs: + - java11 \ No newline at end of file diff --git a/README.md b/README.md index 327948b..f0e29b9 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ For more information, see [the Apache Cassandra web site](http://cassandra.apach Requirements - 1. Java >= 1.8 (OpenJDK or Oracle) - 2. Apache Cassandra 4.0 + 1. Java >= 1.8 (OpenJDK or Oracle), or Java 11 + 2. Apache Cassandra 4.0. We depend on virtual tables which is a 4.0 only
[cassandra] branch trunk updated: Added intro to data modeling section.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 4585bbd Added intro to data modeling section. 4585bbd is described below commit 4585bbd131aaab367ceee6833ca1e8287724a5b1 Author: dvohra AuthorDate: Wed Mar 4 11:37:56 2020 + Added intro to data modeling section. Patch by dvohra; Reviewed by Erick Ramirez and Jon Haddad for CASSANDRA-15481 --- CHANGES.txt| 1 + .../data_modeling/images/Figure_1_data_model.jpg | Bin 0 -> 17469 bytes .../data_modeling/images/Figure_2_data_model.jpg | Bin 0 -> 20925 bytes doc/source/data_modeling/index.rst | 1 + doc/source/data_modeling/intro.rst | 146 + 5 files changed, 148 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 072b7c3..a07ff91 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Add data modeling introduction (CASSANDRA-15481) * Improve the algorithmic token allocation in case racks = RF (CASSANDRA-15600) * Fix ConnectionTest.testAcquireReleaseOutbound (CASSANDRA-15308) * Include finalized pending sstables in preview repair (CASSANDRA-15553) diff --git a/doc/source/data_modeling/images/Figure_1_data_model.jpg b/doc/source/data_modeling/images/Figure_1_data_model.jpg new file mode 100644 index 000..a3b330e Binary files /dev/null and b/doc/source/data_modeling/images/Figure_1_data_model.jpg differ diff --git a/doc/source/data_modeling/images/Figure_2_data_model.jpg b/doc/source/data_modeling/images/Figure_2_data_model.jpg new file mode 100644 index 000..7acdeac Binary files /dev/null and b/doc/source/data_modeling/images/Figure_2_data_model.jpg differ diff --git a/doc/source/data_modeling/index.rst b/doc/source/data_modeling/index.rst index f01c92c..2f799dc 100644 --- a/doc/source/data_modeling/index.rst +++ b/doc/source/data_modeling/index.rst @@ -20,6 +20,7 @@ Data Modeling .. toctree:: :maxdepth: 2 + intro data_modeling_conceptual data_modeling_rdbms data_modeling_queries diff --git a/doc/source/data_modeling/intro.rst b/doc/source/data_modeling/intro.rst new file mode 100644 index 000..630a7d1 --- /dev/null +++ b/doc/source/data_modeling/intro.rst @@ -0,0 +1,146 @@ +.. Licensed to the Apache Software Foundation (ASF) under one +.. or more contributor license agreements. See the NOTICE file +.. distributed with this work for additional information +.. regarding copyright ownership. The ASF licenses this file +.. to you under the Apache License, Version 2.0 (the +.. "License"); you may not use this file except in compliance +.. with the License. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + +Introduction + + +Apache Cassandra stores data in tables, with each table consisting of rows and columns. CQL (Cassandra Query Language) is used to query the data stored in tables. Apache Cassandra data model is based around and optimized for querying. Cassandra does not support relational data modeling intended for relational databases. + +What is Data Modeling? +^^ + +Data modeling is the process of identifying entities and their relationships. In relational databases, data is placed in normalized tables with foreign keys used to reference related data in other tables. Queries that the application will make are driven by the structure of the tables and related data are queried as table joins. + +In Cassandra, data modeling is query-driven. The data access patterns and application queries determine the structure and organization of data which then used to design the database tables. + +Data is modeled around specific queries. Queries are best designed to access a single table, which implies that all entities involved in a query must be in the same table to make data access (reads) very fast. Data is modeled to best suit a query or a set of queries. A table could have one or more entities as best suits a query. As entities do typically have relationships among them and queries could involve entities with relationships among them, a single entity may be included in multi [...] + +Query-driven modeling +^ + +Unlike a relational database model in which queries make use of table joins to get data from multiple tables, joins are not supported in Cassandra so all required fields (columns) must be gr
[cassandra] branch trunk updated: Added documentation for transient replication.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 9688d7d Added documentation for transient replication. 9688d7d is described below commit 9688d7d490ba6581c203c229b945cca5b7c657f4 Author: dvohra AuthorDate: Mon Jan 6 18:16:44 2020 -0800 Added documentation for transient replication. Patch by dvohra; Reviewed by Jon Haddad for CASSANDRA-15476. --- doc/source/_templates/indexcontent.html | 2 +- doc/source/new/index.rst| 1 + doc/source/new/transientreplication.rst | 155 3 files changed, 157 insertions(+), 1 deletion(-) diff --git a/doc/source/_templates/indexcontent.html b/doc/source/_templates/indexcontent.html index 7f7eede..5851258 100644 --- a/doc/source/_templates/indexcontent.html +++ b/doc/source/_templates/indexcontent.html @@ -1,6 +1,6 @@ {% extends "defindex.html" %} {% block tables %} -This documentation is currently a work-in-progress and contains a number of TODO sections. +This documentation is a work-in-progress. Contributions are welcome. Main documentation diff --git a/doc/source/new/index.rst b/doc/source/new/index.rst index c88120d..5ef867b 100644 --- a/doc/source/new/index.rst +++ b/doc/source/new/index.rst @@ -28,4 +28,5 @@ This section covers the new features in Apache Cassandra 4.0. fqllogging messaging streaming + transientreplication diff --git a/doc/source/new/transientreplication.rst b/doc/source/new/transientreplication.rst new file mode 100644 index 000..438f437 --- /dev/null +++ b/doc/source/new/transientreplication.rst @@ -0,0 +1,155 @@ +.. Licensed to the Apache Software Foundation (ASF) under one +.. or more contributor license agreements. See the NOTICE file +.. distributed with this work for additional information +.. regarding copyright ownership. The ASF licenses this file +.. to you under the Apache License, Version 2.0 (the +.. "License"); you may not use this file except in compliance +.. with the License. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + +Transient Replication +- + +**Note**: + +Transient Replication (`CASSANDRA-14404 +<https://issues.apache.org/jira/browse/CASSANDRA-14404>`_) is an experimental feature designed for expert Apache Cassandra users who are able to validate every aspect of the database for their application and deployment. +That means being able to check that operations like reads, writes, decommission, remove, rebuild, repair, and replace all work with your queries, data, configuration, operational practices, and availability requirements. +Apache Cassandra 4.0 has the initial implementation of transient replication. Future releases of Cassandra will make this feature suitable for a wider audience. +It is anticipated that a future version will support monotonic reads with transient replication as well as LWT, logged batches, and counters. Being experimental, Transient replication is **not** recommended for production use. + +Objective +^ + +The objective of transient replication is to decouple storage requirements from data redundancy (or consensus group size) using incremental repair, in order to reduce storage overhead. +Certain nodes act as full replicas (storing all the data for a given token range), and some nodes act as transient replicas, storing only unrepaired data for the same token ranges. + +The optimization that is made possible with transient replication is called "Cheap quorums", which implies that data redundancy is increased without corresponding increase in storage usage. + +Transient replication is useful when sufficient full replicas are unavailable to receive and store all the data. +Transient replication allows you to configure a subset of replicas to only replicate data that hasn't been incrementally repaired. +As an optimization, we can avoid writing data to a transient replica if we have successfully written data to the full replicas. + +After incremental repair, transient data stored on transient replicas can be discarded. + +Enabling Transient Replication +^^ + +Transient replication is not enabled by default. Transient replication must be enabled on each node in a cluster separately by setting the following configuration property in ``cassandra.yaml``. + +:: + + enable_transient_replication: t
[cassandra-sidecar] branch master updated: Upgraded gradle and replaced FindBugs with SpotBugs.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git The following commit(s) were added to refs/heads/master by this push: new 2931775 Upgraded gradle and replaced FindBugs with SpotBugs. 2931775 is described below commit 29317751434cd1b3a129fd4e44628b28c421c6bd Author: Jon Haddad AuthorDate: Tue Mar 3 15:24:50 2020 -0800 Upgraded gradle and replaced FindBugs with SpotBugs. * Upgrading from findbugs (JDK 8 only) to Spotbugs. FindBugs was abandoned years ago and will not be updated. * Upgraded Gradle to version 6.2.1 Patch by Jon Haddad; Reviewed by Dinesh Joshi for CASSANDRA-15610. --- CHANGES.txt | 1 + build.gradle | 24 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index d08bc9e..49d7800 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 1.0.0 - + * Upgraded Gradle and replaced FindBugs with SpotBugs (CASSANDRA-15610) * Improving local HealthCheckTest reliability (CASSANDRA-15615) * Read sidecar.yaml from sidecar.config System Property instead of classpath (CASSANDRA-15288) * Add integration tests task (CASSANDRA-15031) diff --git a/build.gradle b/build.gradle index 947a6bd..3d362e8 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,19 @@ + +buildscript { +dependencies { +// findBugs needs a newer version of Guava in the buildscript. +// otherwise it throws an exception +classpath "com.google.guava:guava:28.2-jre" +} +} + plugins { id 'java' id 'application' id 'idea' id 'checkstyle' id 'jacoco' -id 'findbugs' +id "com.github.spotbugs" version "3.0.0" id 'org.hidetake.swagger.generator' version '2.16.0' } @@ -73,6 +82,7 @@ dependencies { compile 'org.slf4j:slf4j-api:1.7.25' compile 'ch.qos.logback:logback-core:1.2.3' compile 'ch.qos.logback:logback-classic:1.2.3' + compile 'com.datastax.cassandra:cassandra-driver-core:3.6+' compile group: 'com.google.inject', name: 'guice', version: '4.2.2' compile group: 'org.apache.commons', name: 'commons-configuration2', version: '2.4' @@ -153,11 +163,13 @@ checkstyle { configFile file("checkstyle.xml") } -tasks.withType(FindBugs) { -reports { -xml.enabled false -html.enabled true -} +spotbugs { +toolVersion = '4.0.0' +} + +tasks.withType(com.github.spotbugs.SpotBugsTask) { +reports.xml.enabled = false +reports.html.enabled = true } // copyDist gets called on every build diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 44e7c4d..4a6ebce 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-sidecar] branch master updated: Improving local HealthServiceIntegrationTest reliablility
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git The following commit(s) were added to refs/heads/master by this push: new c7d68e7 Improving local HealthServiceIntegrationTest reliablility c7d68e7 is described below commit c7d68e72daafd83657f5d427223dd6283af70128 Author: Jon Haddad AuthorDate: Fri Feb 28 16:54:19 2020 -0800 Improving local HealthServiceIntegrationTest reliablility There appears to be a race condidtion with the simulacron library that causes test failure if we don't wait long enough. This patch simply extends the window that we can wait for a test node to come back online. Patch by Jon Haddad; Reviewed by Dinesh Joshi for CASSANDRA-15615 --- CHANGES.txt| 1 + .../sidecar/HealthServiceIntegrationTest.java | 38 +- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index dcba20e..d08bc9e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 1.0.0 - + * Improving local HealthCheckTest reliability (CASSANDRA-15615) * Read sidecar.yaml from sidecar.config System Property instead of classpath (CASSANDRA-15288) * Add integration tests task (CASSANDRA-15031) * Add support for SSL and bindable address (CASSANDRA-15030) diff --git a/src/integration/java/org/apache/cassandra/sidecar/HealthServiceIntegrationTest.java b/src/integration/java/org/apache/cassandra/sidecar/HealthServiceIntegrationTest.java index 567f67e..5ad6d28 100644 --- a/src/integration/java/org/apache/cassandra/sidecar/HealthServiceIntegrationTest.java +++ b/src/integration/java/org/apache/cassandra/sidecar/HealthServiceIntegrationTest.java @@ -49,10 +49,13 @@ import io.netty.util.Timer; import io.vertx.core.Vertx; import io.vertx.core.http.HttpServer; import io.vertx.core.http.HttpServerOptions; +import io.vertx.core.logging.Logger; +import io.vertx.core.logging.LoggerFactory; import io.vertx.ext.web.Router; import io.vertx.ext.web.client.WebClient; import io.vertx.ext.web.codec.BodyCodec; import io.vertx.junit5.VertxTestContext; + import org.apache.cassandra.sidecar.routes.HealthCheck; import org.apache.cassandra.sidecar.routes.HealthService; @@ -72,6 +75,9 @@ public class HealthServiceIntegrationTest .build(); private static final HashedWheelTimer sharedHWT = new HashedWheelTimer(threadFactory); private static final EventLoopGroup sharedEventLoopGroup = new NioEventLoopGroup(0, threadFactory); + +private static final Logger logger = LoggerFactory.getLogger(HealthServiceIntegrationTest.class); + private static final NettyOptions shared = new NettyOptions() { public EventLoopGroup eventLoopGroup(ThreadFactory threadFactory) @@ -125,6 +131,11 @@ public class HealthServiceIntegrationTest sessions.clear(); } +/** + * This test has a race condition that can result in test failure. Be sure to wait long enough for the server + * to register as up. + * See CASSANDRA-15615 + */ @DisplayName("100 node cluster stopping, then starting") @Test public void testDownHost() throws InterruptedException @@ -143,15 +154,15 @@ public class HealthServiceIntegrationTest Set downNodes = new HashSet<>(); Map checks = new HashMap<>(); -// Create a HealthCheck per node +logger.info("Create a health check per node"); for (BoundNode node : bCluster.getNodes()) checks.put(node, healthCheckFor(node, shared)); -// verify all nodes marked as up +logger.info("verify all nodes marked as up"); for (BoundNode node : bCluster.getNodes()) assertTrue(checks.get(node).get()); -// shut down nodes one at a time, and verify we get correct response on all HealthChecks every iteration +logger.info("shut down nodes one at a time, and verify we get correct response on all HealthChecks"); for (int i = 0; downNodes.size() < nodeCount; i++) { for (BoundNode node : bCluster.getNodes()) @@ -160,23 +171,32 @@ public class HealthServiceIntegrationTest downNodes.add(bCluster.node(i)); } -// all hosts should be down +logger.info("all hosts should be down"); for (BoundNode node : bCluster.getNodes()) assertFalse(checks.get(node).get()); -for (int i = 0; downNodes.size() > 0; i++) +logger.info("Starting nodes back up"); + +int i; +for (i = 0; downNodes.size() > 0; i++) {
[cassandra-sidecar] branch master updated: Updated readme to point to Slack instead of IRC
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git The following commit(s) were added to refs/heads/master by this push: new 3469322 Updated readme to point to Slack instead of IRC 3469322 is described below commit 346932217ee3149211b52500c4698906e7f08844 Author: Jon Haddad AuthorDate: Mon Mar 2 12:42:13 2020 -0800 Updated readme to point to Slack instead of IRC --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index da3ce7c..327948b 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,8 @@ You can use `build`, `test` to build & test the project. Wondering where to go from here? - * Join us in #cassandra on irc.freenode.net and ask questions + * Join us in #cassandra on [ASF Slack](https://s.apache.org/slack-invite) and ask questions * Subscribe to the Users mailing list by sending a mail to user-subscr...@cassandra.apache.org * Visit the [community section](http://cassandra.apache.org/community/) of the Cassandra website for more information on getting involved. - * Visit the [development section](http://cassandra.apache.org/doc/latest/development/index.html) of the Cassandra website for more information on how to contribute. \ No newline at end of file + * Visit the [development section](http://cassandra.apache.org/doc/latest/development/index.html) of the Cassandra website for more information on how to contribute. - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-website] branch master updated (68315ce -> e5612ba)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git. from 68315ce regenerated docs for 4.0 add e5612ba Rebuilt docs No new revisions were added by this update. Summary of changes: .../doc/4.0-alpha4/_images/Figure_1_guarantees.jpg | Bin 0 -> 17993 bytes content/doc/4.0-alpha4/_images/ring.svg| 11 + content/doc/4.0-alpha4/_images/vnodes.svg | 11 + content/doc/4.0-alpha4/architecture/dynamo.html| 483 --- .../doc/4.0-alpha4/architecture/guarantees.html| 70 ++- content/doc/4.0-alpha4/architecture/index.html | 31 +- content/doc/4.0-alpha4/architecture/overview.html | 97 ++- content/doc/4.0-alpha4/new/auditlogging.html | 673 + content/doc/4.0-alpha4/new/fqllogging.html | 7 +- content/doc/4.0-alpha4/new/index.html | 34 ++ content/doc/4.0-alpha4/new/java11.html | 7 +- content/doc/4.0-alpha4/new/messaging.html | 7 +- content/doc/4.0-alpha4/new/streaming.html | 384 content/doc/4.0-alpha4/new/virtualtables.html | 551 + content/doc/4.0-alpha4/objects.inv | Bin 9260 -> 9361 bytes content/doc/4.0-alpha4/operating/hints.html| 16 +- content/doc/4.0-alpha4/operating/read_repair.html | 2 +- content/doc/4.0-alpha4/operating/snitch.html | 2 +- content/doc/4.0-alpha4/searchindex.js | 2 +- content/doc/latest/_images/Figure_1_guarantees.jpg | Bin 0 -> 17993 bytes content/doc/latest/_images/ring.svg| 11 + content/doc/latest/_images/vnodes.svg | 11 + content/doc/latest/architecture/dynamo.html| 483 --- content/doc/latest/architecture/guarantees.html| 70 ++- content/doc/latest/architecture/index.html | 31 +- content/doc/latest/architecture/overview.html | 97 ++- content/doc/latest/new/auditlogging.html | 673 + content/doc/latest/new/fqllogging.html | 7 +- content/doc/latest/new/index.html | 34 ++ content/doc/latest/new/java11.html | 7 +- content/doc/latest/new/messaging.html | 7 +- content/doc/latest/new/streaming.html | 384 content/doc/latest/new/virtualtables.html | 551 + content/doc/latest/objects.inv | Bin 9260 -> 9361 bytes content/doc/latest/operating/hints.html| 16 +- content/doc/latest/operating/read_repair.html | 2 +- content/doc/latest/operating/snitch.html | 2 +- content/doc/latest/searchindex.js | 2 +- content/feed.xml | 2 +- src/doc/4.0-alpha4/_images/Figure_1_guarantees.jpg | Bin 0 -> 17993 bytes src/doc/4.0-alpha4/_images/ring.svg| 11 + src/doc/4.0-alpha4/_images/vnodes.svg | 11 + .../_sources/architecture/dynamo.rst.txt | 535 +--- .../_sources/architecture/guarantees.rst.txt | 60 +- .../_sources/architecture/overview.rst.txt | 96 ++- .../4.0-alpha4/_sources/new/auditlogging.rst.txt | 440 ++ src/doc/4.0-alpha4/_sources/new/index.rst.txt | 1 + src/doc/4.0-alpha4/_sources/new/streaming.rst.txt | 162 + .../4.0-alpha4/_sources/new/virtualtables.rst.txt | 342 +++ .../4.0-alpha4/_sources/operating/hints.rst.txt| 12 +- .../_sources/operating/read_repair.rst.txt | 2 +- .../4.0-alpha4/_sources/operating/snitch.rst.txt | 2 + src/doc/4.0-alpha4/architecture/dynamo.html| 483 --- src/doc/4.0-alpha4/architecture/guarantees.html| 70 ++- src/doc/4.0-alpha4/architecture/index.html | 31 +- src/doc/4.0-alpha4/architecture/overview.html | 97 ++- src/doc/4.0-alpha4/new/auditlogging.html | 548 + src/doc/4.0-alpha4/new/fqllogging.html | 7 +- src/doc/4.0-alpha4/new/index.html | 34 ++ src/doc/4.0-alpha4/new/java11.html | 7 +- src/doc/4.0-alpha4/new/messaging.html | 7 +- src/doc/4.0-alpha4/new/streaming.html | 259 src/doc/4.0-alpha4/new/virtualtables.html | 426 + src/doc/4.0-alpha4/objects.inv | Bin 9260 -> 9361 bytes src/doc/4.0-alpha4/operating/hints.html| 16 +- src/doc/4.0-alpha4/operating/read_repair.html | 2 +- src/doc/4.0-alpha4/operating/snitch.html | 2 +- src/doc/4.0-alpha4/searchindex.js | 2 +- 68 files changed, 7989 insertions(+), 454 deletions(-) create mode 100644 content/doc/4.0-alpha4/_images/Figure_1_guarantees.jpg create mode 100644 content/doc/4.0-alpha4/_images/ring.svg create mode 1006
[cassandra] branch trunk updated (98367b2 -> 0489b0b)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 98367b2 Added documentation for audit logging. add 0489b0b Added documentation section on guarantees. No new revisions were added by this update. Summary of changes: CHANGES.txt | 1 + doc/source/architecture/Figure_1_guarantees.jpg | Bin 0 -> 17993 bytes doc/source/architecture/guarantees.rst | 60 +++- 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 doc/source/architecture/Figure_1_guarantees.jpg - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (dc8f94a -> 98367b2)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from dc8f94a Filter nulls from assertNoUnexpectedThreadsStarted. add 98367b2 Added documentation for audit logging. No new revisions were added by this update. Summary of changes: CHANGES.txt | 1 + doc/source/new/auditlogging.rst | 440 2 files changed, 441 insertions(+) create mode 100644 doc/source/new/auditlogging.rst - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (8aab956 -> d629a58)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 8aab956 Ninja commit, updated changelog add d629a58 Unset GREP_OPTIONS No new revisions were added by this update. Summary of changes: CHANGES.txt | 1 + bin/cassandra | 6 ++ 2 files changed, 7 insertions(+) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (43b633d -> 8aab956)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 43b633d Added streaming documentation. add 8aab956 Ninja commit, updated changelog No new revisions were added by this update. Summary of changes: CHANGES.txt | 1 + 1 file changed, 1 insertion(+) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (f7b3317 -> 43b633d)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from f7b3317 Update to Python driver 3.21 for cqlsh add 43b633d Added streaming documentation. No new revisions were added by this update. Summary of changes: doc/source/new/index.rst | 1 + doc/source/new/streaming.rst | 162 +++ 2 files changed, 163 insertions(+) create mode 100644 doc/source/new/streaming.rst - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-website] branch master updated (8573b40 -> 68315ce)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git. from 8573b40 Rebuild site content add 68315ce regenerated docs for 4.0 No new revisions were added by this update. Summary of changes: README.md | 8 + content/doc/4.0-alpha4/architecture/index.html | 4 +- content/doc/4.0-alpha4/architecture/overview.html | 14 +- content/doc/4.0-alpha4/cql/ddl.html| 117 ++-- content/doc/4.0-alpha4/new/fqllogging.html | 5 +- content/doc/4.0-alpha4/new/index.html | 14 + content/doc/4.0-alpha4/new/java11.html | 1 + content/doc/4.0-alpha4/new/messaging.html | 465 +++ content/doc/4.0-alpha4/objects.inv | Bin 9212 -> 9260 bytes content/doc/4.0-alpha4/operating/bulk_loading.html | 563 +- content/doc/4.0-alpha4/operating/index.html| 8 +- content/doc/4.0-alpha4/searchindex.js | 2 +- content/doc/latest/architecture/index.html | 4 +- content/doc/latest/architecture/overview.html | 14 +- content/doc/latest/cql/ddl.html| 117 ++-- content/doc/latest/new/fqllogging.html | 5 +- content/doc/latest/new/index.html | 14 + content/doc/latest/new/java11.html | 1 + content/doc/latest/new/messaging.html | 465 +++ content/doc/latest/objects.inv | Bin 9212 -> 9260 bytes content/doc/latest/operating/bulk_loading.html | 563 +- content/doc/latest/operating/index.html| 8 +- content/doc/latest/searchindex.js | 2 +- content/feed.xml | 2 +- .../_sources/architecture/overview.rst.txt | 20 +- src/doc/4.0-alpha4/_sources/cql/ddl.rst.txt| 100 +++- src/doc/4.0-alpha4/_sources/new/index.rst.txt | 2 +- src/doc/4.0-alpha4/_sources/new/messaging.rst.txt | 257 + .../_sources/operating/bulk_loading.rst.txt| 642 - src/doc/4.0-alpha4/architecture/index.html | 4 +- src/doc/4.0-alpha4/architecture/overview.html | 14 +- src/doc/4.0-alpha4/cql/ddl.html| 117 ++-- src/doc/4.0-alpha4/new/fqllogging.html | 5 +- src/doc/4.0-alpha4/new/index.html | 14 + src/doc/4.0-alpha4/new/java11.html | 1 + src/doc/4.0-alpha4/new/messaging.html | 340 +++ src/doc/4.0-alpha4/objects.inv | Bin 9212 -> 9260 bytes src/doc/4.0-alpha4/operating/bulk_loading.html | 563 +- src/doc/4.0-alpha4/operating/index.html| 8 +- src/doc/4.0-alpha4/searchindex.js | 2 +- 40 files changed, 4316 insertions(+), 169 deletions(-) create mode 100644 content/doc/4.0-alpha4/new/messaging.html create mode 100644 content/doc/latest/new/messaging.html create mode 100644 src/doc/4.0-alpha4/_sources/new/messaging.rst.txt create mode 100644 src/doc/4.0-alpha4/new/messaging.html - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (896fd0f -> b152a08)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. omit 896fd0f Merge branch 'Deepak-Vohra-bulkloading' into trunk omit fb7caf2 Added documentation for bulk loading new b152a08 Added documentation for bulk loading This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (896fd0f) \ N -- N -- N refs/heads/trunk (b152a08) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] 01/01: Added documentation for bulk loading
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git commit b152a08a8b60a6ceaf9946eb220cbec20a4fb635 Author: dvohra AuthorDate: Mon Jan 6 19:00:26 2020 -0800 Added documentation for bulk loading Patch by dvohra, Reviewed by Jon Haddad for CASSANDRA-15480 --- CHANGES.txt | 1 + doc/docker-compose.yml| 2 + doc/gen-nodetool-docs.py | 4 + doc/source/operating/bulk_loading.rst | 642 +- 4 files changed, 646 insertions(+), 3 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 20c0bf7..c635e18 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Added bulk loading documentation (CASSANDRA-15480) * Updated overview documentation (CASSANDRA-15483) * Added CDC and speculative retry documentation to DDL section (CASSANDRA-15492) * Fix missing Keyspaces in cqlsh describe output (CASSANDRA-15576) diff --git a/doc/docker-compose.yml b/doc/docker-compose.yml index 27ac8d1..392f8d8 100644 --- a/doc/docker-compose.yml +++ b/doc/docker-compose.yml @@ -7,3 +7,5 @@ services: build: . volumes: - ..:/usr/src/code +environment: + - SKIP_NODETOOL # set this to skip nodetool build, saves a lot of time when debugging html diff --git a/doc/gen-nodetool-docs.py b/doc/gen-nodetool-docs.py index 2ea125a..cc784c2 100644 --- a/doc/gen-nodetool-docs.py +++ b/doc/gen-nodetool-docs.py @@ -20,10 +20,14 @@ from __future__ import print_function import os import re +import sys import subprocess from subprocess import PIPE from subprocess import Popen +if(os.environ.get("SKIP_NODETOOL") == "1"): +sys.exit(0) + nodetool = "../bin/nodetool" outdir = "source/tools/nodetool" diff --git a/doc/source/operating/bulk_loading.rst b/doc/source/operating/bulk_loading.rst index c8224d5..850260a 100644 --- a/doc/source/operating/bulk_loading.rst +++ b/doc/source/operating/bulk_loading.rst @@ -13,12 +13,648 @@ .. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. .. See the License for the specific language governing permissions and .. limitations under the License. - .. highlight:: none .. _bulk-loading: Bulk Loading - +== + +Bulk loading of data in Apache Cassandra is supported by different tools. The data to be bulk loaded must be in the form of SSTables. Cassandra does not support loading data in any other format such as CSV, JSON, and XML directly. Bulk loading could be used to: + +- Restore incremental backups and snapshots. Backups and snapshots are already in the form of SSTables. +- Load existing SSTables into another cluster, which could have a different number of nodes or replication strategy. +- Load external data into a cluster + +**Note*: CSV Data can be loaded via the cqlsh COPY command but we do not recommend this for bulk loading, which typically requires many GB or TB of data. + +Tools for Bulk Loading +^^ + +Cassandra provides two commands or tools for bulk loading data. These are: + +- Cassandra Bulk loader, also called ``sstableloader`` +- The ``nodetool import`` command + +The ``sstableloader`` and ``nodetool import`` are accessible if the Cassandra installation ``bin`` directory is in the ``PATH`` environment variable. Or these may be accessed directly from the ``bin`` directory. We shall discuss each of these next. We shall use the example or sample keyspaces and tables created in the Backups section. + +Using sstableloader +^^^ + +The ``sstableloader`` is the main tool for bulk uploading data. The ``sstableloader`` streams SSTable data files to a running cluster. The ``sstableloader`` loads data conforming to the replication strategy and replication factor. The table to upload data to does need not to be empty. + +The only requirements to run ``sstableloader`` are: + +1. One or more comma separated initial hosts to connect to and get ring information. +2. A directory path for the SSTables to load. + +Its usage is as follows. + +:: + + sstableloader [options] + +Sstableloader bulk loads the SSTables found in the directory to the configured cluster. The is used as the target *keyspace/table* name. As an example, to load an SSTable named +``Standard1-g-1-Data.db`` into ``Keyspace1/Standard1``, you will need to have the +files ``Standard1-g-1-Data.db`` and ``Standard1-g-1-Index.db`` in a directory ``/path/to/Keyspace1/Standard1/``. + +Sstableloader Option to accept Target keyspace name + +Often as part of a backup strategy some Cassandra DBAs store an entire data directory. When corruption in data is found then they would like to restore data in the same cluster (for large clusters 200 nodes) but wit
[cassandra] branch trunk updated: Added documentation for bulk loading
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new fb7caf2 Added documentation for bulk loading new 896fd0f Merge branch 'Deepak-Vohra-bulkloading' into trunk fb7caf2 is described below commit fb7caf23420220b50f1c68d155b1b7798762c8fc Author: dvohra AuthorDate: Mon Jan 6 19:00:26 2020 -0800 Added documentation for bulk loading Patch by dvohra, Reviewed by Jon Haddad for CASSANDRA-15480 --- CHANGES.txt | 1 + doc/docker-compose.yml| 2 + doc/gen-nodetool-docs.py | 4 + doc/source/operating/bulk_loading.rst | 642 +- 4 files changed, 646 insertions(+), 3 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 20c0bf7..c635e18 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Added bulk loading documentation (CASSANDRA-15480) * Updated overview documentation (CASSANDRA-15483) * Added CDC and speculative retry documentation to DDL section (CASSANDRA-15492) * Fix missing Keyspaces in cqlsh describe output (CASSANDRA-15576) diff --git a/doc/docker-compose.yml b/doc/docker-compose.yml index 27ac8d1..392f8d8 100644 --- a/doc/docker-compose.yml +++ b/doc/docker-compose.yml @@ -7,3 +7,5 @@ services: build: . volumes: - ..:/usr/src/code +environment: + - SKIP_NODETOOL # set this to skip nodetool build, saves a lot of time when debugging html diff --git a/doc/gen-nodetool-docs.py b/doc/gen-nodetool-docs.py index 2ea125a..cc784c2 100644 --- a/doc/gen-nodetool-docs.py +++ b/doc/gen-nodetool-docs.py @@ -20,10 +20,14 @@ from __future__ import print_function import os import re +import sys import subprocess from subprocess import PIPE from subprocess import Popen +if(os.environ.get("SKIP_NODETOOL") == "1"): +sys.exit(0) + nodetool = "../bin/nodetool" outdir = "source/tools/nodetool" diff --git a/doc/source/operating/bulk_loading.rst b/doc/source/operating/bulk_loading.rst index c8224d5..850260a 100644 --- a/doc/source/operating/bulk_loading.rst +++ b/doc/source/operating/bulk_loading.rst @@ -13,12 +13,648 @@ .. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. .. See the License for the specific language governing permissions and .. limitations under the License. - .. highlight:: none .. _bulk-loading: Bulk Loading - +== + +Bulk loading of data in Apache Cassandra is supported by different tools. The data to be bulk loaded must be in the form of SSTables. Cassandra does not support loading data in any other format such as CSV, JSON, and XML directly. Bulk loading could be used to: + +- Restore incremental backups and snapshots. Backups and snapshots are already in the form of SSTables. +- Load existing SSTables into another cluster, which could have a different number of nodes or replication strategy. +- Load external data into a cluster + +**Note*: CSV Data can be loaded via the cqlsh COPY command but we do not recommend this for bulk loading, which typically requires many GB or TB of data. + +Tools for Bulk Loading +^^ + +Cassandra provides two commands or tools for bulk loading data. These are: + +- Cassandra Bulk loader, also called ``sstableloader`` +- The ``nodetool import`` command + +The ``sstableloader`` and ``nodetool import`` are accessible if the Cassandra installation ``bin`` directory is in the ``PATH`` environment variable. Or these may be accessed directly from the ``bin`` directory. We shall discuss each of these next. We shall use the example or sample keyspaces and tables created in the Backups section. + +Using sstableloader +^^^ + +The ``sstableloader`` is the main tool for bulk uploading data. The ``sstableloader`` streams SSTable data files to a running cluster. The ``sstableloader`` loads data conforming to the replication strategy and replication factor. The table to upload data to does need not to be empty. + +The only requirements to run ``sstableloader`` are: + +1. One or more comma separated initial hosts to connect to and get ring information. +2. A directory path for the SSTables to load. + +Its usage is as follows. + +:: + + sstableloader [options] + +Sstableloader bulk loads the SSTables found in the directory to the configured cluster. The is used as the target *keyspace/table* name. As an example, to load an SSTable named +``Standard1-g-1-Data.db`` into ``Keyspace1/Standard1``, you will need to have the +files ``Standard1-g-1-Data.db`` and ``Standard1-g-1-Index.db`` in a directory ``/path/to/Keyspace1/Standard1/``. + +Sstableloader Option to accept Target keyspace name +***
[cassandra] branch trunk updated: Ninja fix for typo in adc3cdde2ae2a78f7d2bb66da47a07545d3e06cf
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 96a64fb Ninja fix for typo in adc3cdde2ae2a78f7d2bb66da47a07545d3e06cf 96a64fb is described below commit 96a64fbf4f3e52c41f9558449a62772bc7d837a7 Author: Jon Haddad AuthorDate: Wed Feb 19 12:16:05 2020 -0800 Ninja fix for typo in adc3cdde2ae2a78f7d2bb66da47a07545d3e06cf --- .../apache/cassandra/metrics/DecayingEstimatedHistogramReservoir.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java/org/apache/cassandra/metrics/DecayingEstimatedHistogramReservoir.java b/src/java/org/apache/cassandra/metrics/DecayingEstimatedHistogramReservoir.java index 60f381c..6d24314 100644 --- a/src/java/org/apache/cassandra/metrics/DecayingEstimatedHistogramReservoir.java +++ b/src/java/org/apache/cassandra/metrics/DecayingEstimatedHistogramReservoir.java @@ -65,7 +65,7 @@ import static java.lang.Math.min; * * Each bucket represents values from (previous bucket offset, current offset]. * - * To reduce contention each logical bucket is striped accross a configurable number of stripes (default: 4). Threads are + * To reduce contention each logical bucket is striped accross a configurable number of stripes (default: 2). Threads are * assigned to specific stripes. In addition, logical buckets are distributed across the physical storage to reduce conention * when logically adjacent buckets are updated. See CASSANDRA-15213. * - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (44eb173 -> 0bae5ea)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 44eb173 Added CDC and speculative retry documentation to DDL section. add 0bae5ea Updated overview documentation. No new revisions were added by this update. Summary of changes: CHANGES.txt | 1 + doc/source/architecture/overview.rst | 20 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (4e0fccc -> 44eb173)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 4e0fccc Fix missing Keyspaces in cqlsh describe output add 44eb173 Added CDC and speculative retry documentation to DDL section. No new revisions were added by this update. Summary of changes: CHANGES.txt | 1 + doc/source/cql/ddl.rst | 100 doc/source/new/Figure_1.jpg | Bin 0 -> 27827 bytes doc/source/new/Figure_2.jpg | Bin 0 -> 36650 bytes 4 files changed, 83 insertions(+), 18 deletions(-) create mode 100644 doc/source/new/Figure_1.jpg create mode 100644 doc/source/new/Figure_2.jpg - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (d2d526a -> f9b7775)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from d2d526a Switch from www.apache.org/dist to downloads.apache.org add f9b7775 Added documentation describing new internode-messaging. No new revisions were added by this update. Summary of changes: CHANGES.txt | 1 + doc/source/new/Figure_1.jpg | Bin 27827 -> 0 bytes doc/source/new/Figure_2.jpg | Bin 36650 -> 0 bytes doc/source/new/index.rst | 2 +- doc/source/new/messaging.rst | 257 +++ 5 files changed, 259 insertions(+), 1 deletion(-) delete mode 100644 doc/source/new/Figure_1.jpg delete mode 100644 doc/source/new/Figure_2.jpg create mode 100644 doc/source/new/messaging.rst - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Improved read repair documentation.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new ff6aa65 Improved read repair documentation. ff6aa65 is described below commit ff6aa659571102b0a27172a482146f11da7cba31 Author: dvohra AuthorDate: Mon Jan 6 18:19:39 2020 -0800 Improved read repair documentation. Patch by Deepak Vohra; Reviewed by Jon Haddad for CASSANDRA-15485 --- CHANGES.txt | 1 + doc/source/new/Figure_1.jpg | Bin 0 -> 27827 bytes doc/source/new/Figure_2.jpg | Bin 0 -> 36650 bytes doc/source/operating/Figure_1_read_repair.jpg | Bin 0 -> 36919 bytes doc/source/operating/Figure_2_read_repair.jpg | Bin 0 -> 45595 bytes doc/source/operating/Figure_3_read_repair.jpg | Bin 0 -> 43021 bytes doc/source/operating/Figure_4_read_repair.jpg | Bin 0 -> 43021 bytes doc/source/operating/Figure_5_read_repair.jpg | Bin 0 -> 42560 bytes doc/source/operating/Figure_6_read_repair.jpg | Bin 0 -> 57489 bytes doc/source/operating/read_repair.rst | 151 +- doc/source/operating/repair.rst | 101 + 11 files changed, 251 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 8762a02..c4481ae 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Added documentation for read repair and an example of full repair (CASSANDRA-15485) * Make cqlsh and cqlshlib Python 2 & 3 compatible (CASSANDRA-10190) * Added documentation for Full Query Logging (CASSANDRA-15475) * Added documentation for backups (CASSANDRA-15479) diff --git a/doc/source/new/Figure_1.jpg b/doc/source/new/Figure_1.jpg new file mode 100644 index 000..ccaec67 Binary files /dev/null and b/doc/source/new/Figure_1.jpg differ diff --git a/doc/source/new/Figure_2.jpg b/doc/source/new/Figure_2.jpg new file mode 100644 index 000..099e15f Binary files /dev/null and b/doc/source/new/Figure_2.jpg differ diff --git a/doc/source/operating/Figure_1_read_repair.jpg b/doc/source/operating/Figure_1_read_repair.jpg new file mode 100644 index 000..d771550 Binary files /dev/null and b/doc/source/operating/Figure_1_read_repair.jpg differ diff --git a/doc/source/operating/Figure_2_read_repair.jpg b/doc/source/operating/Figure_2_read_repair.jpg new file mode 100644 index 000..29a912b Binary files /dev/null and b/doc/source/operating/Figure_2_read_repair.jpg differ diff --git a/doc/source/operating/Figure_3_read_repair.jpg b/doc/source/operating/Figure_3_read_repair.jpg new file mode 100644 index 000..f5cc189 Binary files /dev/null and b/doc/source/operating/Figure_3_read_repair.jpg differ diff --git a/doc/source/operating/Figure_4_read_repair.jpg b/doc/source/operating/Figure_4_read_repair.jpg new file mode 100644 index 000..25bdb34 Binary files /dev/null and b/doc/source/operating/Figure_4_read_repair.jpg differ diff --git a/doc/source/operating/Figure_5_read_repair.jpg b/doc/source/operating/Figure_5_read_repair.jpg new file mode 100644 index 000..d9c0485 Binary files /dev/null and b/doc/source/operating/Figure_5_read_repair.jpg differ diff --git a/doc/source/operating/Figure_6_read_repair.jpg b/doc/source/operating/Figure_6_read_repair.jpg new file mode 100644 index 000..6bb4d1e Binary files /dev/null and b/doc/source/operating/Figure_6_read_repair.jpg differ diff --git a/doc/source/operating/read_repair.rst b/doc/source/operating/read_repair.rst index 0e52bf5..86872af 100644 --- a/doc/source/operating/read_repair.rst +++ b/doc/source/operating/read_repair.rst @@ -16,7 +16,154 @@ .. highlight:: none +.. read_repair: + Read repair +== +Read Repair is the process of repairing data replicas during a read request. If all replicas involved in a read request at the given read consistency level are consistent the data is returned to the client and no read repair is needed. But if the replicas involved in a read request at the given consistency level are not consistent a read repair is performed to make replicas involved in the read request consistent. The most up-to-date data is returned to the client. The read repair runs i [...] + +Expectation of Monotonic Quorum Reads +^^ +Cassandra uses a blocking read repair to ensure the expectation of "monotonic quorum reads" i.e. that in 2 successive quorum reads, it’s guaranteed the 2nd one won't get something older than the 1st one, and this even if a failed quorum write made a write of the most up to date value only to a minority of replicas. "Quorum" means majority of nodes among replicas. + +Table level configuration of monotonic reads + +Cassan
[cassandra] branch trunk updated: Ninja fix for line endings in backups.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 327c7e1 Ninja fix for line endings in backups. 327c7e1 is described below commit 327c7e1aabd62db6fc1ac9857a39a66d3367d5ad Author: Jon Haddad AuthorDate: Thu Feb 13 17:16:09 2020 -0800 Ninja fix for line endings in backups. --- doc/source/operating/backups.rst | 1320 +++--- 1 file changed, 660 insertions(+), 660 deletions(-) diff --git a/doc/source/operating/backups.rst b/doc/source/operating/backups.rst index b2cb887..01cb6c5 100644 --- a/doc/source/operating/backups.rst +++ b/doc/source/operating/backups.rst @@ -1,660 +1,660 @@ -.. Licensed to the Apache Software Foundation (ASF) under one -.. or more contributor license agreements. See the NOTICE file -.. distributed with this work for additional information -.. regarding copyright ownership. The ASF licenses this file -.. to you under the Apache License, Version 2.0 (the -.. "License"); you may not use this file except in compliance -.. with the License. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. -.. highlight:: none - -Backups - -Apache Cassandra stores data in immutable SSTable files. Backups in Apache Cassandra database are backup copies of the database data that is stored as SSTable files. Backups are used for several purposes including the following: - -- To store a data copy for durability -- To be able to restore a table if table data is lost due to node/partition/network failure -- To be able to transfer the SSTable files to a different machine; for portability - -Types of Backups - -Apache Cassandra supports two kinds of backup strategies. - -- Snapshots -- Incremental Backups - -A *snapshot* is a copy of a table’s SSTable files at a given time, created via hard links. The DDL to create the table is stored as well. Snapshots may be created by a user or created automatically. -The setting (``snapshot_before_compaction``) in ``cassandra.yaml`` determines if snapshots are created before each compaction. -By default ``snapshot_before_compaction`` is set to false. -Snapshots may be created automatically before keyspace truncation or dropping of a table by setting ``auto_snapshot`` to true (default) in ``cassandra.yaml``. -Truncates could be delayed due to the auto snapshots and another setting in ``cassandra.yaml`` determines how long the coordinator should wait for truncates to complete. -By default Cassandra waits 60 seconds for auto snapshots to complete. - -An *incremental backup* is a copy of a table’s SSTable files created by a hard link when memtables are flushed to disk as SSTables. -Typically incremental backups are paired with snapshots to reduce the backup time as well as reduce disk space. -Incremental backups are not enabled by default and must be enabled explicitly in ``cassandra.yaml`` (with ``incremental_backups`` setting) or with the Nodetool. -Once enabled, Cassandra creates a hard link to each SSTable flushed or streamed locally in a ``backups/`` subdirectory of the keyspace data. Incremental backups of system tables are also created. - -Data Directory Structure - -The directory structure of Cassandra data consists of different directories for keyspaces, and tables with the data files within the table directories. Directories backups and snapshots to store backups and snapshots respectively for a particular table are also stored within the table directory. The directory structure for Cassandra is illustrated in Figure 1. - -.. figure:: Figure_1_backups.jpg - -Figure 1. Directory Structure for Cassandra Data - - -Setting Up Example Tables for Backups and Snapshots - -In this section we shall create some example data that could be used to demonstrate incremental backups and snapshots. We have used a three node Cassandra cluster. -First, the keyspaces are created. Subsequently tables are created within a keyspace and table data is added. We have used two keyspaces ``CQLKeyspace`` and ``CatalogKeyspace`` with two tables within each. -Create ``CQLKeyspace``: - -:: - - cqlsh> CREATE KEYSPACE CQLKeyspace - ... WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3}; - -Create table ``t`` in the ``CQLKeyspace`` keyspace. - -:: - - cqlsh&
[cassandra] branch trunk updated: Added backup documentation.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new d50e203 Added backup documentation. d50e203 is described below commit d50e203302b53a8170fb678acc2509e4a9ddb126 Author: dvohra AuthorDate: Mon Jan 6 18:19:39 2020 -0800 Added backup documentation. Patch by Deepak Vohra; Reviewed by Jon Haddad for CASSANDRA-15479 --- CHANGES.txt | 1 + doc/source/operating/Figure_1_backups.jpg | Bin 0 -> 38551 bytes doc/source/operating/backups.rst | 682 +- 3 files changed, 661 insertions(+), 22 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index d88d40d..1bd322b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Added documentation for backups (CASSANDRA-15479) * Documentation gives the wrong instruction to activate remote jmx (CASSANDRA-15535) * Improve the description of nodetool listsnapshots command (CASSANDRA-14587) * allow embedded cassandra launched from a one-jar or uno-jar (CASSANDRA-15494) diff --git a/doc/source/operating/Figure_1_backups.jpg b/doc/source/operating/Figure_1_backups.jpg new file mode 100644 index 000..160013d Binary files /dev/null and b/doc/source/operating/Figure_1_backups.jpg differ diff --git a/doc/source/operating/backups.rst b/doc/source/operating/backups.rst index c071e83..b2cb887 100644 --- a/doc/source/operating/backups.rst +++ b/doc/source/operating/backups.rst @@ -1,22 +1,660 @@ -.. Licensed to the Apache Software Foundation (ASF) under one -.. or more contributor license agreements. See the NOTICE file -.. distributed with this work for additional information -.. regarding copyright ownership. The ASF licenses this file -.. to you under the Apache License, Version 2.0 (the -.. "License"); you may not use this file except in compliance -.. with the License. You may obtain a copy of the License at -.. -.. http://www.apache.org/licenses/LICENSE-2.0 -.. -.. Unless required by applicable law or agreed to in writing, software -.. distributed under the License is distributed on an "AS IS" BASIS, -.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -.. See the License for the specific language governing permissions and -.. limitations under the License. - -.. highlight:: none - -Backups -=== - -.. todo:: TODO +.. Licensed to the Apache Software Foundation (ASF) under one +.. or more contributor license agreements. See the NOTICE file +.. distributed with this work for additional information +.. regarding copyright ownership. The ASF licenses this file +.. to you under the Apache License, Version 2.0 (the +.. "License"); you may not use this file except in compliance +.. with the License. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. +.. highlight:: none + +Backups +--- + +Apache Cassandra stores data in immutable SSTable files. Backups in Apache Cassandra database are backup copies of the database data that is stored as SSTable files. Backups are used for several purposes including the following: + +- To store a data copy for durability +- To be able to restore a table if table data is lost due to node/partition/network failure +- To be able to transfer the SSTable files to a different machine; for portability + +Types of Backups + +Apache Cassandra supports two kinds of backup strategies. + +- Snapshots +- Incremental Backups + +A *snapshot* is a copy of a table’s SSTable files at a given time, created via hard links. The DDL to create the table is stored as well. Snapshots may be created by a user or created automatically. +The setting (``snapshot_before_compaction``) in ``cassandra.yaml`` determines if snapshots are created before each compaction. +By default ``snapshot_before_compaction`` is set to false. +Snapshots may be created automatically before keyspace truncation or dropping of a table by setting ``auto_snapshot`` to true (default) in ``cassandra.yaml``. +Truncates could be delayed due to the auto snapshots and another setting in ``cassandra.yaml`` determines how long the coordinator should wait for truncates to complete. +By default Cassandra waits 60 seconds for auto snapshots to complete. + +An *incremental backup* is a copy of a table’s SSTable files created by a hard link when memtables are flushed to disk as SSTables. +Typically incremental back
[cassandra] branch trunk updated (2ce6ae3 -> 2b52ce2)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 2ce6ae3 Merge branch 'cassandra-3.11' into trunk add 59d2c3c Ninja fix for documentation - building using adoptopenjdk. add 2b52ce2 Added documentation for data modeling section. No new revisions were added by this update. Summary of changes: CHANGES.txt| 1 + doc/Dockerfile | 20 +- doc/source/_templates/indexcontent.html| 2 +- .../data_modeling/data_modeling_conceptual.rst | 63 ++ doc/source/data_modeling/data_modeling_logical.rst | 219 + .../data_modeling/data_modeling_physical.rst | 117 +++ doc/source/data_modeling/data_modeling_queries.rst | 85 doc/source/data_modeling/data_modeling_rdbms.rst | 171 .../data_modeling/data_modeling_refining.rst | 218 doc/source/data_modeling/data_modeling_schema.rst | 144 ++ doc/source/data_modeling/data_modeling_tools.rst | 64 ++ .../images/data_modeling_chebotko_logical.png | Bin 0 -> 87366 bytes .../images/data_modeling_chebotko_physical.png | Bin 5000170 -> 4553809 bytes .../images/data_modeling_hotel_bucketing.png | Bin 0 -> 22009 bytes .../images/data_modeling_hotel_erd.png | Bin 0 -> 233309 bytes .../images/data_modeling_hotel_logical.png | Bin 0 -> 116998 bytes .../images/data_modeling_hotel_physical.png| Bin 0 -> 119795 bytes .../images/data_modeling_hotel_queries.png | Bin 0 -> 103940 bytes .../images/data_modeling_hotel_relational.png | Bin 0 -> 102656 bytes .../images/data_modeling_reservation_logical.png | Bin 0 -> 121750 bytes .../images/data_modeling_reservation_physical.png | Bin 0 -> 142416 bytes doc/source/data_modeling/index.rst | 19 +- doc/source/index.rst | 2 +- 23 files changed, 1112 insertions(+), 13 deletions(-) create mode 100644 doc/source/data_modeling/data_modeling_conceptual.rst create mode 100644 doc/source/data_modeling/data_modeling_logical.rst create mode 100644 doc/source/data_modeling/data_modeling_physical.rst create mode 100644 doc/source/data_modeling/data_modeling_queries.rst create mode 100644 doc/source/data_modeling/data_modeling_rdbms.rst create mode 100644 doc/source/data_modeling/data_modeling_refining.rst create mode 100644 doc/source/data_modeling/data_modeling_schema.rst create mode 100644 doc/source/data_modeling/data_modeling_tools.rst create mode 100755 doc/source/data_modeling/images/data_modeling_chebotko_logical.png copy test/data/serialization/1.2/utils.LegacyBloomFilter.bin => doc/source/data_modeling/images/data_modeling_chebotko_physical.png (74%) create mode 100644 doc/source/data_modeling/images/data_modeling_hotel_bucketing.png create mode 100755 doc/source/data_modeling/images/data_modeling_hotel_erd.png create mode 100755 doc/source/data_modeling/images/data_modeling_hotel_logical.png create mode 100644 doc/source/data_modeling/images/data_modeling_hotel_physical.png create mode 100755 doc/source/data_modeling/images/data_modeling_hotel_queries.png create mode 100755 doc/source/data_modeling/images/data_modeling_hotel_relational.png create mode 100755 doc/source/data_modeling/images/data_modeling_reservation_logical.png create mode 100755 doc/source/data_modeling/images/data_modeling_reservation_physical.png - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-website] branch master updated (5ab635c -> a6ccf6e)
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git. from 5ab635c Re-add line breaks to yum repo code block.. add a6ccf6e Rebuilt website. No new revisions were added by this update. Summary of changes: content/css/style.css | 2 +- content/doc/3.11.6/objects.inv | Bin 8102 -> 8146 bytes content/doc/3.11.6/searchindex.js | 2 +- content/doc/3.11.6/tools/nodetool/bootstrap.html | 8 .../{describering.html => getconcurrency.html} | 17 + content/doc/3.11.6/tools/nodetool/nodetool.html| 11 ++- ...urrentviewbuilders.html => setconcurrency.html} | 21 +++-- .../configuration/cassandra_config_file.html | 9 - content/doc/4.0-alpha3/objects.inv | Bin 8884 -> 8927 bytes content/doc/4.0-alpha3/searchindex.js | 2 +- .../doc/4.0-alpha3/tools/nodetool/bootstrap.html | 8 .../nodetool/{move.html => getconcurrency.html}| 17 + .../doc/4.0-alpha3/tools/nodetool/nodetool.html| 11 ++- ...urrentviewbuilders.html => setconcurrency.html} | 21 +++-- .../configuration/cassandra_config_file.html | 9 - content/doc/latest/objects.inv | Bin 8884 -> 8927 bytes content/doc/latest/searchindex.js | 2 +- content/doc/latest/tools/nodetool/bootstrap.html | 8 .../{describering.html => getconcurrency.html} | 17 + content/doc/latest/tools/nodetool/nodetool.html| 11 ++- ...ncurrentcompactors.html => setconcurrency.html} | 21 +++-- content/download/index.html| 12 ++-- content/feed.xml | 2 +- docker-compose.yml | 1 + src/_sass/_code.scss | 2 +- .../_sources/tools/nodetool/getconcurrency.rst.txt | 11 +++ .../_sources/tools/nodetool/nodetool.rst.txt | 13 - .../_sources/tools/nodetool/setconcurrency.rst.txt | 11 +++ src/doc/3.11.6/objects.inv | Bin 8102 -> 8146 bytes src/doc/3.11.6/searchindex.js | 2 +- src/doc/3.11.6/tools/nodetool/bootstrap.html | 8 .../{describering.html => getconcurrency.html} | 15 --- src/doc/3.11.6/tools/nodetool/nodetool.html| 11 ++- ...urrentviewbuilders.html => setconcurrency.html} | 19 ++- .../configuration/cassandra_config_file.rst.txt| 10 -- .../_sources/tools/nodetool/getconcurrency.rst.txt | 11 +++ .../_sources/tools/nodetool/nodetool.rst.txt | 13 - .../_sources/tools/nodetool/setconcurrency.rst.txt | 11 +++ .../configuration/cassandra_config_file.html | 9 - src/doc/4.0-alpha3/objects.inv | Bin 8884 -> 8927 bytes src/doc/4.0-alpha3/searchindex.js | 2 +- src/doc/4.0-alpha3/tools/nodetool/bootstrap.html | 8 .../nodetool/{move.html => getconcurrency.html}| 15 --- src/doc/4.0-alpha3/tools/nodetool/nodetool.html| 11 ++- ...urrentviewbuilders.html => setconcurrency.html} | 19 ++- 45 files changed, 221 insertions(+), 192 deletions(-) copy content/doc/3.11.6/tools/nodetool/{describering.html => getconcurrency.html} (92%) copy content/doc/3.11.6/tools/nodetool/{setconcurrentviewbuilders.html => setconcurrency.html} (87%) copy content/doc/4.0-alpha3/tools/nodetool/{move.html => getconcurrency.html} (92%) copy content/doc/4.0-alpha3/tools/nodetool/{setconcurrentviewbuilders.html => setconcurrency.html} (87%) copy content/doc/latest/tools/nodetool/{describering.html => getconcurrency.html} (92%) copy content/doc/latest/tools/nodetool/{setconcurrentcompactors.html => setconcurrency.html} (87%) create mode 100644 src/doc/3.11.6/_sources/tools/nodetool/getconcurrency.rst.txt create mode 100644 src/doc/3.11.6/_sources/tools/nodetool/setconcurrency.rst.txt copy src/doc/3.11.6/tools/nodetool/{describering.html => getconcurrency.html} (88%) copy src/doc/3.11.6/tools/nodetool/{setconcurrentviewbuilders.html => setconcurrency.html} (81%) create mode 100644 src/doc/4.0-alpha3/_sources/tools/nodetool/getconcurrency.rst.txt create mode 100644 src/doc/4.0-alpha3/_sources/tools/nodetool/setconcurrency.rst.txt copy src/doc/4.0-alpha3/tools/nodetool/{move.html => getconcurrency.html} (88%) copy src/doc/4.0-alpha3/tools/nodetool/{setconcurrentviewbuilders.html => setconcurrency.html} (81%) ---
[cassandra-website] branch master updated: Fixed docker builds
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git The following commit(s) were added to refs/heads/master by this push: new 28cdbd7 Fixed docker builds 28cdbd7 is described below commit 28cdbd705ec2a3194f7a581dd2702dab15238043 Author: Jon Haddad AuthorDate: Wed Oct 30 13:09:10 2019 -0700 Fixed docker builds --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 261f99c..cfa944c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,7 @@ services: image: cassandra-website:latest volumes: - ./src:/usr/src/cassandra-site/src - - ./content:/usr/src/cassandra-site/content + - ./content:/usr/src/cassandra-site/publish cassandra-website-serve: build: . - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
svn commit: r36452 - /release/cassandra/KEYS
Author: rustyrazorblade Date: Wed Oct 23 14:28:19 2019 New Revision: 36452 Log: Added Mick's key for releases Modified: release/cassandra/KEYS Modified: release/cassandra/KEYS == --- release/cassandra/KEYS (original) +++ release/cassandra/KEYS Wed Oct 23 14:28:19 2019 @@ -3864,3 +3864,359 @@ iKh4wsFPQGBh9ssAC3lQrs6T7ccqnRoO6xsmL+Y2 gbFPnWvcHSSFnKg= =GW0U -END PGP PUBLIC KEY BLOCK- +pub dsa3072 2010-04-26 [SC] + ABCD3108336F7CC6567E769FFDD3B769B21C125C +uid [ultimate] Mick Semb Wever +sig 3FDD3B769B21C125C 2018-06-01 Mick Semb Wever +sig 91D3EB78F8AEBAD3 2010-11-04 Michael Semb Wever (Java Engineer) +uid [ultimate] Mick Semb Wever +sig 3FDD3B769B21C125C 2018-06-01 Mick Semb Wever +sig 3FDD3B769B21C125C 2010-04-26 Mick Semb Wever +sig 91D3EB78F8AEBAD3 2010-11-04 Michael Semb Wever (Java Engineer) +uid [ultimate] [jpeg image of size 4671] +sig 3FDD3B769B21C125C 2010-04-26 Mick Semb Wever +sig 91D3EB78F8AEBAD3 2010-11-04 Michael Semb Wever (Java Engineer) +uid [ultimate] Mick Semb Wever +sig 3FDD3B769B21C125C 2018-06-01 Mick Semb Wever +sub elg4096 2010-04-26 [E] +sig FDD3B769B21C125C 2010-04-26 Mick Semb Wever + +pub dsa3072 2010-04-26 [SC] + ABCD3108336F7CC6567E769FFDD3B769B21C125C +uid [ultimate] Mick Semb Wever +sig 3FDD3B769B21C125C 2010-04-26 Mick Semb Wever +uid [ultimate] Mick Semb Wever +sig 3FDD3B769B21C125C 2010-04-26 Mick Semb Wever +uid [ultimate] [jpeg image of size 4671] +sig 3FDD3B769B21C125C 2010-04-26 Mick Semb Wever +sub elg4096 2010-04-26 [E] +sig FDD3B769B21C125C 2010-04-26 Mick Semb Wever + +-BEGIN PGP PUBLIC KEY BLOCK- + +mQSuBEvV7NIRDAC1ASnxXKXvnbJi6ZaNXgLiU+A9ziX5/xQy7NfnvBwu26v/Xm5g +OnMTFIpdQBh1YZtCl4zzFdVPOCb0fYBantKYIyYUDZGtWNPJPezd9pPOMxB//O3z +C2RhPWB2Hoc3Bjgc1IR1VVLGewX/v7+M1qqSx5D7G8QDMLguJxCuisTw45nfY52M +EO+y0ZT/oCh4iZTbq+PIMKyLfDLnWF0zyXcFK+iMimb+DEOglBctpmpB3kR6bifx +BlZzkzO65eiuaxFQ0xZjf0R7WYdmfY8piQRyqh/y/kn8Slk6THz0aYRca8Jf6y0L +avszdiuCAkh4SK74l61SY/J1oXbBKWZkPMAfAxXyKwzh3Nm8eFyNnS0EBuITilvi +/lWc6MQIoCh/bMNeGCzeoJWehBbCA1o0OxNpsqHjSffE2cM/r0NOQD1weK54osO0 +p+U0AxhXVHPUOuwqPmSUNTm05rVNCLQLvPaVt1M69MTR7bt/mfOJxrIDPvgThpX6 +5Uo4hVAewIyiH48BAOLcCRVSEy+sxKm69qPfps+amvwvNoY3fNm4esGGKIT5DACT +MrR2lVPY/XGM0F+AOj51XgmCOGn1wmjZiXe1kMHRZBlVzFXuOfZKfZeYDMT8zK0X +oSfBCy4OOMG2QRb4ICHiIGMRj7XDrS3MrHgJR2vnQ/ZUo+y7pb03Z5a9sMooh/Uk +BeF9wMkIt5mbtQyxRZYBvG6e6KrlA/ViG5I9QoTjKsjUj4B5s556Po6n3IJqXpW4 +Abtc+FxjhY3SafyQG+nsVZbrsojtityXo6y6R/yTdNB+N0reIgPs5dSWFt/N7SNq +cwLLvhbTl27cR1afNkxgh6ULVvSZ6I9KMMZIvdLD+HWZijzSi/pYnZlrrp5NRBWw +ZwRU4TOXuPiMk4eNW4X3YMR/Z3/XqT2JtGex/x/J03YnEDVET5LAcWZ0Nt9QlVNg +6DwG/cFCgoySszgyIsNiorVslxG62CsDRLF2p6o8lyYix7uAdqnhVEsEMQpa1Ah/ +sYE8JRcVEDTiPL3VCp3ZG/3jPt6A/KDzrEMC2t11ZcoBkBZoIBKfvRPH02yuM3cL +/ROU5R7FMIv3mqimg+SojUmn6TWhzlDIo/K9p6v+Sj/ujpR5pzbVUGc3SMhQ+us8 +C5BKPDGMgdP155LS2/C1LnSjKQafsrqAiK9rKmLcmIHK/1WoFt04ckjmzqrIJPJd +bZU8YYA5TTr/ZR3PPkN5n5NXF1K5nckPSVWRf6wyQhcA8Ao7iZO2uwWR07XGUItT +/FBGPEmgh2S8GXvzFTRhVozNvvL7+WhdQa6OQe5ICM8Wc67u1wUWzuPZguCfmxyA +LhdnVRUZAoVdbk3IFsovcnquby6vDduIt9CsNhFm2SadKb1JdxJxsgaDNUYwCSpA +0GKnu5eYA+O8S/vYHnjZVITWr0V7qk81P92W84OKXwVkJ0QwmXkSFfbF8V/Nvjxp +01+rz0ctndbYf4mXAyzTqv4iC6IWbJ1Zz1GH5JGw+HMx5hk1rcE8jUItDvPWt8+F +HxO/K8ufoVx1AJEptnZToKe5QtV4EOmzLNyt9jnCPT2qPNKK0Ad4bsDsbqK4Spyz +lrQgTWljayBTZW1iIFdldmVyIDxtY2tAYXBhY2hlLm9yZz6IkAQTEQoAOAIbAwUL +CQgHAwUVCgkICwUWAgMBAAIeAQIXgBYhBKvNMQgzb3zGVn52n/3Tt2myHBJcBQJb +EI9GAAoJEP3Tt2myHBJc1GoA/R3Z/qs3kYuLgIpMF/bIAFHYJErmEa1gkMTSaYvf +sR65AP9RQqW9Niy0JCwVtlq5gXSjgcYh6Gh1/w0ehidE+Kp7Toh5BBMRCgAhBQJL +1ezSAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEP3Tt2myHBJcf6gA/3PW +HVINw1kWYrfQDIgMqnkFDbG2UFMP5X6FG5mEo4oKAP4jZQchjncch8abmj1lUz7c +3aB1+rF+9j4FuHatwzcp9ohGBBARCgAGBQJM0hpoAAoJEJHT63j4rrrTgI8An2wr +J4j6ATOeDMPNSwad3GQV3zsJAJ0QV7dgVYGjRVt+OLJcqa6Wt0yIELQlTWljayBT +ZW1iIFdldmVyIDxtaWNrQHNlbWIud2V2ZXIub3JnPoiTBBMRCgA7AhsDBQsJCAcD +BRUKCQgLBRYCAwEAAh4BAheAFiEEq80xCDNvfMZWfnaf/dO3abIcElwFAlsQj0YC +GQEACgkQ/dO3abIcElyrpAD/W4Ge09788Ks6Qy+ipBewjeUaOC3SMI8To73CLQC5 +p3MBAMH7qqy6SO/s6OxmDWdVN7wjK+e9LY/PhEqb5ReMMekiiEYEEBEKAAYFAkzS +GmsACgkQkdPrePiuutP43gCeIPrQpZHtO/Pl2Z+yHYPqColcj2gAn2YbjU5P3uTC +S4UX2+ZYCv5ZgX5Z0dGS0ZABEAABAQAAAP/Y/+AAEEpGSUYAAQEA +AAEAAQAA/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQu +JyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIy +MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy +/8AAEQgAcwCaAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAABAgMEBQYH +CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGh +CCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldY +WVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1 +tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29
[cassandra-website] branch master updated: added empty div to check if publishing worked
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git The following commit(s) were added to refs/heads/master by this push: new cb76bc3 added empty div to check if publishing worked cb76bc3 is described below commit cb76bc3085107cb60e4ceea35f53f75a437b694b Author: Jon Haddad AuthorDate: Thu Oct 17 09:55:21 2019 -0400 added empty div to check if publishing worked --- content/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/index.html b/content/index.html index 05e031d..a956f12 100644 --- a/content/index.html +++ b/content/index.html @@ -258,6 +258,6 @@ } catch(err) {} - + - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-website] branch master updated: Adding asf.yaml to publish the new site.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git The following commit(s) were added to refs/heads/master by this push: new 2ac9e7f Adding asf.yaml to publish the new site. 2ac9e7f is described below commit 2ac9e7f765805ccd5e0c857b09727ccad8e5a286 Author: Jon Haddad AuthorDate: Thu Oct 17 09:49:48 2019 -0400 Adding asf.yaml to publish the new site. --- .asf.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.asf.yaml b/.asf.yaml new file mode 100644 index 000..3486904 --- /dev/null +++ b/.asf.yaml @@ -0,0 +1,2 @@ +publish: + whoami: master - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-website] branch master updated: Fixed minor issue with sed, needed to point to content directory instead of publish.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git The following commit(s) were added to refs/heads/master by this push: new f151c02 Fixed minor issue with sed, needed to point to content directory instead of publish. f151c02 is described below commit f151c02d9f336575a0a1eef68f4bbcb53eeeaf44 Author: Jon Haddad AuthorDate: Thu Oct 17 08:41:40 2019 -0400 Fixed minor issue with sed, needed to point to content directory instead of publish. --- docker-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index bb54a36..264f183 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -39,4 +39,4 @@ make # Fix the links in the resource paths for the landing pages of each version in the publish directory cd ${CASSANDRA_SITE_DIR} -sed -i 's/\.\/\.\.\//\.\/\.\.\/\.\.\//g' ./publish/doc/*/index.html \ No newline at end of file +sed -i 's/\.\/\.\.\//\.\/\.\.\/\.\.\//g' ./content/doc/*/index.html \ No newline at end of file - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-website] branch master updated: Using the stretch tag instead of latest to pin the version. Latest breaks openjdk-8 install.
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git The following commit(s) were added to refs/heads/master by this push: new 79842ba Using the stretch tag instead of latest to pin the version. Latest breaks openjdk-8 install. 79842ba is described below commit 79842ba4c371ce36f86472c23701fc7e98ea7038 Author: Jon Haddad AuthorDate: Thu Oct 17 07:59:37 2019 -0400 Using the stretch tag instead of latest to pin the version. Latest breaks openjdk-8 install. --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ae2087e..99c312f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:latest +FROM debian:stretch # Install tools RUN apt-get update && \ - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-website] branch master updated: minor fixes to make the site work with self serve, documentation fixes
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git The following commit(s) were added to refs/heads/master by this push: new a4aee75 minor fixes to make the site work with self serve, documentation fixes a4aee75 is described below commit a4aee756ae4d468c3516cca98b4b072e3f1b5d29 Author: Jon Haddad AuthorDate: Thu Oct 10 13:10:47 2019 -0700 minor fixes to make the site work with self serve, documentation fixes --- README.md | 6 +++--- docker-compose.yml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index bec21f1..54ce543 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ $ cd ./cassandra-website ``` -To build the website run the following commands from within the _./cassandra-website_ directory (assuming you used the above checkout commands): +To build the website run the following commands from within the `./cassandra-website` directory (assuming you used the above clone command): ```bash $ docker-compose build cassandra-website @@ -29,7 +29,7 @@ $ docker-compose run cassandra-website Go make yourself a cup of coffee, this will take a while... -Once building has completed, the site content will be in the _./cassandra-website/publish_ directory ready to be committed. +Once building has completed, the site content will be in the `./cassandra-website/content` directory ready to be committed. Previewing the site @@ -42,4 +42,4 @@ $ docker-compose build cassandra-website $ docker-compose up cassandra-website-serve ``` -For information about the site layout see the **Layout** section of [README](src/README#layout) in the _src_ directory. \ No newline at end of file +For information about the site layout see the **Layout** section of [README](src/README#layout) in the _src_ directory. diff --git a/docker-compose.yml b/docker-compose.yml index 027ab57..261f99c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,7 @@ services: image: cassandra-website:latest volumes: - ./src:/usr/src/cassandra-site/src - - ./content:/usr/src/cassandra-site/publish + - ./content:/usr/src/cassandra-site/content cassandra-website-serve: build: . @@ -16,5 +16,5 @@ services: - 4000:4000 volumes: - ./src:/usr/src/cassandra-site/src - - ./content:/usr/src/cassandra-site/publish + - ./content:/usr/src/cassandra-site/content - ./docker-entrypoint-jekyll-serve.sh:/docker-entrypoint-jekyll-serve.sh - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-website] branch master updated: renamed readme so it renders correctly in github
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git The following commit(s) were added to refs/heads/master by this push: new dea1770 renamed readme so it renders correctly in github dea1770 is described below commit dea177077ee0d53b96408252285b1c3535772261 Author: Jon Haddad AuthorDate: Fri Oct 4 11:08:41 2019 -0700 renamed readme so it renders correctly in github --- README => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/README b/README.md similarity index 100% rename from README rename to README.md - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-website] branch master updated: removed last traces of svn in the readme
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git The following commit(s) were added to refs/heads/master by this push: new 2877926 removed last traces of svn in the readme 2877926 is described below commit 2877926a7d3f5d0f857241c15478e09d84ce4776 Author: Jon Haddad AuthorDate: Fri Oct 4 11:07:50 2019 -0700 removed last traces of svn in the readme --- README | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README b/README index 0dfc9b4..bec21f1 100644 --- a/README +++ b/README @@ -1,12 +1,12 @@ Apache Cassandra website builder -Building the Apache Cassandra website takes a number of steps. To make things easier we have provided a Docker container which can build the full website in two simple commands and have it ready to commit via SVN. If you are interested in the process head over to the [README](./src/README) in _src_ directory. +Building the Apache Cassandra website takes a number of steps. To make things easier we have provided a Docker container which can build the full website in two simple commands and have it ready to commit via git. If you are interested in the process head over to the [README](./src/README) in _src_ directory. Prerequisite -To build and run the Docker container you will need `Docker` version 2.0.0.0 or greater. If you need a copy of the site code you will need `SVN` as well. +To build and run the Docker container you will need `Docker` version 2.0.0.0 or greater. If you need a copy of the site code you will need `git` as well. Building the site - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-website] branch master updated: updated readme to reference the git repo
This is an automated email from the ASF dual-hosted git repository. rustyrazorblade pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-website.git The following commit(s) were added to refs/heads/master by this push: new abfb717 updated readme to reference the git repo abfb717 is described below commit abfb71781180122598501583d7c8cf02d9eb2f40 Author: Jon Haddad AuthorDate: Fri Oct 4 11:07:01 2019 -0700 updated readme to reference the git repo --- .gitignore | 1 + README | 8 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore new file mode 100644 index 000..85e7c1d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.idea/ diff --git a/README b/README index 5df434f..0dfc9b4 100644 --- a/README +++ b/README @@ -15,12 +15,12 @@ Building the site If you need a copy of the site code run this command: ```bash -$ svn co http://svn.apache.org/repos/asf/cassandra/site/ ./cassandra-site -$ cd ./cassandra-site +$ git clone https://github.com/apache/cassandra-website.git +$ cd ./cassandra-website ``` -To build the website run the following commands from within the _./cassandra-site_ directory (assuming you used the above checkout commands): +To build the website run the following commands from within the _./cassandra-website_ directory (assuming you used the above checkout commands): ```bash $ docker-compose build cassandra-website @@ -29,7 +29,7 @@ $ docker-compose run cassandra-website Go make yourself a cup of coffee, this will take a while... -Once building has completed, the site content will be in the _./cassandra-site/publish_ directory ready to be committed. +Once building has completed, the site content will be in the _./cassandra-website/publish_ directory ready to be committed. Previewing the site - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra git commit: Auto-expand replication_factor for NetworkTopologyStrategy
Repository: cassandra Updated Branches: refs/heads/trunk eea68a2cf -> 1f19d5f7a Auto-expand replication_factor for NetworkTopologyStrategy This re-defines the 'replication_factor' configuration option for NetworkTopologyStrategy to auto-expand out to the datacenters that the cluster knows about. This allows users to not worry about their cluster layout when creating keyspaces. On ALTER this keyword will only ever add datacenters (it keeps all previous datacenters unless explicitly overridden) Patch by Joseph Lynch; reviewed by Jon Haddad for CASSANDRA-14303 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1f19d5f7 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1f19d5f7 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1f19d5f7 Branch: refs/heads/trunk Commit: 1f19d5f7a243cc4227da923459f5eb2f66066778 Parents: eea68a2 Author: Joseph Lynch Authored: Mon Mar 12 20:37:30 2018 -0700 Committer: Jon Haddad Committed: Wed Dec 5 11:30:55 2018 -0800 -- CHANGES.txt | 1 + NEWS.txt| 5 ++ doc/source/cql/ddl.rst | 86 +++--- .../statements/schema/KeyspaceAttributes.java | 3 +- .../locator/AbstractReplicationStrategy.java| 34 +++ .../locator/NetworkTopologyStrategy.java| 46 +- .../cassandra/locator/ReplicationFactor.java| 7 +- .../cassandra/schema/ReplicationParams.java | 9 +- .../org/apache/cassandra/cql3/CQLTester.java| 23 - .../cql3/validation/operations/AlterTest.java | 93 .../locator/ReplicationFactorTest.java | 10 +++ 11 files changed, 295 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f19d5f7/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 80bd148..c301e13 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0 + * Auto-expand replication_factor for NetworkTopologyStrategy (CASSANDRA-14303) * Transient Replication: support EACH_QUORUM (CASSANDRA-14727) * BufferPool: allocating thread for new chunks should acquire directly (CASSANDRA-14832) * Send correct messaging version in internode messaging handshake's third message (CASSANDRA-14896) http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f19d5f7/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 5cd8542..00c3178 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -105,6 +105,11 @@ New features - Faster streaming of entire SSTables using ZeroCopy APIs. If enabled, Cassandra will use stream entire SSTables, significantly speeding up transfers. Any streaming related operations will see corresponding improvement. See CASSANDRA-14556. + - NetworkTopologyStrategy now supports auto-expanding the replication_factor + option into all available datacenters at CREATE or ALTER time. For example, + specifying replication_factor: 3 translates to three replicas in every + datacenter. This auto-expansion will _only add_ datacenters for safety. + See CASSANDRA-14303 for more details. Upgrading - http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f19d5f7/doc/source/cql/ddl.rst -- diff --git a/doc/source/cql/ddl.rst b/doc/source/cql/ddl.rst index 945e301..afb130e 100644 --- a/doc/source/cql/ddl.rst +++ b/doc/source/cql/ddl.rst @@ -73,13 +73,15 @@ A keyspace is created using a ``CREATE KEYSPACE`` statement: For instance:: -CREATE KEYSPACE Excelsior - WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3}; +CREATE KEYSPACE excelsior +WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3}; -CREATE KEYSPACE Excalibur - WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1' : 1, 'DC2' : 3} -AND durable_writes = false; +CREATE KEYSPACE excalibur +WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1' : 1, 'DC2' : 3} +AND durable_writes = false; +Attempting to create a keyspace that already exists will return an error unless the ``IF NOT EXISTS`` option is used. If +it is used, the statement will be a no-op if the keyspace already exists. The supported ``options`` are: @@ -96,14 +98,72 @@ The ``replication`` property is mandatory and must at least contains the ``'clas :ref:`replication strategy ` class to use. The rest of the sub-options depends on what replication strategy is used. By default, Cassandra support the following ``'class'``: -- ``'SimpleStrategy'``: A simple str
cassandra git commit: Add basic troubleshooting documentation
Repository: cassandra Updated Branches: refs/heads/trunk 3d66a81dc -> 57b87d21a Add basic troubleshooting documentation This is just a start, but should help people get out of the most basic of reliability/performance issues. Includes information on isolating the node or nodes causing an issue, as well as detailed information on how to debug a correctness/reliability issue on a particular node. Patch by Joseph Lynch, reviewed by Jon Haddad for CASSANDRA-14553 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/57b87d21 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/57b87d21 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/57b87d21 Branch: refs/heads/trunk Commit: 57b87d21aa4712f63903a191cff6c832c759b97b Parents: 3d66a81 Author: Joseph Lynch Authored: Sun Jul 1 17:56:08 2018 -0700 Committer: Jon Haddad Committed: Thu Sep 20 09:16:17 2018 -0700 -- doc/source/operating/metrics.rst | 5 + doc/source/troubleshooting/finding_nodes.rst | 149 ++ doc/source/troubleshooting/index.rst | 21 +- doc/source/troubleshooting/reading_logs.rst | 267 +++ doc/source/troubleshooting/use_nodetool.rst | 245 ++ doc/source/troubleshooting/use_tools.rst | 542 ++ 6 files changed, 1228 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/57b87d21/doc/source/operating/metrics.rst -- diff --git a/doc/source/operating/metrics.rst b/doc/source/operating/metrics.rst index 325395c..4f61bf2 100644 --- a/doc/source/operating/metrics.rst +++ b/doc/source/operating/metrics.rst @@ -16,6 +16,8 @@ .. highlight:: none +.. _monitoring-metrics: + Monitoring -- @@ -55,6 +57,8 @@ All metrics reported by cassandra fit into one of the following types. A meter metric which measures mean throughput and one-, five-, and fifteen-minute exponentially-weighted moving average throughputs. +.. _table-metrics: + Table Metrics ^ @@ -397,6 +401,7 @@ RegularStatementsExecuted CounterNumber of **non** prepared statements PreparedStatementsRatioGauge Percentage of statements that are prepared vs unprepared. == == === +.. _dropped-metrics: DroppedMessage Metrics ^^ http://git-wip-us.apache.org/repos/asf/cassandra/blob/57b87d21/doc/source/troubleshooting/finding_nodes.rst -- diff --git a/doc/source/troubleshooting/finding_nodes.rst b/doc/source/troubleshooting/finding_nodes.rst new file mode 100644 index 000..df5e16c --- /dev/null +++ b/doc/source/troubleshooting/finding_nodes.rst @@ -0,0 +1,149 @@ +.. Licensed to the Apache Software Foundation (ASF) under one +.. or more contributor license agreements. See the NOTICE file +.. distributed with this work for additional information +.. regarding copyright ownership. The ASF licenses this file +.. to you under the Apache License, Version 2.0 (the +.. "License"); you may not use this file except in compliance +.. with the License. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. + +Find The Misbehaving Nodes +== + +The first step to troubleshooting a Cassandra issue is to use error messages, +metrics and monitoring information to identify if the issue lies with the +clients or the server and if it does lie with the server find the problematic +nodes in the Cassandra cluster. The goal is to determine if this is a systemic +issue (e.g. a query pattern that affects the entire cluster) or isolated to a +subset of nodes (e.g. neighbors holding a shared token range or even a single +node with bad hardware). + +There are many sources of information that help determine where the problem +lies. Some of the most common are mentioned below. + +Client Logs and Errors +-- +Clients of the cluster often leave the best breadcrumbs to follow. Perhaps +client latencies or error rates have increased in a particular datacenter +(likely eliminating other datacenter's nodes), or clients are receiving a +particular kind of error code indicating a particular kind of problem. +Troubleshooters can often rule out many failure modes just by reading the error +messages. In fact, many Cassandra error messages includ
[1/2] cassandra git commit: sort and limit output with nodetool tablestats
Repository: cassandra Updated Branches: refs/heads/trunk e75c51719 -> c90b0d62b http://git-wip-us.apache.org/repos/asf/cassandra/blob/c90b0d62/test/unit/org/apache/cassandra/tools/nodetool/stats/TableStatsTestBase.java -- diff --git a/test/unit/org/apache/cassandra/tools/nodetool/stats/TableStatsTestBase.java b/test/unit/org/apache/cassandra/tools/nodetool/stats/TableStatsTestBase.java new file mode 100644 index 000..bb56ef8 --- /dev/null +++ b/test/unit/org/apache/cassandra/tools/nodetool/stats/TableStatsTestBase.java @@ -0,0 +1,432 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.cassandra.tools.nodetool.stats; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Create a test vector for unit testing of TableStats features. + */ +public class TableStatsTestBase +{ + +/** + * A test vector of StatsKeyspace and StatsTable objects loaded with human readable stats. + */ +protected static List humanReadableKeyspaces; + +/** + * A test vector of StatsTable objects loaded with human readable statistics. + */ +protected static List humanReadableTables; + +/** + * A test vector of StatsKeyspace and StatsTable objects. + */ +protected static List testKeyspaces; + +/** + * A test vector of StatsTable objects. + */ +protected static List testTables; + +/** + * @returns StatsKeyspace an instance of StatsKeyspace preset with values for use in a test vector + */ +private static StatsKeyspace createStatsKeyspaceTemplate(String keyspaceName) +{ +return new StatsKeyspace(null, keyspaceName); +} + +/** + * @returns StatsTable an instance of StatsTable preset with values for use in a test vector + */ +private static StatsTable createStatsTableTemplate(String keyspaceName, String tableName) +{ +StatsTable template = new StatsTable(); +template.fullName = keyspaceName + "." + tableName; +template.keyspaceName = new String(keyspaceName); +template.tableName = new String(tableName); +template.isIndex = false; +template.sstableCount = 0L; +template.spaceUsedLive = "0"; +template.spaceUsedTotal = "0"; +template.spaceUsedBySnapshotsTotal = "0"; +template.percentRepaired = 1.0D; +template.bytesRepaired = 0L; +template.bytesUnrepaired = 0L; +template.bytesPendingRepair = 0L; +template.sstableCompressionRatio = -1.0D; +template.numberOfPartitionsEstimate = 0L; +template.memtableCellCount = 0L; +template.memtableDataSize = "0"; +template.memtableSwitchCount = 0L; +template.localReadCount =0L; +template.localReadLatencyMs = Double.NaN; +template.localWriteCount = 0L; +template.localWriteLatencyMs = 0D; +template.pendingFlushes = 0L; +template.bloomFilterFalsePositives = 0L; +template.bloomFilterFalseRatio = 0D; +template.bloomFilterSpaceUsed = "0"; +template.indexSummaryOffHeapMemoryUsed = "0"; +template.compressionMetadataOffHeapMemoryUsed = "0"; +template.compactedPartitionMinimumBytes = 0L; +template.compactedPartitionMaximumBytes = 0L; +template.compactedPartitionMeanBytes = 0L; +template.bytesRepaired = 0L; +template.bytesUnrepaired = 0L; +template.bytesPendingRepair = 0L; +template.averageLiveCellsPerSliceLastFiveMinutes = Double.NaN; +template.maximumLiveCellsPerSliceLastFiveMinutes = 0L; +template.averageTombstonesPerSliceLastFiveMinutes = Double.NaN; +template.maximumTombstonesPerSliceLastFiveMinutes = 0L; +template.droppedMutations = "0"; +return template; +} + +@BeforeClass +public static void createTestVector() +{ +// create test tables from templates +StatsTable table1 = createStatsTableTemplate("keyspace1", "table1"); +StatsTable table2 = createStatsTableTemplate("keyspace1"
[2/2] cassandra git commit: sort and limit output with nodetool tablestats
sort and limit output with nodetool tablestats Patch by Patrick Bannister, reviewed by Jon Haddad for CASSANDRA-13889 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c90b0d62 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c90b0d62 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c90b0d62 Branch: refs/heads/trunk Commit: c90b0d62bc32c91c3a98ab691cb36c8177f12871 Parents: e75c517 Author: Patrick Bannister Authored: Tue Apr 3 23:58:50 2018 + Committer: Jon Haddad Committed: Tue Apr 10 17:44:15 2018 -0700 -- CHANGES.txt | 1 + NEWS.txt| 1 + .../org/apache/cassandra/io/util/FileUtils.java | 39 ++ .../cassandra/tools/nodetool/TableStats.java| 43 +- .../tools/nodetool/stats/StatsTable.java| 4 +- .../nodetool/stats/StatsTableComparator.java| 336 +++ .../tools/nodetool/stats/TableStatsHolder.java | 184 +--- .../tools/nodetool/stats/TableStatsPrinter.java | 130 +++--- .../apache/cassandra/io/util/FileUtilsTest.java | 29 ++ .../stats/StatsTableComparatorTest.java | 311 + .../nodetool/stats/TableStatsPrinterTest.java | 366 .../nodetool/stats/TableStatsTestBase.java | 432 +++ 12 files changed, 1755 insertions(+), 121 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c90b0d62/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index bb8c731..0059ce0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0 + * Add options to nodetool tablestats to sort and limit output (CASSANDRA-13889) * Rename internals to reflect CQL vocabulary (CASSANDRA-14354) * Add support for hybrid MIN(), MAX() speculative retry policies http://git-wip-us.apache.org/repos/asf/cassandra/blob/c90b0d62/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index f8e3ca6..df4c32a 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -69,6 +69,7 @@ New features - SSTableDump now supports the -l option to output each partition as it's own json object See CASSANDRA-13848 for more detail - Metric for coordinator writes per table has been added. See CASSANDRA-14232 + - Nodetool cfstats now has options to sort by various metrics as well as limit results. Upgrading - http://git-wip-us.apache.org/repos/asf/cassandra/blob/c90b0d62/src/java/org/apache/cassandra/io/util/FileUtils.java -- diff --git a/src/java/org/apache/cassandra/io/util/FileUtils.java b/src/java/org/apache/cassandra/io/util/FileUtils.java index b8be84f..a085813 100644 --- a/src/java/org/apache/cassandra/io/util/FileUtils.java +++ b/src/java/org/apache/cassandra/io/util/FileUtils.java @@ -400,6 +400,45 @@ public final class FileUtils ScheduledExecutors.nonPeriodicTasks.execute(runnable); } +public static long parseFileSize(String value) +{ +long result; +if (!value.matches("\\d+(\\.\\d+)? (GiB|KiB|MiB|TiB|bytes)")) +{ +throw new IllegalArgumentException( +String.format("value %s is not a valid human-readable file size", value)); +} +if (value.endsWith(" TiB")) +{ +result = Math.round(Double.valueOf(value.replace(" TiB", "")) * ONE_TB); +return result; +} +else if (value.endsWith(" GiB")) +{ +result = Math.round(Double.valueOf(value.replace(" GiB", "")) * ONE_GB); +return result; +} +else if (value.endsWith(" KiB")) +{ +result = Math.round(Double.valueOf(value.replace(" KiB", "")) * ONE_KB); +return result; +} +else if (value.endsWith(" MiB")) +{ +result = Math.round(Double.valueOf(value.replace(" MiB", "")) * ONE_MB); +return result; +} +else if (value.endsWith(" bytes")) +{ +result = Math.round(Double.valueOf(value.replace(" bytes", ""))); +return result; +} +else +{ +throw new IllegalStateException(String.format("FileUtils.parseFileSize() reached an illegal state parsing %s", value)); +} +} + public static String stringifyFileSize(double value) { double d; http://git-wip-us.apache.org/repos/asf/cassandra/blob/c90b0d62/src/java/org/apache/cassandra/tools/nodetool/TableStats.java -- diff --git a/src/java/org/apache/cassandra/tools/nodetool/TableStats.java b/src/ja
cassandra git commit: renamed ColumnFamilyStoreCQLHelper to TableCQLHelper
Repository: cassandra Updated Branches: refs/heads/trunk 4991ca26a -> e75c51719 renamed ColumnFamilyStoreCQLHelper to TableCQLHelper Patch by Venkata+Harikrishna, reviewed by Jon Haddad for CASSANDRA-14354 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e75c5171 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e75c5171 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e75c5171 Branch: refs/heads/trunk Commit: e75c5171964b3211776136c50f0d8514b85d6295 Parents: 4991ca2 Author: Venkata+Harikrishna Nukala Authored: Sat Mar 31 04:16:27 2018 +0530 Committer: Jon Haddad Committed: Tue Apr 10 16:29:14 2018 -0700 -- CHANGES.txt | 2 + .../apache/cassandra/db/ColumnFamilyStore.java | 2 +- .../db/ColumnFamilyStoreCQLHelper.java | 428 -- .../org/apache/cassandra/db/TableCQLHelper.java | 428 ++ .../db/ColumnFamilyStoreCQLHelperTest.java | 447 --- .../apache/cassandra/db/TableCQLHelperTest.java | 447 +++ 6 files changed, 878 insertions(+), 876 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e75c5171/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 650f740..bb8c731 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,6 @@ 4.0 + * Rename internals to reflect CQL vocabulary + (CASSANDRA-14354) * Add support for hybrid MIN(), MAX() speculative retry policies (CASSANDRA-14293, CASSANDRA-14338, CASSANDRA-14352) * Fix some regressions caused by 14058 (CASSANDRA-14353) http://git-wip-us.apache.org/repos/asf/cassandra/blob/e75c5171/src/java/org/apache/cassandra/db/ColumnFamilyStore.java -- diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java index e4b84fe..34535e5 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -1824,7 +1824,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean try (PrintStream out = new PrintStream(schemaFile)) { -for (String s: ColumnFamilyStoreCQLHelper.dumpReCreateStatements(metadata())) +for (String s: TableCQLHelper.dumpReCreateStatements(metadata())) out.println(s); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e75c5171/src/java/org/apache/cassandra/db/ColumnFamilyStoreCQLHelper.java -- diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStoreCQLHelper.java b/src/java/org/apache/cassandra/db/ColumnFamilyStoreCQLHelper.java deleted file mode 100644 index 740ef3f..000 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStoreCQLHelper.java +++ /dev/null @@ -1,428 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.cassandra.db; - -import java.nio.ByteBuffer; -import java.util.*; -import java.util.concurrent.atomic.*; -import java.util.function.*; - -import com.google.common.annotations.VisibleForTesting; -import com.google.common.collect.Iterables; - -import org.apache.cassandra.cql3.statements.*; -import org.apache.cassandra.db.marshal.*; -import org.apache.cassandra.schema.*; -import org.apache.cassandra.utils.*; - -/** - * Helper methods to represent TableMetadata and related objects in CQL format - */ -public class ColumnFamilyStoreCQLHelper -{ -public static List dumpReCreateStatements(TableMetadata metadata) -{ -List l = new ArrayList<>(); -// Types come first, as table can't be created without them -l.addAll(ColumnFamilyStoreCQLHelper.getUserTypesAsCQL(metadata)); -// Record re-create schema statements -l.add(ColumnFamilyStoreCQLHelper.getTableMetadataAsCQL(
cassandra git commit: Count deleted rows scanned during reads for tracing and tombstone thresholds.
Repository: cassandra Updated Branches: refs/heads/cassandra-3.11 d36919096 -> 9d649d69a Count deleted rows scanned during reads for tracing and tombstone thresholds. If a row is read but is not live anymore (which happens with row level tombstones) it is not counted anywhere in the metrics nor reported in tracing. Row tombstones themselves are not reported anywhere. The consequence is that some delete heavy workloads will show no tombstone read but endure severe performance issues. This commit counts deleted rows as standard tombstone cells. Patch by Alexander Dejanovski; Reviewed by Jon Haddad for CASSANDRA-8527 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9d649d69 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9d649d69 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9d649d69 Branch: refs/heads/cassandra-3.11 Commit: 9d649d69a56a91fcb06a3582b22606f0fe361f49 Parents: d369190 Author: Jon Haddad Authored: Thu Feb 8 11:01:38 2018 -0800 Committer: Jon Haddad Committed: Thu Feb 8 11:01:38 2018 -0800 -- CHANGES.txt | 2 + .../org/apache/cassandra/db/ReadCommand.java| 34 ++- .../apache/cassandra/metrics/TableMetrics.java | 2 +- .../apache/cassandra/db/ReadCommandTest.java| 206 ++- 4 files changed, 185 insertions(+), 59 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9d649d69/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 8c0d8f0..4eb03e5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -19,6 +19,8 @@ * Round buffer size to powers of 2 for the chunk cache (CASSANDRA-13897) * Update jackson JSON jars (CASSANDRA-13949) * Avoid locks when checking LCS fanout and if we should defrag (CASSANDRA-13930) + * Correctly count range tombstones in traces and tombstone thresholds (CASSANDRA-8527) + Merged from 3.0: * Handle failure when mutating repaired status in Verifier (CASSANDRA-13933) * Set encoding for javadoc generation (CASSANDRA-14154) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9d649d69/src/java/org/apache/cassandra/db/ReadCommand.java -- diff --git a/src/java/org/apache/cassandra/db/ReadCommand.java b/src/java/org/apache/cassandra/db/ReadCommand.java index ab8779e..c8b256a 100644 --- a/src/java/org/apache/cassandra/db/ReadCommand.java +++ b/src/java/org/apache/cassandra/db/ReadCommand.java @@ -485,17 +485,37 @@ public abstract class ReadCommand extends MonitorableImpl implements ReadQuery return applyToRow(row); } +/** + * Count the number of live rows returned by the read command and the number of tombstones. + * + * Tombstones come in two forms on rows : + * - cells that aren't live anymore (either expired through TTL or deleted) : 1 tombstone per cell + * - Rows that aren't live and have no cell (DELETEs performed on the primary key) : 1 tombstone per row + * We avoid counting rows as tombstones if they contain nothing but expired cells. + */ @Override public Row applyToRow(Row row) { -if (row.hasLiveData(ReadCommand.this.nowInSec(), enforceStrictLiveness)) -++liveRows; - +boolean hasTombstones = false; for (Cell cell : row.cells()) { if (!cell.isLive(ReadCommand.this.nowInSec())) +{ countTombstone(row.clustering()); +hasTombstones = true; // allows to avoid counting an extra tombstone if the whole row expired +} } + +if (row.hasLiveData(ReadCommand.this.nowInSec(), enforceStrictLiveness)) +++liveRows; +else if (!row.primaryKeyLivenessInfo().isLive(ReadCommand.this.nowInSec()) +&& row.hasDeletion(ReadCommand.this.nowInSec()) +&& !hasTombstones) +{ +// We're counting primary key deletions only here. +countTombstone(row.clustering()); +} + return row; } @@ -528,12 +548,16 @@ public abstract class ReadCommand extends MonitorableImpl implements ReadQuery boolean warnTombstones = tombstones > warningThreshold && respectTombstoneThresholds; if (warnTombstones) { -String msg = String.format("Read %d live rows and %d tombstone cells for query %1.512s
[1/2] cassandra git commit: Count deleted rows scanned during reads for tracing and warning tombstone thresholds.
Repository: cassandra Updated Branches: refs/heads/trunk 0f58f6c65 -> b2d20d4bb Count deleted rows scanned during reads for tracing and warning tombstone thresholds. If a row is read but is not live anymore (which happens with row level tombstones) it is not counted anywhere in the metrics nor reported in tracing. Row tombstones themselves are not reported anywhere. The consequence is that some delete heavy workloads will show no tombstone read but endure severe performance issues. This commit counts deleted rows as standard tombstone cells. Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/419552a9 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/419552a9 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/419552a9 Branch: refs/heads/trunk Commit: 419552a93f4e164dfce3cb6fea15328abade5d3f Parents: 0ac5a17 Author: Alexander Dejanovski Authored: Mon Dec 18 18:27:44 2017 +0100 Committer: Jon Haddad Committed: Thu Jan 11 11:24:59 2018 -0800 -- .../org/apache/cassandra/db/ReadCommand.java| 26 ++- .../apache/cassandra/metrics/TableMetrics.java | 2 +- .../apache/cassandra/db/ReadCommandTest.java| 171 +++ 3 files changed, 193 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/419552a9/src/java/org/apache/cassandra/db/ReadCommand.java -- diff --git a/src/java/org/apache/cassandra/db/ReadCommand.java b/src/java/org/apache/cassandra/db/ReadCommand.java index 1d74c16..128f8f3 100644 --- a/src/java/org/apache/cassandra/db/ReadCommand.java +++ b/src/java/org/apache/cassandra/db/ReadCommand.java @@ -433,14 +433,26 @@ public abstract class ReadCommand extends MonitorableImpl implements ReadQuery @Override public Row applyToRow(Row row) { -if (row.hasLiveData(ReadCommand.this.nowInSec(), enforceStrictLiveness)) -++liveRows; - +boolean hasTombstones = false; for (Cell cell : row.cells()) { if (!cell.isLive(ReadCommand.this.nowInSec())) +{ countTombstone(row.clustering()); +hasTombstones = true; // allows to avoid counting an extra tombstone if the whole row expired +} } + +if (row.hasLiveData(ReadCommand.this.nowInSec(), enforceStrictLiveness)) +++liveRows; +else if (!row.primaryKeyLivenessInfo().isLive(ReadCommand.this.nowInSec()) +&& row.hasDeletion(ReadCommand.this.nowInSec()) +&& !hasTombstones) +{ +// We're counting primary key deletions only here. +countTombstone(row.clustering()); +} + return row; } @@ -474,7 +486,9 @@ public abstract class ReadCommand extends MonitorableImpl implements ReadQuery boolean warnTombstones = tombstones > warningThreshold && respectTombstoneThresholds; if (warnTombstones) { -String msg = String.format("Read %d live rows and %d tombstone cells for query %1.512s (see tombstone_warn_threshold)", liveRows, tombstones, ReadCommand.this.toCQLString()); +String msg = String.format( +"Read %d live rows and %d tombstone cells for query %1.512s (see tombstone_warn_threshold)", +liveRows, tombstones, ReadCommand.this.toCQLString()); ClientWarn.instance.warn(msg); if (tombstones < failureThreshold) { @@ -484,7 +498,9 @@ public abstract class ReadCommand extends MonitorableImpl implements ReadQuery logger.warn(msg); } -Tracing.trace("Read {} live and {} tombstone cells{}", liveRows, tombstones, (warnTombstones ? " (see tombstone_warn_threshold)" : "")); +Tracing.trace("Read {} live rows and {} tombstone cells{}", +liveRows, tombstones, +(warnTombstones ? " (see tombstone_warn_threshold)" : "")); } }; http://git-wip-us.apache.org/repos/asf/cassandra/blob/419552a9/src/java/org/apache/cassandra/metrics/TableMetrics.java -- diff --git a/src/java/org/apache/cassandra/metrics/TableMetrics.java b/src/java/org/apache/cassandra/metrics/TableMetrics.java index 5c4a849..7ce2f16 100644 --- a/src/java/org/apache/cassandra/metrics/TableMetrics.java +++ b/src/
[2/2] cassandra git commit: Count deleted rows scanned during reads for tracing and warning tombstone thresholds.
Count deleted rows scanned during reads for tracing and warning tombstone thresholds. If a row is read but is not live anymore (which happens with row level tombstones) it is not counted anywhere in the metrics nor reported in tracing. Row tombstones themselves are not reported anywhere. The consequence is that some delete heavy workloads will show no tombstone read but endure severe performance issues. This commit counts deleted rows as standard tombstone cells. Patch by Alexander Dejanovski; Reviewed by Jon Haddad for CASSANDRA-8527 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b2d20d4b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b2d20d4b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b2d20d4b Branch: refs/heads/trunk Commit: b2d20d4bb10e73935a97d6fbd848e4cb649c105c Parents: 0f58f6c 419552a Author: Jon Haddad Authored: Thu Feb 8 10:50:14 2018 -0800 Committer: Jon Haddad Committed: Thu Feb 8 10:50:14 2018 -0800 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/ReadCommand.java| 26 ++- .../apache/cassandra/metrics/TableMetrics.java | 2 +- .../apache/cassandra/db/ReadCommandTest.java| 169 +++ 4 files changed, 192 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b2d20d4b/CHANGES.txt -- diff --cc CHANGES.txt index 191caaf,bc2645f..c7c1b6f --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -186,6 -174,6 +186,7 @@@ * Switch to client init for sstabledump (CASSANDRA-13683) * CQLSH: Don't pause when capturing data (CASSANDRA-13743) * nodetool clearsnapshot requires --all to clear all snapshots (CASSANDRA-13391) ++ * Correctly count range tombstones in traces and tombstone thresholds (CASSANDRA-8527) 3.11.2 http://git-wip-us.apache.org/repos/asf/cassandra/blob/b2d20d4b/test/unit/org/apache/cassandra/db/ReadCommandTest.java -- - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra git commit: Updated NEWS.txt with details on change to nodetool snapshot.
Repository: cassandra Updated Branches: refs/heads/trunk 21be9d2f5 -> 45c7c4561 Updated NEWS.txt with details on change to nodetool snapshot. Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/45c7c456 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/45c7c456 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/45c7c456 Branch: refs/heads/trunk Commit: 45c7c456167e77cb7e8cdf161bc4350deba08aef Parents: 21be9d2 Author: Jon Haddad Authored: Mon Jan 8 15:19:37 2018 -0800 Committer: Jon Haddad Committed: Mon Jan 8 15:19:37 2018 -0800 -- NEWS.txt | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/45c7c456/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 259507e..06d73ea 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -101,6 +101,8 @@ Upgrading Batch mode remains a valid commit log mode, however. - There is a new commit log mode, group, which is similar to batch mode but blocks for up to a configurable number of milliseconds between disk flushes. + - nodetool clearsnapshot now required the --all flag to remove all snapshots. + Previous behavior would delete all snapshots by default. Materialized Views --- - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra git commit: Fixed changes to reflect CASSANDRA-13391
Repository: cassandra Updated Branches: refs/heads/trunk b3d2940a0 -> e2e28a02e Fixed changes to reflect CASSANDRA-13391 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e2e28a02 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e2e28a02 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e2e28a02 Branch: refs/heads/trunk Commit: e2e28a02e8d77d925b72e435146d938ca102cacb Parents: b3d2940 Author: Jon Haddad Authored: Wed Dec 27 18:50:42 2017 -0800 Committer: Jon Haddad Committed: Wed Dec 27 18:50:42 2017 -0800 -- CHANGES.txt | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e2e28a02/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 3826190..ba0f842 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -172,6 +172,7 @@ * Anticompaction can cause noisy log messages (CASSANDRA-13684) * Switch to client init for sstabledump (CASSANDRA-13683) * CQLSH: Don't pause when capturing data (CASSANDRA-13743) + * nodetool clearsnapshot requires --all to clear all snapshots (CASSANDRA-13391) 3.11.2 - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra git commit: Added --all to ClearSnapshot command, so entering the command without a parameter will now throw an exception instead of deleting all the snapshots.
Repository: cassandra Updated Branches: refs/heads/trunk 702d9f1f0 -> b3d2940a0 Added --all to ClearSnapshot command, so entering the command without a parameter will now throw an exception instead of deleting all the snapshots. Patch by Barak Merimovich, Review by Jon Haddad for CASSANDRA-13391. Closes #182. Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b3d2940a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b3d2940a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b3d2940a Branch: refs/heads/trunk Commit: b3d2940a073f98c7776e1d0a391749b44df04ace Parents: 702d9f1 Author: Jon Haddad Authored: Wed Dec 27 18:46:49 2017 -0800 Committer: Jon Haddad Committed: Wed Dec 27 18:46:49 2017 -0800 -- .../service/EmbeddedCassandraService.java | 5 + .../cassandra/tools/nodetool/ClearSnapshot.java | 13 +- .../cassandra/tools/ClearSnapshotTest.java | 119 +++ 3 files changed, 136 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b3d2940a/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java -- diff --git a/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java b/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java index 9dc92d7..9172eab 100644 --- a/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java +++ b/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java @@ -50,4 +50,9 @@ public class EmbeddedCassandraService cassandraDaemon.init(null); cassandraDaemon.start(); } + +public void stop() +{ +cassandraDaemon.stop(); +} } http://git-wip-us.apache.org/repos/asf/cassandra/blob/b3d2940a/src/java/org/apache/cassandra/tools/nodetool/ClearSnapshot.java -- diff --git a/src/java/org/apache/cassandra/tools/nodetool/ClearSnapshot.java b/src/java/org/apache/cassandra/tools/nodetool/ClearSnapshot.java index 10a8117..12322d0 100644 --- a/src/java/org/apache/cassandra/tools/nodetool/ClearSnapshot.java +++ b/src/java/org/apache/cassandra/tools/nodetool/ClearSnapshot.java @@ -40,9 +40,18 @@ public class ClearSnapshot extends NodeToolCmd @Option(title = "snapshot_name", name = "-t", description = "Remove the snapshot with a given name") private String snapshotName = EMPTY; +@Option(title = "clear_all_snapshots", name = "--all", description = "Removes all snapshots") +private boolean clearAllSnapshots = false; + @Override public void execute(NodeProbe probe) { +if(snapshotName.isEmpty() && !clearAllSnapshots) +throw new RuntimeException("Specify snapshot name or --all"); + +if(!snapshotName.isEmpty() && clearAllSnapshots) +throw new RuntimeException("Specify only one of snapshot name or --all"); + StringBuilder sb = new StringBuilder(); sb.append("Requested clearing snapshot(s) for "); @@ -52,7 +61,9 @@ public class ClearSnapshot extends NodeToolCmd else sb.append("[").append(join(keyspaces, ", ")).append("]"); -if (!snapshotName.isEmpty()) +if (snapshotName.isEmpty()) +sb.append(" with [all snapshots]"); +else sb.append(" with snapshot name [").append(snapshotName).append("]"); System.out.println(sb.toString()); http://git-wip-us.apache.org/repos/asf/cassandra/blob/b3d2940a/test/unit/org/apache/cassandra/tools/ClearSnapshotTest.java -- diff --git a/test/unit/org/apache/cassandra/tools/ClearSnapshotTest.java b/test/unit/org/apache/cassandra/tools/ClearSnapshotTest.java new file mode 100644 index 000..6b132ab --- /dev/null +++ b/test/unit/org/apache/cassandra/tools/ClearSnapshotTest.java @@ -0,0 +1,119 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +pack
cassandra git commit: Created docker configuration to build sphinx docs.
Repository: cassandra Updated Branches: refs/heads/trunk 46f2397ab -> db81f6bff Created docker configuration to build sphinx docs. Patch by Joaquin Casares; Reviewed by Jon Haddad for CASSANDRA-13915. This closes #154 (GH PR) Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/db81f6bf Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/db81f6bf Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/db81f6bf Branch: refs/heads/trunk Commit: db81f6bffef1a8215fec28bb0522dc9684870627 Parents: 46f2397 Author: Jon Haddad Authored: Mon Dec 4 13:48:51 2017 -0800 Committer: Jon Haddad Committed: Mon Dec 4 13:49:10 2017 -0800 -- build.xml | 1 + doc/Dockerfile| 17 + doc/README.md | 22 ++ doc/docker-compose.yml| 9 + doc/source/cql/operators.rst | 2 -- doc/source/development/gettingstarted.rst | 8 6 files changed, 53 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/db81f6bf/build.xml -- diff --git a/build.xml b/build.xml index 1608fba..7c63c82 100644 --- a/build.xml +++ b/build.xml @@ -204,6 +204,7 @@ +
cassandra git commit: Document speculative_retry case-insensitivity and new "P" suffix on DDL page
Repository: cassandra Updated Branches: refs/heads/trunk 9e7a401b9 -> 976f48fb0 Document speculative_retry case-insensitivity and new "P" suffix on DDL page Patch by Jordan Vaughan for CASSANDRA-13872; Reviewed by Jon Haddad Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/976f48fb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/976f48fb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/976f48fb Branch: refs/heads/trunk Commit: 976f48fb0664b15e1741a435447e593ad80edc4a Parents: 9e7a401 Author: Jordan Vaughan Authored: Thu Nov 2 00:12:09 2017 -0700 Committer: Jon Haddad Committed: Tue Nov 7 12:19:17 2017 -0800 -- doc/source/cql/ddl.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/976f48fb/doc/source/cql/ddl.rst -- diff --git a/doc/source/cql/ddl.rst b/doc/source/cql/ddl.rst index a09265b..780a412 100644 --- a/doc/source/cql/ddl.rst +++ b/doc/source/cql/ddl.rst @@ -493,7 +493,7 @@ Speculative retry options By default, Cassandra read coordinators only query as many replicas as necessary to satisfy consistency levels: one for consistency level ``ONE``, a quorum for ``QUORUM``, and so on. ``speculative_retry`` determines when coordinators may query additional replicas, which is useful -when replicas are slow or unresponsive. The following are legal values: +when replicas are slow or unresponsive. The following are legal values (case-insensitive): = = FormatExample Description @@ -502,6 +502,7 @@ when replicas are slow or unresponsive. The following are legal values: If a replica takes longer than ``X`` percent of this table's average response time, the coordinator queries an additional replica. ``X`` must be between 0 and 100. + ``XP``90.5PSynonym for ``XPERCENTILE`` ``Yms`` 25ms If a replica takes more than ``Y`` milliseconds to respond, the coordinator queries an additional replica. ``ALWAYS`` Coordinators always query all replicas. - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra git commit: Document speculative_retry on the Cassandra DDL page
Repository: cassandra Updated Branches: refs/heads/trunk 569c6abcf -> bc5ad7bfa Document speculative_retry on the Cassandra DDL page Patch by Jordan Vaughan; Reviewed by Jon Haddad for CASSANDRA-13872 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bc5ad7bf Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bc5ad7bf Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bc5ad7bf Branch: refs/heads/trunk Commit: bc5ad7bfa949cd566919e8ba28b327514d98c132 Parents: 569c6ab Author: Jordan Vaughan Authored: Sat Oct 28 15:57:15 2017 -0700 Committer: Jon Haddad Committed: Mon Oct 30 16:44:02 2017 -0700 -- doc/source/cql/ddl.rst | 31 +++ 1 file changed, 31 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/bc5ad7bf/doc/source/cql/ddl.rst -- diff --git a/doc/source/cql/ddl.rst b/doc/source/cql/ddl.rst index 6361983..a09265b 100644 --- a/doc/source/cql/ddl.rst +++ b/doc/source/cql/ddl.rst @@ -462,6 +462,9 @@ A table supports the following options: || | | belonging to the same data center than the read | || | | coordinator for the purpose of read repairs. | ++--+-+---+ +| ``speculative_retry`` | *simple* | 99PERCENTILE| :ref:`Speculative retry options | +|| | | `. | +++--+-+---+ | ``gc_grace_seconds`` | *simple* | 864000 | Time to wait before garbage collecting tombstones | || | | (deletion markers). | ++--+-+---+ @@ -482,6 +485,34 @@ A table supports the following options: | ``memtable_flush_period_in_ms``| *simple* | 0 | Time (in ms) before Cassandra flushes memtables to disk. | ++--+-+---+ +.. _speculative-retry-options: + +Speculative retry options +# + +By default, Cassandra read coordinators only query as many replicas as necessary to satisfy +consistency levels: one for consistency level ``ONE``, a quorum for ``QUORUM``, and so on. +``speculative_retry`` determines when coordinators may query additional replicas, which is useful +when replicas are slow or unresponsive. The following are legal values: + += = + FormatExample Description += = + ``XPERCENTILE`` 90.5PERCENTILE Coordinators record average per-table response times for all replicas. +If a replica takes longer than ``X`` percent of this table's average +response time, the coordinator queries an additional replica. +``X`` must be between 0 and 100. + ``Yms`` 25ms If a replica takes more than ``Y`` milliseconds to respond, +the coordinator queries an additional replica. + ``ALWAYS`` Coordinators always query all replicas. + ``NONE`` Coordinators never query additional replicas. += = + +This setting does not affect reads with consistency level ``ALL`` because they already query all replicas. + +Note that frequently reading from additional replicas can hurt cluster performance. +When in doubt, keep the default ``99PERCENTILE``. + .. _cql-compaction-options: Compaction options - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra git commit: Added documentation for memtable_flush_period_in_ms
Repository: cassandra Updated Branches: refs/heads/trunk 912fdb3ea -> f249cd769 Added documentation for memtable_flush_period_in_ms Patch by Jon Haddad; reviewed by Jason Brown for CASSANDRA-13902 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f249cd76 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f249cd76 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f249cd76 Branch: refs/heads/trunk Commit: f249cd76987290c564a1e4e1e7f9168f9a9ec005 Parents: 912fdb3 Author: Jon Haddad Authored: Wed Oct 18 05:20:39 2017 -0700 Committer: Jon Haddad Committed: Wed Oct 18 05:42:23 2017 -0700 -- doc/source/cql/ddl.rst | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f249cd76/doc/source/cql/ddl.rst -- diff --git a/doc/source/cql/ddl.rst b/doc/source/cql/ddl.rst index c17d8c9..6361983 100644 --- a/doc/source/cql/ddl.rst +++ b/doc/source/cql/ddl.rst @@ -479,6 +479,8 @@ A table supports the following options: ++--+-+---+ | ``caching``| *map*| *see below* | :ref:`Caching options `. | ++--+-+---+ +| ``memtable_flush_period_in_ms``| *simple* | 0 | Time (in ms) before Cassandra flushes memtables to disk. | +++--+-+---+ .. _cql-compaction-options: - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra git commit: Added examples for compression and compaction
Repository: cassandra Updated Branches: refs/heads/trunk 34dec4c79 -> faa27d0fc Added examples for compression and compaction patch by Jon Haddad; reviewed by Aleksey Yeschenko for CASSANDRA-13822 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/faa27d0f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/faa27d0f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/faa27d0f Branch: refs/heads/trunk Commit: faa27d0fc6966ad1b54a57cd814dc62b8ef3c502 Parents: 34dec4c Author: Jon Haddad Authored: Fri Sep 8 12:38:21 2017 -0700 Committer: Jon Haddad Committed: Fri Sep 8 13:39:22 2017 -0700 -- doc/source/cql/ddl.rst | 24 +++- 1 file changed, 23 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/faa27d0f/doc/source/cql/ddl.rst -- diff --git a/doc/source/cql/ddl.rst b/doc/source/cql/ddl.rst index 756b18e..c17d8c9 100644 --- a/doc/source/cql/ddl.rst +++ b/doc/source/cql/ddl.rst @@ -512,7 +512,7 @@ available: compression. Custom compressor can be provided by specifying the full class name as a âstring constantâ:#constants. ``enabled`` trueEnable/disable sstable compression. - ``chunk_length_in_kb``64KBOn disk SSTables are compressed by block (to allow random reads). This + ``chunk_length_in_kb``64 On disk SSTables are compressed by block (to allow random reads). This defines the size (in KB) of said block. Bigger values may improve the compression rate, but increases the minimum size of data to be read from disk for a read @@ -524,6 +524,17 @@ available: instance to check them every other read | = === = + +For instance, to create a table with LZ4Compressor and a chunk_lenth_in_kb of 4KB:: + + CREATE TABLE simple ( + id int, + key text, + value text, + PRIMARY KEY (key, value) + ) with compression = {'class': 'LZ4Compressor', 'chunk_length_in_kb': 4}; + + .. _cql-caching-options: Caching options @@ -543,6 +554,17 @@ sub-options are available: to disable row caching. = + +For instance, to create a table with both a key cache and 10 rows per partition:: + +CREATE TABLE simple ( +id int, +key text, +value text, +PRIMARY KEY (key, value) +) WITH caching = {'keys': 'ALL', 'rows_per_partition': 10}; + + Other considerations: # - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra git commit: Added examples for compression and compaction
Repository: cassandra Updated Branches: refs/heads/cassandra-3.11 260475d0f -> 0fdbcc389 Added examples for compression and compaction patch by Jon Haddad; reviewed by Aleksey Yeschenko for CASSANDRA-13822 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0fdbcc38 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0fdbcc38 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0fdbcc38 Branch: refs/heads/cassandra-3.11 Commit: 0fdbcc389d83ea5dce40b3ba952c4144ceced795 Parents: 260475d Author: Jon Haddad Authored: Fri Sep 8 12:38:21 2017 -0700 Committer: Jon Haddad Committed: Fri Sep 8 13:41:03 2017 -0700 -- doc/source/cql/ddl.rst | 24 +++- 1 file changed, 23 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0fdbcc38/doc/source/cql/ddl.rst -- diff --git a/doc/source/cql/ddl.rst b/doc/source/cql/ddl.rst index 9c1946e..be87a7d 100644 --- a/doc/source/cql/ddl.rst +++ b/doc/source/cql/ddl.rst @@ -513,7 +513,7 @@ available: compression. Custom compressor can be provided by specifying the full class name as a âstring constantâ:#constants. ``enabled`` trueEnable/disable sstable compression. - ``chunk_length_in_kb``64KBOn disk SSTables are compressed by block (to allow random reads). This + ``chunk_length_in_kb``64 On disk SSTables are compressed by block (to allow random reads). This defines the size (in KB) of said block. Bigger values may improve the compression rate, but increases the minimum size of data to be read from disk for a read @@ -525,6 +525,17 @@ available: instance to check them every other read | = === = + +For instance, to create a table with LZ4Compressor and a chunk_lenth_in_kb of 4KB:: + + CREATE TABLE simple ( + id int, + key text, + value text, + PRIMARY KEY (key, value) + ) with compression = {'class': 'LZ4Compressor', 'chunk_length_in_kb': 4}; + + .. _cql-caching-options: Caching options @@ -544,6 +555,17 @@ sub-options are available: to disable row caching. = + +For instance, to create a table with both a key cache and 10 rows per partition:: + +CREATE TABLE simple ( +id int, +key text, +value text, +PRIMARY KEY (key, value) +) WITH caching = {'keys': 'ALL', 'rows_per_partition': 10}; + + Other considerations: # - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org