Cassandra
  1. Cassandra
  2. CASSANDRA-526

Operations: Allow the ability to start a node without joining the ring

    Details

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

      Description

      In environments with a dedicated operations team, it might make sense for some organizations to start Cassandra nodes with a flag that allows them to bootup, but not join the ring until they receive an explicit command. This would help in situations if certain actions need to happen from the engineering side before certain nodes go live and take on traffic.

        Activity

        Hide
        Hudson added a comment -

        Integrated in Cassandra-0.7 #196 (See https://hudson.apache.org/hudson/job/Cassandra-0.7/196/)
        added option to specify -Dcassandra.join_ring=false on startup
        patch by slebresne; reviewed by jbellis for CASSANDRA-526

        Show
        Hudson added a comment - Integrated in Cassandra-0.7 #196 (See https://hudson.apache.org/hudson/job/Cassandra-0.7/196/ ) added option to specify -Dcassandra.join_ring=false on startup patch by slebresne; reviewed by jbellis for CASSANDRA-526
        Hide
        Jonathan Ellis added a comment -

        confirmed works with bin/cassandra -DCassandra.join_ring=false; committed

        Show
        Jonathan Ellis added a comment - confirmed works with bin/cassandra -DCassandra.join_ring=false; committed
        Hide
        Jonathan Ellis added a comment -

        does this Just Work w/ the existing startup script?

        Show
        Jonathan Ellis added a comment - does this Just Work w/ the existing startup script?
        Hide
        Sylvain Lebresne added a comment -

        Preceding patch was crap (the polite expression is 'a bit overcomplicated').
        Attaching version against 0.7.
        If a start is launch with -Dcassandra.join_ring=false, then the node does
        everything except launching gossip and joining (and thus bootstrapping if
        need be). Then there is a simple joinRing() callback in JMX to make the
        node join.

        Note that thrift is still launched. It's probably not very useful and most
        probably crash while in this mode, but you can call describe_version() at
        least

        Show
        Sylvain Lebresne added a comment - Preceding patch was crap (the polite expression is 'a bit overcomplicated'). Attaching version against 0.7. If a start is launch with -Dcassandra.join_ring=false, then the node does everything except launching gossip and joining (and thus bootstrapping if need be). Then there is a simple joinRing() callback in JMX to make the node join. Note that thrift is still launched. It's probably not very useful and most probably crash while in this mode, but you can call describe_version() at least
        Hide
        Ryan King added a comment -

        It seems like we'd only wait to do this for new (un-bootstrapped) nodes, no?

        Show
        Ryan King added a comment - It seems like we'd only wait to do this for new (un-bootstrapped) nodes, no?
        Hide
        Sylvain Lebresne added a comment -

        Wonder if what you intended is something along the line of the
        attached patch (it don't do anything fancy, just launch anything
        it can before launching gossip and wait to a command) ?

        Show
        Sylvain Lebresne added a comment - Wonder if what you intended is something along the line of the attached patch (it don't do anything fancy, just launch anything it can before launching gossip and wait to a command) ?

          People

          • Assignee:
            Sylvain Lebresne
            Reporter:
            Chris Goffinet
            Reviewer:
            Jonathan Ellis
          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - 1h
              1h
              Remaining:
              Remaining Estimate - 1h
              1h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development