[
https://issues.apache.org/jira/browse/CASSANDRA-14557?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sumanth Pasupuleti updated CASSANDRA-14557:
-------------------------------------------
Description:
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.
was:
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 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.
> 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
> Fix For: 4.0
>
>
> 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: [email protected]
For additional commands, e-mail: [email protected]