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

Add feature flag to disable Opportunistic Reads by default

    • Fully Compatible
    • Service Arch 2021-02-22, Service Arch 2021-03-08

      Opportunistic reads against replica-sets was originally introduced in v4.2 as part of PM-856. This feature allows mongos to direct secondary reads to any secondary with an active connection, instead of waiting for a new connection to a specific secondary.

      Under certain workloads, as described in SERVER-53853, opportunistic reads may trigger construction of unnecessary connections to mongod processes, which would regress the overall performance.

      This ticket should introduce a new feature flag to disable opportunistic reads in v4.2 by default. In particular, the following tickets from PM-856 introduce new functionality that we might want to guard with the feature flag: SERVER-41132, SERVER-41133, and SERVER-41134.

      We may wan to approach this ticket from this for loop, introduced by SERVER-41133 (see excerpt below).

      // Attempt to get a connection to every target host
      for (size_t idx = 0; idx < request.target.size() && !cmdState->finishLine.isReady(); ++idx) {
          auto connFuture = _pool->get(request.target[idx], request.sslMode, request.timeout);

            amirsaman.memaripour@mongodb.com Amirsaman Memaripour
            amirsaman.memaripour@mongodb.com Amirsaman Memaripour
            0 Vote for this issue
            14 Start watching this issue