Uploaded image for project: 'Node.js Driver'
  1. Node.js Driver
  2. NODE-3078

Client Side Operations Timeout

    • Type: Icon: Epic Epic
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Retryability
    • None
    • Hide
      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?
      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • CSOT
    • Hide

      Engineer(s): Warren James, Neal Beeken

      2024-09-13: Setting end date to Oct. 4

      • Last two weeks
        • Merged session & transactions support
        • Merged non-tailable cursor support
        • Started on tailable cursors/change streams support
      • Next two weeks:
        • Finish tailable cursors/change streams support
        • GridFS and FLE support
      • Impediments:
        • Bulk Write API will need CSOT support but the feature is not completed yet.

      Engineer(s): Warren James, Neal Beeken

      2024-08-30: Setting end date to Sept. 20

      • Last two weeks
        • CSOT support for sessions and cursors, sessions almost complete
      • Next two weeks:
        • Expecting to wrap work on sessions and cursors by end of next week
        • Expecting to start work on change streams and FLE support
      • Impediments:
        • Support for CSOT sessions required some unexpected but necessary tech debt refactors that extended the time it took to complete
        • Communication with other drivers' CSOT implementers has had some slower round trips than anticipated to clarify spec and testing issues; the sessions work in particular resulted in CSOT spec test changes (DRIVERS-2969)

      Engineer(s): Warren James, Neal Beeken

      2024-08-16: No change to target end date

      • Last two weeks
        • Retryability support completed
        • CSOT Support for sessions and transactions
        • CSOT Support to cursors
      • Next two weeks:
        • Continue parallel work on sessions and cursors

      Engineer(s): Warren James, Neal Beeken

      2024-08-02: No change to target end date

      • Last two weeks
        • CSOT Support for socket read/write 
        • Enabled running of valid-fail tests
      • Next two weeks:
        • Continue parallel work on retryability and cursors
      • Impediments:
        • N/A

      Engineer(s): Warren James, Neal Beeken

      2024-07-19: Setting end date to 2024-09-06

      • Last two weeks
        • Continued working on maxTimeMS logic
      • Next two weeks:
        • Wrap up maxTimeMS logic
        • Resume parallel work on retryability and cursors
      • Impediments:
        • Driver's connect logic caused issues with timeouts

      Engineer(s): Warren James, Durran Jordan, Neal Beeken

      2024-07-05:

      • Last two weeks
        • Wrapped up work on CRUD APIs
        • Continued implementation of socket work and retryability
      • Next two weeks:
        • Provide a clear estimate of the remaining effort
        • Prioritise tasks by complexity to get big blockers done first
      • Impediments:
        • After SSDLC and various PTO, we’re now able to focus more on CSOT. To that effect, we’re shifting priorities and working to parallelise the work more

      Engineer(s): Warren James, Durran Jordan

      2024-06-21: Setting end date to June 14

      • Last two weeks
        • Implemented Timeout context abstraction
        • Started work on socket timeouts and retryability support
      • Next two weeks:
        • Wrap up support for CSOT in CRUD APIs and retryability
        • Start implementing CSOT for cursors and change streams

      Engineer(s): Warren James,

      2024-05-24: Setting end date to June 14

      • Last two weeks
        • No significant changes due to Skunkworks and PTO
      • Next two weeks:
        • Parallelise work and start implementing CSOT for other parts of the driver
      • Impediments
        • Wrapping up OIDC is taking longer than expected, taking resources away from this project

      Engineer(s): Warren James,

      2024-05-10: Setting end date to May 24

      • Last two weeks
        • CSOT for checkout is in team review
      • Next two weeks:
        • Parallelise work and start implementing CSOT for other parts of the driver

      Engineer(s): Warren James,

      2024-04-26:

      • Last two weeks
        • Investigating performance regression due to timeout changes
        • Continuing implementing CSOT for connection checkout
      • Next two weeks:
        • Wrap up basic implementation
        • Implement changes to unified test format to enable CSOT testing

      Engineer(s): Warren James, Durran Jordan

      2024-04-15:

      • Last two weeks
        • Timeout primitives needed for CSOT design completed, implementation is in progress.
        • Some unplanned OOO office time.
      • Next two weeks:
        • CSOT primitive implementation will to complete
        • Being implementation of CSOT in the different portion of the driver.

      Engineer(s): Warren James, Durran Jordan

      2024-03-28: No change to target end date

      • What was completed over the last two weeks?
        • Reached a conclusion on the direction we're taking to plumb some of the state down to enable the CSOT work to proceed
      • What's the focus over the next two weeks?
        • Implementation of the work to get the required state where it needs to be in the driver
        • Implementation of the CSOT spec

      2024-03-15: Setting end date to 2024-05-10

      • Work paused, resuming next week

      2024-02-02: No change to target end date

      • Last two weeks:
        • Updated design document is nearly finished review
        • Fixed a RTT-related bug related to CSOT
        • Focused on other tasks the rest of the time
      • Next up:
        • Adding minRoundTripTime to the ServerDescription
        • CSOT will be paused briefly to focus on OIDC and some BSON perf work

      2024-01-19: See Risk

      • Last two weeks:
        • CSOT testing setup
        • Implement Unified Runner operations
        • PoC operation context and timeout controller factory
      • Next up:
        • Implement prose tests
        • Fix heartbeat duration measurement
      • Risks:
        • Refactor took longer than expected, but there is a clear path forward for implementation with Neal’s POC. Estimated another 11 wks

      2024-01-01: See Risk

      • Last two weeks:
        • Removed MessageStream abstraction from the connection layer
        • Removed controller overwrite in Connection.sendCommand
      • Next up:
        • Add CSOT support across the driver
        • Deprecate and remove legacy timeout handling code
      • Risks:
        • Refactor took longer than expected, but there is a clear path forward for implementation. Will extend past January 12th - decide on new target end date post-New Years

      2023-12-08: On track for Jan 12

      • Last two weeks:
        • Merged first half of changes to the connection layer, second half in progress
      • Next up:
        • Gather perf numbers to finalize switchover to the new connection layer
        • Switch driver over to new implementation layer after perf analysis to ensure no/minimal user impact
      • Risks/Notes:
        • None right now, but keeping a close eye on what the performance numbers reveal
          • Expect any followup work from this (if any) to be minimally-challenging
        • Acknowledging that the connection layer refactors became a precursor dependency to accomplishing CSOT
          • In hindsight, this would've been much better to have been broken out into a separate Epic that CSOT was blocked on
          • Regardless of CSOT's dependency, this connection layer refactor will provide value on its own by enabling us to eventually deliver additional connection layer capabilities in the future (e.g. async stack traces)

      2023-11-28: On track for Jan 12

      • Project resumed after being on hold for a few weeks
      • Working on removing the MessageStream abstraction from the connection layer

      Engineer(s): Bailey Pearson

      2023-10-30: On track for Jan 12

      • Project on hold until mid-November, as Bailey rotates onto the DevTools team for Q4.
      • The first CSOT refactors were started, are in a place to be picked back up in the next few weeks.

      Engineer(s): Bailey Pearson

      2023-10-16: Target date updated to Jan 12

      • Target date reflects estimates in the design, dependent on the finalization of the team’s Q4 plan
      • Team has agreed on the design and implementation started last week
      • Will begin a preliminary refactor of the connection layer

      Engineer(s): Bailey Pearson

      2023-09-29: Target date as risk

      • Target date at risk due to interrupts (such as the langchain integration last week) and overall complexity. Will adjust the end date appropriately after the Design has been finalized.
      • Design is just about ready for Team Review.
      Show
      Engineer(s): Warren James, Neal Beeken 2024-09-13: Setting end date to Oct. 4 Last two weeks Merged session & transactions support Merged non-tailable cursor support Started on tailable cursors/change streams support Next two weeks: Finish tailable cursors/change streams support GridFS and FLE support Impediments: Bulk Write API will need CSOT support but the feature is not completed yet. Engineer(s): Warren James, Neal Beeken 2024-08-30: Setting end date to Sept. 20 Last two weeks CSOT support for sessions and cursors, sessions almost complete Next two weeks: Expecting to wrap work on sessions and cursors by end of next week Expecting to start work on change streams and FLE support Impediments: Support for CSOT sessions required some unexpected but necessary tech debt refactors that extended the time it took to complete Communication with other drivers' CSOT implementers has had some slower round trips than anticipated to clarify spec and testing issues; the sessions work in particular resulted in CSOT spec test changes ( DRIVERS-2969 ) Engineer(s): Warren James, Neal Beeken 2024-08-16: No change to target end date Last two weeks Retryability support completed CSOT Support for sessions and transactions CSOT Support to cursors Next two weeks: Continue parallel work on sessions and cursors Engineer(s): Warren James, Neal Beeken 2024-08-02: No change to target end date Last two weeks CSOT Support for socket read/write  Enabled running of valid-fail tests Next two weeks: Continue parallel work on retryability and cursors Impediments: N/A Engineer(s): Warren James, Neal Beeken 2024-07-19: Setting end date to 2024-09-06 Last two weeks Continued working on maxTimeMS logic Next two weeks: Wrap up maxTimeMS logic Resume parallel work on retryability and cursors Impediments: Driver's connect logic caused issues with timeouts Engineer(s): Warren James, Durran Jordan, Neal Beeken 2024-07-05: Last two weeks Wrapped up work on CRUD APIs Continued implementation of socket work and retryability Next two weeks: Provide a clear estimate of the remaining effort Prioritise tasks by complexity to get big blockers done first Impediments: After SSDLC and various PTO, we’re now able to focus more on CSOT. To that effect, we’re shifting priorities and working to parallelise the work more Engineer(s): Warren James, Durran Jordan 2024-06-21: Setting end date to June 14 Last two weeks Implemented Timeout context abstraction Started work on socket timeouts and retryability support Next two weeks: Wrap up support for CSOT in CRUD APIs and retryability Start implementing CSOT for cursors and change streams Engineer(s): Warren James, 2024-05-24: Setting end date to June 14 Last two weeks No significant changes due to Skunkworks and PTO Next two weeks: Parallelise work and start implementing CSOT for other parts of the driver Impediments Wrapping up OIDC is taking longer than expected, taking resources away from this project Engineer(s): Warren James, 2024-05-10: Setting end date to May 24 Last two weeks CSOT for checkout is in team review Next two weeks: Parallelise work and start implementing CSOT for other parts of the driver Engineer(s): Warren James, 2024-04-26: Last two weeks Investigating performance regression due to timeout changes Continuing implementing CSOT for connection checkout Next two weeks: Wrap up basic implementation Implement changes to unified test format to enable CSOT testing Engineer(s): Warren James, Durran Jordan 2024-04-15: Last two weeks Timeout primitives needed for CSOT design completed, implementation is in progress. Some unplanned OOO office time. Next two weeks: CSOT primitive implementation will to complete Being implementation of CSOT in the different portion of the driver. Engineer(s): Warren James, Durran Jordan 2024-03-28: No change to target end date What was completed over the last two weeks? Reached a conclusion on the direction we're taking to plumb some of the state down to enable the CSOT work to proceed What's the focus over the next two weeks? Implementation of the work to get the required state where it needs to be in the driver Implementation of the CSOT spec 2024-03-15: Setting end date to 2024-05-10 Work paused, resuming next week 2024-02-02: No change to target end date Last two weeks: Updated design document is nearly finished review Fixed a RTT-related bug related to CSOT Focused on other tasks the rest of the time Next up: Adding minRoundTripTime to the ServerDescription CSOT will be paused briefly to focus on OIDC and some BSON perf work 2024-01-19: See Risk Last two weeks: CSOT testing setup Implement Unified Runner operations PoC operation context and timeout controller factory Next up: Implement prose tests Fix heartbeat duration measurement Risks: Refactor took longer than expected, but there is a clear path forward for implementation with Neal’s POC. Estimated another 11 wks 2024-01-01: See Risk Last two weeks: Removed MessageStream abstraction from the connection layer Removed controller overwrite in Connection.sendCommand Next up: Add CSOT support across the driver Deprecate and remove legacy timeout handling code Risks: Refactor took longer than expected, but there is a clear path forward for implementation. Will extend past January 12th - decide on new target end date post-New Years 2023-12-08: On track for Jan 12 Last two weeks: Merged first half of changes to the connection layer, second half in progress Next up: Gather perf numbers to finalize switchover to the new connection layer Switch driver over to new implementation layer after perf analysis to ensure no/minimal user impact Risks/Notes: None right now, but keeping a close eye on what the performance numbers reveal Expect any followup work from this (if any) to be minimally-challenging Acknowledging that the connection layer refactors became a precursor dependency to accomplishing CSOT In hindsight, this would've been much better to have been broken out into a separate Epic that CSOT was blocked on Regardless of CSOT's dependency, this connection layer refactor will provide value on its own by enabling us to eventually deliver additional connection layer capabilities in the future (e.g. async stack traces) 2023-11-28: On track for Jan 12 Project resumed after being on hold for a few weeks Working on removing the MessageStream abstraction from the connection layer Engineer(s): Bailey Pearson 2023-10-30: On track for Jan 12 Project on hold until mid-November, as Bailey rotates onto the DevTools team for Q4. The first CSOT refactors were started, are in a place to be picked back up in the next few weeks. Engineer(s): Bailey Pearson 2023-10-16: Target date updated to Jan 12 Target date reflects estimates in the design, dependent on the finalization of the team’s Q4 plan Team has agreed on the design and implementation started last week Will begin a preliminary refactor of the connection layer Engineer(s): Bailey Pearson 2023-09-29: Target date as risk Target date at risk due to interrupts (such as the langchain integration last week) and overall complexity. Will adjust the end date appropriately after the Design has been finalized. Design is just about ready for Team Review.
    • 15.5
    • 30
    • 40
    • 100
    • Hide

      DRIVERS-555:
      NA

      Show
      DRIVERS-555: NA


      DRIVERS Ticket Description
      Script Target - If you can read this text, the script has failed

            Assignee:
            warren.james@mongodb.com Warren James
            Reporter:
            backlog-server-pm Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              51 weeks, 2 days