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

Send writes to stable replicas when replicate-on-write is disabled during bootstrap

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Low
    • Resolution: Won't Fix
    • None
    • None
    • None
    • Low

    Description

      During bootstrap with replicate-on-write disabled, our previous approach of widening the replica set via TokenMetadata.getWriteEndpoints is not the correct approach. Instead, since a write is not immediately bound for all replicas, it needs to be sent to a replica that isn't joining or leaving the replica set due to bootstrap.

      Example: with rf=3, 4 nodes are active in a particular replica set: 1 is joining the set, 1 is leaving the set, and 2 are stable in the set (not affected by the bootstrap). The 2 stable nodes are the ones to which it is "safe" to send un-replicated writes during the bootstrap.

      Note that running without replicate-on-write enabled is never recommended, but while the setting exists, we should do the right thing.

      Attachments

        Issue Links

          Activity

            People

              stuhood Stu Hood
              stuhood Stu Hood
              Stu Hood
              Sylvain Lebresne
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: