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

Add 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-4.0.txt
          29 kB
          Sumanth Pasupuleti
        2. 14557-trunk.patch
          29 kB
          Sumanth Pasupuleti

        Issue Links

          Activity

            People

              sumanth.pasupuleti Sumanth Pasupuleti
              sumanth.pasupuleti Sumanth Pasupuleti
              Sumanth Pasupuleti
              Aleksei Zotov, Stefan Miklosovic
              Votes:
              1 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 10m
                  10m