Uploaded image for project: 'Avro'
  1. Avro
  2. AVRO-1008

Allow IPC clients to perform the IPC handshake before the first RPC is invoked

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.6.1
    • Fix Version/s: 1.7.4
    • Component/s: None
    • Labels:

      Description

      Currently, the first RPC must complete before any subsequent RPCs may be invoked using the same Transceiver instance. The reason for this behavior is that the IPC client-server handshake must be performed before any requests can be exchanged. So while the first RPC is being invoked, all other threads using the same Transceiver instance will block. The goal of this enhancement is to allow clients to perform a handshake with the server before any RPCs are invoked to avoid blocking any threads once the Transceiver is put into service.

      I have a patch for review that I think will enable clients to perform the handshake before the first RPC is sent. The changes consist of:

      • Modification to the Responder to handle a request that contains only a handshake (without an RPC)
      • Addition of overridden SpecificRequestor.getClient(...) methods that take an boolean indicating whether the handshake should be performed immediately upon initialization of the Requestor
      • Unit test which is essentially the same as the test I wrote for AVRO-1001, but it uses a pre-RPC handshake rather than invoking the add(...) RPC to perform the handshake

        Attachments

        1. AVRO-1008.patch
          12 kB
          James Baldassari
        2. AVRO-1008.patch
          2 kB
          Doug Cutting

          Issue Links

            Activity

              People

              • Assignee:
                jbaldassari James Baldassari
                Reporter:
                jbaldassari James Baldassari
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: