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

Add optional startup delay to wait until peers are ready

    XMLWordPrintableJSON

Details

    Description

      When bouncing a node in a large cluster, is can take a while to recognize the rest of the cluster as available. This is especially true if using TLS on internode messaging connections. The bouncing node (and any clients connected to it) may see a series of Unavailable or Timeout exceptions until the node is 'warmed up' as connecting to the rest of the cluster is asynchronous from the rest of the startup process.

      There are two aspects that drive a node's ability to successfully communicate with a peer after a bounce:

      • marking the peer as 'alive' (state that is held in gossip). This affects the unavailable exceptions
      • having both open outbound and inbound connections open and ready to each peer. This affects timeouts.

      Details of each of these mechanisms are described in the comments below.

      This ticket proposes adding a mechanism, optional and configurable, to delay opening the client native protocol port until some percentage of the peers in the cluster is marked alive and connected to/from. Thus while we potentially slow down startup (delay opening the client port), we alleviate the chance that queries made by clients don't hit transient unavailable/timeout exceptions.

      Attachments

        Issue Links

          Activity

            People

              jasobrown Jason Brown
              jasobrown Jason Brown
              Jason Brown
              Ariel Weisberg
              Votes:
              0 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: