From d6b0c4dda40cfffd1482a5681bf941ec4f5e805d Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Wed, 8 Aug 2018 09:30:03 +0300 Subject: [PATCH] config: default murmur3_ignore_msb_bits to 12 even if not specified in scylla.yaml When murmur3_ignore_msb_bits was introduced in 1.7, we set its default zero (to avoid resharding on upgrade) and set it to 12 in the scylla.yaml template (to make sure we get the right value for new clusters). Now, however, things have changed: - clusters installed before 1.7 are a small minority - they should have resharded long ago - resharding is much better these days - we have more migrations from Cassandra compared to old clusters To allow clusters that migrated using their cassandra.yaml, and to clean up the default scylla.yaml, make the default 12. Users upgrading from pre-1.7 clusters will need to update their scylla.yaml, or to reshard (which is a good idea anyway). Fixes #3670. Message-Id: <20180808063003.26046-1-avi@scylladb.com> --- conf/scylla.yaml | 20 -------------------- db/config.hh | 2 +- 2 files changed, 1 insertion(+), 21 deletions(-) diff --git a/conf/scylla.yaml b/conf/scylla.yaml index 790a40e819..da7496e93b 100644 --- a/conf/scylla.yaml +++ b/conf/scylla.yaml @@ -781,23 +781,3 @@ commitlog_total_space_in_mb: -1 # By default, Scylla binds all interfaces to the prometheus API # It is possible to restrict the listening address to a specific one # prometheus_address: 0.0.0.0 - -# Distribution of data among cores (shards) within a node -# -# Scylla distributes data within a node among shards, using a round-robin -# strategy: -# [shard0] [shard1] ... [shardN-1] [shard0] [shard1] ... [shardN-1] ... -# -# Scylla versions 1.6 and below used just one repetition of the pattern; -# this intefered with data placement among nodes (vnodes). -# -# Scylla versions 1.7 and above use 4096 repetitions of the pattern; this -# provides for better data distribution. -# -# the value below is log (base 2) of the number of repetitions. -# -# Set to 0 to avoid rewriting all data when upgrading from Scylla 1.6 and -# below. -# -# Keep at 12 for new clusters. -murmur3_partitioner_ignore_msb_bits: 12 diff --git a/db/config.hh b/db/config.hh index 588e373237..698ddd88b1 100644 --- a/db/config.hh +++ b/db/config.hh @@ -728,7 +728,7 @@ public: val(prometheus_address, sstring, "0.0.0.0", Used, "Prometheus listening address") \ val(prometheus_prefix, sstring, "scylla", Used, "Set the prefix of the exported Prometheus metrics. Changing this will break Scylla's dashboard compatibility, do not change unless you know what you are doing.") \ val(abort_on_lsa_bad_alloc, bool, false, Used, "Abort when allocation in LSA region fails") \ - val(murmur3_partitioner_ignore_msb_bits, unsigned, 0, Used, "Number of most siginificant token bits to ignore in murmur3 partitioner; increase for very large clusters") \ + val(murmur3_partitioner_ignore_msb_bits, unsigned, 12, Used, "Number of most siginificant token bits to ignore in murmur3 partitioner; increase for very large clusters") \ val(virtual_dirty_soft_limit, double, 0.6, Used, "Soft limit of virtual dirty memory expressed as a portion of the hard limit") \ val(sstable_summary_ratio, double, 0.0005, Used, "Enforces that 1 byte of summary is written for every N (2000 by default) " \ "bytes written to data file. Value must be between 0 and 1.") \