Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-2578

Switch to polling monitoring when running within a FaaS environment

    • Type: Icon: New Feature New Feature
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: FaaS
    • Labels:
      None
    • Needed
    • Hide

      In this change drivers will:

      • Disable streaming SDAM by default on AWS Lambda and similar FaaS platforms.
      • Introduce the serverMonitoringMode=stream/poll/auto URI option.
      • Add Unified Test Format version 1.17 to add support for server heartbeat events and asserting on the "awaited" field.
      • Ensure that clients MUST NOT use dedicated connections to measure RTT when using the polling protocol.

      See the spec changes in: https://github.com/mongodb/specifications/commit/14a6c8134d0c3038cdaa34bb33bcebbb3a545ca8
      And the Python implementation: https://github.com/mongodb/mongo-python-driver/commit/4c00227c1d350a64d1af6672cb6de26072082b81

      Show
      In this change drivers will: Disable streaming SDAM by default on AWS Lambda and similar FaaS platforms. Introduce the serverMonitoringMode=stream/poll/auto URI option. Add Unified Test Format version 1.17 to add support for server heartbeat events and asserting on the "awaited" field. Ensure that clients MUST NOT use dedicated connections to measure RTT when using the polling protocol. See the spec changes in: https://github.com/mongodb/specifications/commit/14a6c8134d0c3038cdaa34bb33bcebbb3a545ca8 And the Python implementation: https://github.com/mongodb/mongo-python-driver/commit/4c00227c1d350a64d1af6672cb6de26072082b81
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-4615 Fixed 1.25.0
      CXX-2676 Fixed 3.9.0
      CSHARP-4615 Done 2.24.0
      GODRIVER-2810 Done 1.13.0, 1.13.1
      JAVA-4936 Done 5.1.0
      NODE-5197 Fixed 6.3.0
      MOTOR-1120 Duplicate
      PYTHON-3668 Fixed 4.6
      PHPC-2281 Won't Fix
      RUBY-3241 Backlog
      RUST-1631 Fixed 3.0.0
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-4615 Fixed 1.25.0 CXX-2676 Fixed 3.9.0 CSHARP-4615 Done 2.24.0 GODRIVER-2810 Done 1.13.0, 1.13.1 JAVA-4936 Done 5.1.0 NODE-5197 Fixed 6.3.0 MOTOR-1120 Duplicate PYTHON-3668 Fixed 4.6 PHPC-2281 Won't Fix RUBY-3241 Backlog RUST-1631 Fixed 3.0.0

      As identified by DRIVERS-2246, the streaming protocol used by SDAM monitoring when communicating with MongoDB 4.4+ clusters can result in socket timeouts when the underlying runtime environment resumes after being frozen/paused then (ex: Lambda).

      Drivers should revert their SDAM monitoring process to use the legacy polling mechanism when a FaaS runtime environment is detected (DRIVERS-2209) to improve the developer experience when interacting with MongoDB from these environments.

            Assignee:
            shane.harvey@mongodb.com Shane Harvey
            Reporter:
            alex.bevilacqua@mongodb.com Alex Bevilacqua
            Steve Silvester Steve Silvester
            Alex Bevilacqua Alex Bevilacqua
            Esha Bhargava Esha Bhargava
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: