Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-991

QuoromPeer.OBSERVER_ID

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 3.3.2
    • None
    • quorum
    • None
    • Windows

    Description

      I don't understand why do we even need this code at first place.

      if (remoteSid == QuorumPeer.OBSERVER_ID)

      { /* * Choose identifier at random. We need a value to identify * the connection. */ remoteSid = observerCounter--; initializeMessageQueue(remoteSid); LOG.info("Setting arbitrary identifier to observer: " + remoteSid); }

      Even if remove above code from public Long readRemoteServerID(Socket sock) {} function the FLE will work correctly. Because when any other peer(PARTICIPANT) receive a notification from the observer, that peer won't consider his(observer) vote because of this check

      if(!self.getVotingView().containsKey(response.sid))

      Hence there is no need of that code. Also bcoz to above code there is a possibility of creating redundant threads (SendWorker-ReceiveWorker) bcoz when same participant try to initiate connection with same peer we are doing (sid = observerCounter--. So the same observer getting different sid and hence corresponding thread would be crated which will be of no use.

      Please let me know if i am correct.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              sandep.amit Sandeep Maheshwari
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated: