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

StreamManager should clearly differentiate between "initiator" and "receiver" sessions

    XMLWordPrintableJSON

Details

    Description

      StreamManager does currently a suboptimal job in differentiating between stream sessions (in form of StreamResultFuture) which have been either initiated or "received", for the following reasons:
      1) Naming is IMO confusing: a "receiver" session could actually both send and receive files, so technically an initiator is also a receiver.
      2) StreamManager#findSession() assumes we should first looking into "initiator" sessions, then into "receiver" ones: this is a dangerous assumptions, in particular for test environments where the same process could work as both an initiator and a receiver.

      I would recommend the following changes:
      1) Rename "receiver" with "follower" everywhere the former is used.
      2) Introduce a new flag into StreamMessageHeader to signal if the message comes from an initiator or follower session, in order to correctly differentiate and look for sessions in StreamManager.

      While my arguments above might seem trivial, I believe they will improve clarity and save from potential bugs/headaches at testing time, and doing such changes now that we're revamping streaming for 4.0 seems the right time.

      Attachments

        Activity

          People

            jasonstack Zhao Yang
            sbtourist Sergio Bossa
            Zhao Yang
            Benjamin Lerer
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: