treewide: remove {dclocal_,}read_repair_chance options

dclocal_read_repair_chance and read_repair_chance have been removed
in Cassandra 3.11 and 4.x, see
https://issues.apache.org/jira/browse/CASSANDRA-13910.
if we expose the properties via DDL, Cassandra would fails to consume
the CQL statement to creating the table when performing migration
from Scylla to Cassandra 4.x, as the latter does not understand
these properties anymore.

currently the default values of `dc_local_read_repair_chance` and
`read_repair_chance` are both "0". so this is practically disabled,
unless user deliberately set them to a value greater than 0.

also, as a side effect, Cassandra 4.x has better support of
Python3. the cqlsh shipped along with Cassandra 3.11.16 only
supports python2.7, see
https://github.com/apache/cassandra/blob/cassandra-3.11.16/bin/cqlsh.py
it errors out if the system only provides python3 with the error
of

```
No appropriate python interpreter found.
```
but modern linux systems do not provide python2 anymore.

so, in this change, we deprecate these two options.

Fixes #3502
Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
This commit is contained in:
Kefu Chai
2024-03-28 20:30:50 +08:00
parent 3363f6e1e8
commit c323c93fa4
14 changed files with 17 additions and 109 deletions

View File

@@ -29,8 +29,6 @@ namespace cql3 {
namespace statements {
const sstring cf_prop_defs::KW_COMMENT = "comment";
const sstring cf_prop_defs::KW_READREPAIRCHANCE = "read_repair_chance";
const sstring cf_prop_defs::KW_DCLOCALREADREPAIRCHANCE = "dclocal_read_repair_chance";
const sstring cf_prop_defs::KW_GCGRACESECONDS = "gc_grace_seconds";
const sstring cf_prop_defs::KW_PAXOSGRACESECONDS = "paxos_grace_seconds";
const sstring cf_prop_defs::KW_MINCOMPACTIONTHRESHOLD = "min_threshold";
@@ -78,7 +76,7 @@ void cf_prop_defs::validate(const data_dictionary::database db, sstring ks_name,
}
static std::set<sstring> keywords({
KW_COMMENT, KW_READREPAIRCHANCE, KW_DCLOCALREADREPAIRCHANCE,
KW_COMMENT,
KW_GCGRACESECONDS, KW_CACHING, KW_DEFAULT_TIME_TO_LIVE,
KW_MIN_INDEX_INTERVAL, KW_MAX_INDEX_INTERVAL, KW_SPECULATIVE_RETRY,
KW_BF_FP_CHANCE, KW_MEMTABLE_FLUSH_PERIOD, KW_COMPACTION,
@@ -89,6 +87,8 @@ void cf_prop_defs::validate(const data_dictionary::database db, sstring ks_name,
sstring("index_interval"),
sstring("replicate_on_write"),
sstring("populate_io_cache_on_flush"),
sstring("read_repair_chance"),
sstring("dclocal_read_repair_chance"),
});
const auto& exts = db.extensions();
@@ -259,14 +259,6 @@ void cf_prop_defs::apply_to_builder(schema_builder& builder, schema::extensions_
builder.set_comment(get_string(KW_COMMENT, ""));
}
if (has_property(KW_READREPAIRCHANCE)) {
builder.set_read_repair_chance(get_double(KW_READREPAIRCHANCE, builder.get_read_repair_chance()));
}
if (has_property(KW_DCLOCALREADREPAIRCHANCE)) {
builder.set_dc_local_read_repair_chance(get_double(KW_DCLOCALREADREPAIRCHANCE, builder.get_dc_local_read_repair_chance()));
}
if (has_property(KW_GCGRACESECONDS)) {
builder.set_gc_grace_seconds(get_int(KW_GCGRACESECONDS, builder.get_gc_grace_seconds()));
}

View File

@@ -36,8 +36,6 @@ namespace statements {
class cf_prop_defs : public property_definitions {
public:
static const sstring KW_COMMENT;
static const sstring KW_READREPAIRCHANCE;
static const sstring KW_DCLOCALREADREPAIRCHANCE;
static const sstring KW_GCGRACESECONDS;
static const sstring KW_PAXOSGRACESECONDS;
static const sstring KW_MINCOMPACTIONTHRESHOLD;

View File

@@ -357,12 +357,6 @@ public:
builder.set_regular_column_name_type(db::schema_tables::parse_type(comparator));
}
if (td.has("read_repair_chance")) {
builder.set_read_repair_chance(td.get_as<double>("read_repair_chance"));
}
if (td.has("local_read_repair_chance")) {
builder.set_dc_local_read_repair_chance(td.get_as<double>("local_read_repair_chance"));
}
if (td.has("gc_grace_seconds")) {
builder.set_gc_grace_seconds(td.get_as<int32_t>("gc_grace_seconds"));
}

View File

@@ -312,6 +312,8 @@ schema_ptr tables() {
{"compaction", map_type_impl::get_instance(utf8_type, utf8_type, false)},
{"compression", map_type_impl::get_instance(utf8_type, utf8_type, false)},
{"crc_check_chance", double_type},
// dclocal_read_repair_chance has been deprecated, preserved to be
// backward compatible
{"dclocal_read_repair_chance", double_type},
{"default_time_to_live", int32_type},
{"extensions", map_type_impl::get_instance(utf8_type, bytes_type, false)},
@@ -321,6 +323,8 @@ schema_ptr tables() {
{"max_index_interval", int32_type},
{"memtable_flush_period_in_ms", int32_type},
{"min_index_interval", int32_type},
// read_repair_chance has been deprecated, preserved to be backward
// compatible
{"read_repair_chance", double_type},
{"speculative_retry", utf8_type},
},
@@ -566,6 +570,8 @@ schema_ptr views() {
{"compaction", map_type_impl::get_instance(utf8_type, utf8_type, false)},
{"compression", map_type_impl::get_instance(utf8_type, utf8_type, false)},
{"crc_check_chance", double_type},
// dclocal_read_repair_chance has been deprecated, preserved to be
// backward compatible
{"dclocal_read_repair_chance", double_type},
{"default_time_to_live", int32_type},
{"extensions", map_type_impl::get_instance(utf8_type, bytes_type, false)},
@@ -575,6 +581,8 @@ schema_ptr views() {
{"max_index_interval", int32_type},
{"memtable_flush_period_in_ms", int32_type},
{"min_index_interval", int32_type},
// read_repair_chance has been deprecated, preserved to be backward
// compatible
{"read_repair_chance", double_type},
{"speculative_retry", utf8_type},
},
@@ -2545,13 +2553,11 @@ std::vector<mutation> make_create_table_mutations(schema_ptr table, api::timesta
static void add_table_params_to_mutations(mutation& m, const clustering_key& ckey, schema_ptr table, api::timestamp_type timestamp) {
m.set_clustered_cell(ckey, "bloom_filter_fp_chance", table->bloom_filter_fp_chance(), timestamp);
m.set_clustered_cell(ckey, "comment", table->comment(), timestamp);
m.set_clustered_cell(ckey, "dclocal_read_repair_chance", table->dc_local_read_repair_chance(), timestamp);
m.set_clustered_cell(ckey, "default_time_to_live", gc_clock::as_int32(table->default_time_to_live()), timestamp);
m.set_clustered_cell(ckey, "gc_grace_seconds", gc_clock::as_int32(table->gc_grace_seconds()), timestamp);
m.set_clustered_cell(ckey, "max_index_interval", table->max_index_interval(), timestamp);
m.set_clustered_cell(ckey, "memtable_flush_period_in_ms", table->memtable_flush_period(), timestamp);
m.set_clustered_cell(ckey, "min_index_interval", table->min_index_interval(), timestamp);
m.set_clustered_cell(ckey, "read_repair_chance", table->read_repair_chance(), timestamp);
m.set_clustered_cell(ckey, "speculative_retry", table->speculative_retry().to_sstring(), timestamp);
m.set_clustered_cell(ckey, "crc_check_chance", table->crc_check_chance(), timestamp);
@@ -3058,10 +3064,6 @@ static void prepare_builder_from_table_row(const schema_ctxt& ctxt, schema_build
builder.set_compressor_params(cp);
}
if (auto val = table_row.get<double>("dclocal_read_repair_chance")) {
builder.set_dc_local_read_repair_chance(*val);
}
if (auto val = table_row.get<int32_t>("default_time_to_live")) {
builder.set_default_time_to_live(gc_clock::duration(*val));
}
@@ -3120,10 +3122,6 @@ static void prepare_builder_from_table_row(const schema_ctxt& ctxt, schema_build
builder.set_max_index_interval(*val);
}
if (auto val = table_row.get<double>("read_repair_chance")) {
builder.set_read_repair_chance(*val);
}
if (auto val = table_row.get<double>("crc_check_chance")) {
builder.set_crc_check_chance(*val);
}

View File

@@ -1240,13 +1240,11 @@ schema_ptr system_keyspace::legacy::column_families() {
{"gc_grace_seconds", int32_type},
{"is_dense", boolean_type},
{"key_validator", utf8_type},
{"local_read_repair_chance", double_type},
{"max_compaction_threshold", int32_type},
{"max_index_interval", int32_type},
{"memtable_flush_period_in_ms", int32_type},
{"min_compaction_threshold", int32_type},
{"min_index_interval", int32_type},
{"read_repair_chance", double_type},
{"speculative_retry", utf8_type},
{"subcomparator", utf8_type},
{"type", utf8_type},

View File

@@ -554,8 +554,6 @@ bool operator==(const schema& x, const schema& y)
&& x._raw._type == y._raw._type
&& x._raw._gc_grace_seconds == y._raw._gc_grace_seconds
&& x.paxos_grace_seconds() == y.paxos_grace_seconds()
&& x._raw._dc_local_read_repair_chance == y._raw._dc_local_read_repair_chance
&& x._raw._read_repair_chance == y._raw._read_repair_chance
&& x._raw._min_compaction_threshold == y._raw._min_compaction_threshold
&& x._raw._max_compaction_threshold == y._raw._max_compaction_threshold
&& x._raw._min_index_interval == y._raw._min_index_interval
@@ -699,8 +697,6 @@ auto fmt::formatter<schema>::format(const schema& s, fmt::format_context& ctx) c
out = fmt::format_to(out, ",cfType={}", cf_type_to_sstring(s._raw._type));
out = fmt::format_to(out, ",comparator={}", cell_comparator::to_sstring(s));
out = fmt::format_to(out, ",comment={}", s._raw._comment);
out = fmt::format_to(out, ",readRepairChance={}", s._raw._read_repair_chance);
out = fmt::format_to(out, ",dcLocalReadRepairChance={}", s._raw._dc_local_read_repair_chance);
out = fmt::format_to(out, ",tombstoneGcOptions={}", s.tombstone_gc_options().to_sstring());
out = fmt::format_to(out, ",gcGraceSeconds={}", s._raw._gc_grace_seconds);
out = fmt::format_to(out, ",keyValidator={}", s.thrift_key_validator());
@@ -959,13 +955,11 @@ std::ostream& schema::describe(replica::database& db, std::ostream& os, bool wit
os << "}";
os << "\n AND crc_check_chance = " << crc_check_chance();
os << "\n AND dclocal_read_repair_chance = " << dc_local_read_repair_chance();
os << "\n AND default_time_to_live = " << default_time_to_live().count();
os << "\n AND gc_grace_seconds = " << gc_grace_seconds().count();
os << "\n AND max_index_interval = " << max_index_interval();
os << "\n AND memtable_flush_period_in_ms = " << memtable_flush_period();
os << "\n AND min_index_interval = " << min_index_interval();
os << "\n AND read_repair_chance = " << read_repair_chance();
os << "\n AND speculative_retry = '" << speculative_retry().to_sstring() << "'";
os << "\n AND paxos_grace_seconds = " << paxos_grace_seconds().count();
os << "\n AND tombstone_gc = {";

View File

@@ -585,8 +585,6 @@ private:
cf_type _type = cf_type::standard;
int32_t _gc_grace_seconds = DEFAULT_GC_GRACE_SECONDS;
std::optional<int32_t> _paxos_grace_seconds;
double _dc_local_read_repair_chance = 0.0;
double _read_repair_chance = 0.0;
double _crc_check_chance = 1;
db::per_partition_rate_limit_options _per_partition_rate_limit_options;
int32_t _min_compaction_threshold = DEFAULT_MIN_COMPACTION_THRESHOLD;
@@ -731,13 +729,6 @@ public:
gc_clock::duration paxos_grace_seconds() const;
double dc_local_read_repair_chance() const {
return _raw._dc_local_read_repair_chance;
}
double read_repair_chance() const {
return _raw._read_repair_chance;
}
double crc_check_chance() const {
return _raw._crc_check_chance;
}

View File

@@ -96,24 +96,6 @@ public:
schema_builder& set_paxos_grace_seconds(int32_t seconds);
schema_builder& set_dc_local_read_repair_chance(double chance) {
_raw._dc_local_read_repair_chance = chance;
return *this;
}
double get_dc_local_read_repair_chance() const {
return _raw._dc_local_read_repair_chance;
}
schema_builder& set_read_repair_chance(double chance) {
_raw._read_repair_chance = chance;
return *this;
}
double get_read_repair_chance() const {
return _raw._read_repair_chance;
}
schema_builder& set_crc_check_chance(double chance) {
_raw._crc_check_chance = chance;
return *this;

View File

@@ -5362,21 +5362,6 @@ public:
}
};
db::read_repair_decision storage_proxy::new_read_repair_decision(const schema& s) {
if (s.dc_local_read_repair_chance() > 0 || s.read_repair_chance() > 0) {
double chance = _read_repair_chance(_urandom);
if (s.read_repair_chance() > chance) {
return db::read_repair_decision::GLOBAL;
}
if (s.dc_local_read_repair_chance() > chance) {
return db::read_repair_decision::DC_LOCAL;
}
}
return db::read_repair_decision::NONE;
}
result<::shared_ptr<abstract_read_executor>> storage_proxy::get_read_executor(lw_shared_ptr<query::read_command> cmd,
locator::effective_replication_map_ptr erm,
schema_ptr schema,
@@ -5553,7 +5538,7 @@ storage_proxy::query_singular(lw_shared_ptr<query::read_command> cmd,
auto erm = table.get_effective_replication_map();
db::read_repair_decision repair_decision = query_options.read_repair_decision
? *query_options.read_repair_decision : new_read_repair_decision(*schema);
? *query_options.read_repair_decision : db::read_repair_decision::NONE;
// Update reads_coordinator_outside_replica_set once per request,
// not once per partition.

View File

@@ -266,7 +266,6 @@ private:
static constexpr float CONCURRENT_SUBREQUESTS_MARGIN = 0.10;
// for read repair chance calculation
std::default_random_engine _urandom;
std::uniform_real_distribution<> _read_repair_chance = std::uniform_real_distribution<>(0,1);
seastar::metrics::metric_groups _metrics;
uint64_t _background_write_throttle_threahsold;
inheriting_concrete_execution_stage<
@@ -346,7 +345,6 @@ private:
// As above with read_repair_decision=NONE, extra=nullptr.
inet_address_vector_replica_set filter_replicas_for_read(db::consistency_level, const locator::effective_replication_map&, const inet_address_vector_replica_set& live_endpoints, const inet_address_vector_replica_set& preferred_endpoints, replica::column_family*) const;
bool is_alive(const gms::inet_address&) const;
db::read_repair_decision new_read_repair_decision(const schema& s);
result<::shared_ptr<abstract_read_executor>> get_read_executor(lw_shared_ptr<query::read_command> cmd,
locator::effective_replication_map_ptr ermp,
schema_ptr schema,

View File

@@ -706,7 +706,7 @@ dynamic_snitch_update_interval_in_ms: 100
# controls how often to reset all host scores, allowing a bad host to
# possibly recover
dynamic_snitch_reset_interval_in_ms: 600000
# if set greater than zero and read_repair_chance is < 1.0, this will allow
# if set greater than zero, this will allow
# 'pinning' of replicas to hosts in order to increase cache capacity.
# The badness threshold will control how much worse the pinned host has to be
# before the dynamic snitch will prefer other replicas over it. This is

View File

@@ -4115,13 +4115,11 @@ SEASTAR_TEST_CASE(test_describe_simple_schema) {
" AND compaction = {'class': 'SizeTieredCompactionStrategy'}\n"
" AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}\n"
" AND crc_check_chance = 1\n"
" AND dclocal_read_repair_chance = 0.1\n"
" AND default_time_to_live = 0\n"
" AND gc_grace_seconds = 864000\n"
" AND max_index_interval = 2048\n"
" AND memtable_flush_period_in_ms = 0\n"
" AND min_index_interval = 128\n"
" AND read_repair_chance = 0\n"
" AND speculative_retry = '99.0PERCENTILE'\n"
" AND paxos_grace_seconds = 43200\n"
" AND tombstone_gc = {'mode': 'timeout', 'propagation_delay_in_seconds': '3600'};\n"
@@ -4139,13 +4137,11 @@ SEASTAR_TEST_CASE(test_describe_simple_schema) {
" AND compaction = {'class': 'SizeTieredCompactionStrategy'}\n"
" AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}\n"
" AND crc_check_chance = 1\n"
" AND dclocal_read_repair_chance = 0.1\n"
" AND default_time_to_live = 0\n"
" AND gc_grace_seconds = 864000\n"
" AND max_index_interval = 2048\n"
" AND memtable_flush_period_in_ms = 0\n"
" AND min_index_interval = 128\n"
" AND read_repair_chance = 0\n"
" AND speculative_retry = '99.0PERCENTILE'\n"
" AND paxos_grace_seconds = 43200\n"
" AND tombstone_gc = {'mode': 'timeout', 'propagation_delay_in_seconds': '3600'};\n"
@@ -4163,13 +4159,11 @@ SEASTAR_TEST_CASE(test_describe_simple_schema) {
" AND compaction = {'class': 'SizeTieredCompactionStrategy'}\n"
" AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}\n"
" AND crc_check_chance = 1\n"
" AND dclocal_read_repair_chance = 0.2\n"
" AND default_time_to_live = 0\n"
" AND gc_grace_seconds = 954000\n"
" AND max_index_interval = 3048\n"
" AND memtable_flush_period_in_ms = 10\n"
" AND min_index_interval = 128\n"
" AND read_repair_chance = 0\n"
" AND speculative_retry = '99.0PERCENTILE'\n"
" AND paxos_grace_seconds = 43200\n"
" AND tombstone_gc = {'mode': 'timeout', 'propagation_delay_in_seconds': '3600'};\n"
@@ -4188,13 +4182,11 @@ SEASTAR_TEST_CASE(test_describe_simple_schema) {
" AND compaction = {'class': 'SizeTieredCompactionStrategy'}\n"
" AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}\n"
" AND crc_check_chance = 1\n"
" AND dclocal_read_repair_chance = 0.2\n"
" AND default_time_to_live = 0\n"
" AND gc_grace_seconds = 954000\n"
" AND max_index_interval = 3048\n"
" AND memtable_flush_period_in_ms = 10\n"
" AND min_index_interval = 128\n"
" AND read_repair_chance = 0\n"
" AND speculative_retry = '99.0PERCENTILE'\n"
" AND paxos_grace_seconds = 43200\n"
" AND tombstone_gc = {'mode': 'timeout', 'propagation_delay_in_seconds': '3600'};\n"
@@ -4212,13 +4204,11 @@ SEASTAR_TEST_CASE(test_describe_simple_schema) {
" AND compaction = {'class': 'SizeTieredCompactionStrategy'}\n"
" AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}\n"
" AND crc_check_chance = 1\n"
" AND dclocal_read_repair_chance = 0.2\n"
" AND default_time_to_live = 0\n"
" AND gc_grace_seconds = 954000\n"
" AND max_index_interval = 3048\n"
" AND memtable_flush_period_in_ms = 10\n"
" AND min_index_interval = 128\n"
" AND read_repair_chance = 0\n"
" AND speculative_retry = '99.0PERCENTILE'\n"
" AND paxos_grace_seconds = 43200\n"
" AND tombstone_gc = {'mode': 'timeout', 'propagation_delay_in_seconds': '3600'};\n"
@@ -4257,13 +4247,11 @@ SEASTAR_TEST_CASE(test_describe_view_schema) {
" AND compaction = {'class': 'SizeTieredCompactionStrategy'}\n"
" AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}\n"
" AND crc_check_chance = 1\n"
" AND dclocal_read_repair_chance = 0.1\n"
" AND default_time_to_live = 0\n"
" AND gc_grace_seconds = 864000\n"
" AND max_index_interval = 2048\n"
" AND memtable_flush_period_in_ms = 0\n"
" AND min_index_interval = 128\n"
" AND read_repair_chance = 0\n"
" AND speculative_retry = '99.0PERCENTILE'\n"
" AND paxos_grace_seconds = 43200\n"
" AND tombstone_gc = {'mode': 'timeout', 'propagation_delay_in_seconds': '3600'};\n";
@@ -4281,13 +4269,11 @@ SEASTAR_TEST_CASE(test_describe_view_schema) {
" AND compaction = {'class': 'SizeTieredCompactionStrategy'}\n"
" AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}\n"
" AND crc_check_chance = 1\n"
" AND dclocal_read_repair_chance = 0.1\n"
" AND default_time_to_live = 0\n"
" AND gc_grace_seconds = 864000\n"
" AND max_index_interval = 2048\n"
" AND memtable_flush_period_in_ms = 0\n"
" AND min_index_interval = 128\n"
" AND read_repair_chance = 0\n"
" AND speculative_retry = '99.0PERCENTILE'\n"
" AND paxos_grace_seconds = 43200\n"
" AND tombstone_gc = {'mode': 'timeout', 'propagation_delay_in_seconds': '3600'};\n"},

View File

@@ -153,9 +153,9 @@ def test_desc_table(cql, test_keyspace, random_seed):
tbl_row = cql.execute(f"""
SELECT keyspace_name, bloom_filter_fp_chance, caching,
comment, compaction, compression, crc_check_chance,
dclocal_read_repair_chance, default_time_to_live, extensions,
default_time_to_live, extensions,
flags, gc_grace_seconds, max_index_interval,
memtable_flush_period_in_ms, min_index_interval, read_repair_chance,
memtable_flush_period_in_ms, min_index_interval,
speculative_retry
FROM system_schema.tables
WHERE keyspace_name='{test_keyspace}' AND table_name='{get_name(tbl)}'
@@ -163,9 +163,9 @@ def test_desc_table(cql, test_keyspace, random_seed):
new_tbl_row = cql.execute(f"""
SELECT keyspace_name, bloom_filter_fp_chance, caching,
comment, compaction, compression, crc_check_chance,
dclocal_read_repair_chance, default_time_to_live, extensions,
default_time_to_live, extensions,
flags, gc_grace_seconds, max_index_interval,
memtable_flush_period_in_ms, min_index_interval, read_repair_chance,
memtable_flush_period_in_ms, min_index_interval,
speculative_retry
FROM system_schema.tables
WHERE keyspace_name='{test_keyspace}' AND table_name='{get_name(new_tbl)}'

View File

@@ -1257,7 +1257,6 @@ private:
cf_def.__set_column_type(cf_type_to_sstring(s->type()));
cf_def.__set_comparator_type(cell_comparator::to_sstring(*s));
cf_def.__set_comment(s->comment());
cf_def.__set_read_repair_chance(s->read_repair_chance());
std::vector<ColumnDef> columns;
if (!s->thrift().is_dynamic()) {
for (auto&& c : s->regular_columns()) {
@@ -1279,7 +1278,6 @@ private:
cf_def.__set_compression_options(make_options(s->get_compressor_params().get_options()));
cf_def.__set_bloom_filter_fp_chance(s->bloom_filter_fp_chance());
cf_def.__set_caching("all");
cf_def.__set_dclocal_read_repair_chance(s->dc_local_read_repair_chance());
cf_def.__set_memtable_flush_period_in_ms(s->memtable_flush_period());
cf_def.__set_default_time_to_live(s->default_time_to_live().count());
cf_def.__set_speculative_retry(s->speculative_retry().to_sstring());
@@ -1366,9 +1364,6 @@ private:
if (cf_def.__isset.comment) {
builder.set_comment(cf_def.comment);
}
if (cf_def.__isset.read_repair_chance) {
builder.set_read_repair_chance(cf_def.read_repair_chance);
}
if (cf_def.__isset.gc_grace_seconds) {
builder.set_gc_grace_seconds(cf_def.gc_grace_seconds);
}
@@ -1393,9 +1388,6 @@ private:
if (cf_def.__isset.bloom_filter_fp_chance) {
builder.set_bloom_filter_fp_chance(cf_def.bloom_filter_fp_chance);
}
if (cf_def.__isset.dclocal_read_repair_chance) {
builder.set_dc_local_read_repair_chance(cf_def.dclocal_read_repair_chance);
}
if (cf_def.__isset.memtable_flush_period_in_ms) {
builder.set_memtable_flush_period(cf_def.memtable_flush_period_in_ms);
}