Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-73016

Cancellation semantics for async_rpc and NITL should match

    XMLWordPrintableJSON

Details

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 7.0.0-rc0
    • None
    • Internal Code
    • None
    • Fully Compatible
    • Service Arch 2023-02-06, Service Arch 2023-02-20, Service Arch 2023-03-06

    Description

      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.

      Attachments

        Activity

          People

            amirsaman.memaripour@mongodb.com Amirsaman Memaripour
            amirsaman.memaripour@mongodb.com Amirsaman Memaripour
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: