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

Modify AsyncDBClient to allow exhaust requests

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.3.4
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Fully Compatible
    • Service Arch 2019-12-16, Service Arch 2020-01-27, Service Arch 2020-02-10

      Many functions on AsyncDBClient chain via _call(). To allow AsyncDBClient to serve exhaust responses, we need to separate out the "source" part of its pattern as _waitForResponse(). We can then write runExhaustCommand()/runExhaustCommandRequest() commands that call the "source" part as long as OpMsg::kMoreToCome is set. To test this, we'll want a trivial command that we can treat as exhaust with little other logic: sleep.

      In summary, there are three parts:

      • Make sleep an exhaust command
      • Write and integrate AsyncDBClient::_waitForResponse() to allow tailing.
      • Test AsyncDBClient::runExhaustCommand() with sleep in integration test.

            Assignee:
            janna.golden@mongodb.com Janna Golden
            Reporter:
            ben.caimano@mongodb.com Benjamin Caimano (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: