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

Consistency can be violated when bootstrap or decommission is resumed after node restart

    XMLWordPrintableJSON

Details

    • Correctness - Consistency
    • Normal
    • Low Hanging Fruit
    • User Report
    • All
    • None

    Description

      Since CASSANDRA-12008, successfully transferred ranges during decommission are saved on the system.transferred_ranges table. This allow skipping ranges already transferred when a failed decommission is retried with nodetool decommission.

      If instead of resuming the decommission, an operator restarts the node, waits N minutes and then performs a new decommission, the previously transferred ranges will be skipped during streaming, and any writes received by the decommissioned node during these N minutes will not be replicated to the new range owner, what violates consistency.

      This issue is analogous to the issue mentioned on this comment for resumable bootstrap (CASSANDRA-8838).

      In order to prevent consistency violations we should clear the system.transferred_ranges state during node restart, and maybe a system property to disable it. While we're at this, we should change the default of -Dcassandra.reset_bootstrap_progress to true to clear the system.available_ranges state by default when a bootstrapping node is restarted.

      Attachments

        Issue Links

          Activity

            People

              bkowalczyyk Bartlomiej
              paulo Paulo Motta
              Bartlomiej
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

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