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

Sumanth Pasupuleti edited comment on CASSANDRA-14557 at 8/7/18 8:06 PM:
------------------------------------------------------------------------

Thanks for reviewing [[email protected]]

{quote}Don't we have to apply minimum keyspace RF check for system 
keyspaces?{quote}
System keyspace creation *does* go through the minimum keyspace rf check. So, 
if someone configures default_keyspace_rf = 1 and minimum_keyspace_rf=2, 
Cassandra fails to start, since system keyspace creation fails because of the 
check.

{quote}Think about renaming parsedRf to something more meaningful maybe 
userSuppliedRF:{quote}
It could be both a user/system passed rf. Method parameter name has not been 
refactored (rf) as part of this ticket. Named this as parsedRf because we are 
parsing rf to int, and we wanted to avoid having to parse to int multiple times 
in the code.

{quote} Have a consistent way of formatting string in Exception message{quote}
Fixed; pushed a commit 
[7ee2827a3fd6a8f1550d9c0eec8f039b6ad6c74c|https://github.com/sumanth-pasupuleti/cassandra/commit/7ee2827a3fd6a8f1550d9c0eec8f039b6ad6c74c]

Updated attached patch file


was (Author: sumanth.pasupuleti):
Thanks for reviewing [[email protected]]

{quote}Don't we have to apply minimum keyspace RF check for system 
keyspaces?{quote}
System keyspace creation *does* go through the minimum keyspace rf check. So, 
if someone configures default_keyspace_rf = 1 and minimum_keyspace_rf=2, 
Cassandra fails to start, since system keyspace creation fails because of the 
check.

{quote}Think about renaming parsedRf to something more meaningful maybe 
userSuppliedRF:{quote}
It could be both a user/system passed rf. Method parameter name has not been 
refactored (rf) as part of this ticket. Named this as parsedRf because we are 
parsing rf to int, and we wanted to avoid having to parse to int multiple times 
in the code.

{quote} Have a consistent way of formatting string in Exception message{quote}
Fixed; pushed a commit 
[7ee2827a3fd6a8f1550d9c0eec8f039b6ad6c74c|https://github.com/sumanth-pasupuleti/cassandra/commit/7ee2827a3fd6a8f1550d9c0eec8f039b6ad6c74c]

> 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to