cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joseph Lynch (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-14557) Consider adding default and required keyspace replication options
Date Mon, 23 Jul 2018 16:54:00 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-14557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16553108#comment-16553108
] 

Joseph Lynch commented on CASSANDRA-14557:
------------------------------------------

[~KurtG] I believe the current state of the patch is to provide the options and implement
{{SimpleStrategy}}. We need CASSANDRA-14303 I believe to add support for {{NetworkTopologyStrategy}}.
I think for CASSANDRA-14303 the default would only apply only if no datacenters were given
in the declaration at all, e.g. {{{'class': 'NetworkTopologyStrategy'}}} would be equivalent
to {{{'class': 'NetworkTopologyStrategy', 'default_datacenter_replication': 3}}}. The adding
a datacenter flow is covered in CASSANDRA-14303 but briefly it relies on the autoexpansion
only to happen at {{CREATE}} or {{ALTER}} time. If you don't supply {{default_datacenter_replication}} but
do supply explicit datacenters everything works the same as in the past, if you do supply
it then any datacenters that exist but are not specified in the {{CREATE/ALTER}} statement
get that default value added. The minimum validation catches e.g. {{{'class': 'NetworkTopologyStrategy',
'default_datacenter_replication': 1}}}

Removing a datacenter is slightly trickier because of the minimum rf validation (to remove
a datacenter in the presence of {{default_datacenter_replication}} you have to provide an
excluded datacenter with RF=0), but I think it will still work because the validation happens
after we template out the replication map.

 

> Consider adding default and required keyspace replication options
> -----------------------------------------------------------------
>
>                 Key: CASSANDRA-14557
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14557
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Configuration
>            Reporter: Sumanth Pasupuleti
>            Assignee: Sumanth Pasupuleti
>            Priority: Minor
>              Labels: 4.0-feature-freeze-review-requested
>             Fix For: 4.0
>
>         Attachments: 14557-trunk.txt
>
>
> Ending up with a keyspace of RF=1 is unfortunately pretty easy in C* right now - the
system_auth table for example is created with RF=1 (to take into account single node setups
afaict from CASSANDRA-5112), and a user can further create a keyspace with RF=1 posing availability
and streaming risks (e.g. rebuild).
> I propose we add two configuration options in cassandra.yaml:
>  # {{default_keyspace_rf}} (default: 1) - If replication factors are not specified, use
this number.
>  # {{required_minimum_keyspace_rf}} (default: unset) - Prevent users from creating a
keyspace with an RF less than what is configured
> These settings could further be re-used to:
>  * Provide defaults for new keyspaces created with SimpleStrategy or NetworkTopologyStrategy
(CASSANDRA-14303)
>  * Make the automatic token [allocation algorithm|https://issues.apache.org/jira/browse/CASSANDRA-13701?focusedCommentId=16095662&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16095662]
interface more intuitive allowing easy use of the new token allocation algorithm.
> At the end of the day, if someone really wants to allow RF=1, they simply don’t set
the setting. For backwards compatibility the default remains 1 and C* would create with RF=1,
and would default to current behavior of allowing any RF on keyspaces.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


Mime
View raw message