Cassandra
  1. Cassandra
  2. CASSANDRA-3229

Remove ability to disable dynamic snitch entirely

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Fix Version/s: 1.0.0
    • Component/s: Core
    • Labels:
      None

      Description

      We've moved dynamic snitch from "new, default to off" to "well tested, default to true," and it's time now to take the next step to "there is no reason to disable it, and keeping the option around just lets people shoot their foot off."

      1. 3229.txt
        2 kB
        Jonathan Ellis

        Activity

        Gavin made changes -
        Workflow patch-available, re-open possible [ 12753004 ] reopen-resolved, no closed status, patch-avail, testing [ 12755655 ]
        Gavin made changes -
        Workflow no-reopen-closed, patch-avail [ 12633527 ] patch-available, re-open possible [ 12753004 ]
        Hide
        Brandon Williams added a comment -

        You can use the badness threshold from CASSANDRA-1519

        Show
        Brandon Williams added a comment - You can use the badness threshold from CASSANDRA-1519
        Hide
        david vanderfeesten added a comment -

        we are experimenting with workload split between OLTP and OLAP workload using network topology strategy. The OLTP keyspace has replicas in both (virtual)DCs. OLTP would only be written to nodes in DC1 and only being read as OLAP input in DC2. While we don't know yet if this is the right approach, with dynamic snitch off (and read repair chance:0) in case no nodes are down we hope to avoid OLAP reads to show up in DC1. Without being able to switch off dynamic snitch - I am not sure how we are able to achieve workload split (to be proven if that gives a performance benefit).

        Show
        david vanderfeesten added a comment - we are experimenting with workload split between OLTP and OLAP workload using network topology strategy. The OLTP keyspace has replicas in both (virtual)DCs. OLTP would only be written to nodes in DC1 and only being read as OLAP input in DC2. While we don't know yet if this is the right approach, with dynamic snitch off (and read repair chance:0) in case no nodes are down we hope to avoid OLAP reads to show up in DC1. Without being able to switch off dynamic snitch - I am not sure how we are able to achieve workload split (to be proven if that gives a performance benefit).
        Hide
        Jonathan Ellis added a comment -

        You can't have that anyway because the failure detector will force reads to a different replica when it thinks your preferred one is down.

        Show
        Jonathan Ellis added a comment - You can't have that anyway because the failure detector will force reads to a different replica when it thinks your preferred one is down.
        Hide
        Edward Capriolo added a comment -

        I agree that the dynamic snitch is super stable and 99.99999 % of the time everyone wants it. However it should always remain an option. I can imagine a situation where you do not want the dynamic snitch. For example a user may want to a snitch that always sends reads to predictable places. In that case not being able to disable dynamic would be bad.

        Show
        Edward Capriolo added a comment - I agree that the dynamic snitch is super stable and 99.99999 % of the time everyone wants it. However it should always remain an option. I can imagine a situation where you do not want the dynamic snitch. For example a user may want to a snitch that always sends reads to predictable places. In that case not being able to disable dynamic would be bad.
        Jonathan Ellis made changes -
        Status Patch Available [ 10002 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Jonathan Ellis added a comment -

        committed

        Show
        Jonathan Ellis added a comment - committed
        Hide
        Brandon Williams added a comment -

        +1

        Show
        Brandon Williams added a comment - +1
        Jonathan Ellis made changes -
        Reviewer slebresne brandon.williams
        Jonathan Ellis made changes -
        Status Open [ 1 ] Patch Available [ 10002 ]
        Reviewer slebresne
        Jonathan Ellis made changes -
        Field Original Value New Value
        Attachment 3229.txt [ 12495082 ]
        Hide
        Jonathan Ellis added a comment -

        patch removes dynamic_snitch boolean from example configuration (defaulting to true) and sets default badness threshold to 0.1

        Show
        Jonathan Ellis added a comment - patch removes dynamic_snitch boolean from example configuration (defaulting to true) and sets default badness threshold to 0.1
        Hide
        Brandon Williams added a comment -

        With it defaulting to on in the last two major releases, I've never heard of anyone disabling it, so I'm fine with removing the option.

        Show
        Brandon Williams added a comment - With it defaulting to on in the last two major releases, I've never heard of anyone disabling it, so I'm fine with removing the option.
        Hide
        Sylvain Lebresne added a comment -

        I'm for the more conservative approach. In general I'm not in favor of fully disabling options by fear of people shooting themselves in the foot because I think that this always end up resulting in pissing off power users at one point or the other. In the case of the DS, being able to disable it if only for debugging purposes may prove useful. But I'm totally for having hidden options that are only listed in advanced docs with the proper warnings.

        Show
        Sylvain Lebresne added a comment - I'm for the more conservative approach. In general I'm not in favor of fully disabling options by fear of people shooting themselves in the foot because I think that this always end up resulting in pissing off power users at one point or the other. In the case of the DS, being able to disable it if only for debugging purposes may prove useful. But I'm totally for having hidden options that are only listed in advanced docs with the proper warnings.
        Hide
        Jonathan Ellis added a comment -

        Ben Coverston points out that a more conservative approach would be to leave the option in but remove it from the example config file first.

        Show
        Jonathan Ellis added a comment - Ben Coverston points out that a more conservative approach would be to leave the option in but remove it from the example config file first.
        Jonathan Ellis created issue -

          People

          • Assignee:
            Jonathan Ellis
            Reporter:
            Jonathan Ellis
            Reviewer:
            Brandon Williams
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development