Cancellation semantics for async_rpc and NITL should match

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Major - P3
    • 7.0.0-rc0
    • Affects Version/s: None
    • Component/s: Internal Code
    • None
    • Fully Compatible
    • Service Arch 2023-02-06, Service Arch 2023-02-20, Service Arch 2023-03-06
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      A follow-on ticket for SERVER-71764 to ensure both async_rpc and NetworkInterface have identical cancellation semantics for hedged operations. In particular, we should make sure:

      • The RPC library appends an OperationKey (GUID) to all operations it sends. When those operations are canceled, if networking has begun for that operation (i.e. any data may have been sent), the RPC unconditionally sends fire-and-forget _killOperations for that OperationKey to the same remote node.
      • The async_rpc API inspects the NetworkInterface operation response and see if it succeeded or successfully cancelled; if it succeeded, the async_rpc layer needs to send _killOperations itself. Otherwise, SERVER-71764 guarantees that NetworkInterface always send the required _killOperations.

            Assignee:
            Amirsaman Memaripour
            Reporter:
            Amirsaman Memaripour
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: