Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-14557

Consider adding default and required keyspace replication options

    XMLWordPrintableJSON

    Details

      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:

      1. default_keyspace_rf (default: 1) - If replication factors are not specified, use this number.
      2. 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.

        Attachments

        1. 14557-trunk.patch
          29 kB
          Sumanth Pasupuleti

          Issue Links

            Activity

              People

              • Assignee:
                sumanth.pasupuleti Sumanth Pasupuleti
                Reporter:
                sumanth.pasupuleti Sumanth Pasupuleti
                Authors:
                Sumanth Pasupuleti
              • Votes:
                1 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated: