Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-3890

Avoiding connection storms

    XMLWordPrintable

    Details

    • Type: Epic
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Documentation Changes:
      Not Needed
    • Original Estimate:
      5
    • Cost to Date:
      22
    • Final Cost:
      24
    • Cost Threshold %:
      480
    • Detailed Project Statuses:
      Hide

      Engineer(s): Valentin

      Summary: Introduce features to the Connection Monitoring and Pooling specification which mitigate issues associated with connection storms

      2021-10-05: On track for 2021-10-15

      • One more prose test remains to be implemented, plus one bug that affects maxConnecting performance

      2021-09-21: On track for 2021-10-15

      • Bulk write refactoring that is required for implementation of connection handshake retries is in code review.
      • Consider server load when selecting a server is also in review now
      • Next up: Provide guidance on handling command errors that occur before the handshake completes during operation execution

      2021-09-08: Maintaining target end date of 2021-10-15

      • Refactoring of synchronous and reactive reads and writes to support expanded retryability is in review.
      • Next up is support for consideration of server load during server selection.

      2021-08-10: Updated target end date to 2021-10-01

      • Valentin picked this back up and is working his way through the retryability logic. Refactoring is complete for sync reads. Async reads is up next
      • Support for paused state complete and is waiting on the retryability work before it can be merged
      • Note that this was on pause for approximately 6-7 weeks

      2021-06-28:

      • On pause to finish 5.0 must haves

      2021-06-15:

      • Support for paused state ready for second round of reviews
      • Retry logic changes are in progress
      • Will be pausing on this to work on supporting use of alternative SSL provider for Netty which needs to be done before 5.0
      • Maintaining end date for now and will update once remaining work resumes

      2021-06-02: Maintaining target end date of 2021-06-25

      • Support for paused state now in review
      • Working on adding more tests

      2021-05-18: Updated target end date to 2021-06-25

      • Support for paused state is in progress. Worked on merging conflicts with Load Balancer PR and currently working on fixing some failing tests. Should be in review later this week.
      • Adding 4 more weeks for the remaining work and reviews since Valentin mentioned that the project will be ~50% complete after pausable pool

      2021-05-04: Updated target end date to 2021-05-28

      • Rate limit new connection creations (maxConnecting) complete
      • Support for paused state is in progress. There are some racy specification tests that need to be addressed. Found 4 race conditions in the last few days one of which was caused by a known server bug

      2021-04-06: Maintaining target end date of 2021-04-30

      • Rate limit new connection creations (maxConnecting) in review. Review will take a little longer since Ross is OOO this week
      • Currently working on implementing and testing Connection Pool Paused State
      • Once the current in progress work is complete, Valentin will go over the remaining parts of the spec to figure out what needs to be done for the remaining tickets. Since there are a bunch of unknowns in regards to the timeline of this project, keeping the end date the same for now

      2021-03-23: Updated target end date to 2021-04-30

      • Rate limit new connection creations (maxConnecting) in review
      • Currently working on implementing and testing Connection Pool Paused State

      2021-03-09: Setting initial target end date to 2021-04-02

      • Currently working on Rate limit new connection creations (maxConnecting)

      Show
      Engineer(s): Valentin Summary: Introduce features to the Connection Monitoring and Pooling specification which mitigate issues associated with connection storms 2021-10-05: On track for 2021-10-15 One more prose test remains to be implemented, plus one bug that affects maxConnecting performance 2021-09-21: On track for 2021-10-15 Bulk write refactoring that is required for implementation of connection handshake retries is in code review. Consider server load when selecting a server is also in review now Next up: Provide guidance on handling command errors that occur before the handshake completes during operation execution 2021-09-08: Maintaining target end date of 2021-10-15 Refactoring of synchronous and reactive reads and writes to support expanded retryability is in review. Next up is support for consideration of server load during server selection. 2021-08-10: Updated target end date to 2021-10-01 Valentin picked this back up and is working his way through the retryability logic. Refactoring is complete for sync reads. Async reads is up next Support for paused state complete and is waiting on the retryability work before it can be merged Note that this was on pause for approximately 6-7 weeks 2021-06-28: On pause to finish 5.0 must haves 2021-06-15: Support for paused state ready for second round of reviews Retry logic changes are in progress Will be pausing on this to work on supporting use of alternative SSL provider for Netty which needs to be done before 5.0 Maintaining end date for now and will update once remaining work resumes 2021-06-02: Maintaining target end date of 2021-06-25 Support for paused state now in review Working on adding more tests 2021-05-18: Updated target end date to 2021-06-25 Support for paused state is in progress. Worked on merging conflicts with Load Balancer PR and currently working on fixing some failing tests. Should be in review later this week. Adding 4 more weeks for the remaining work and reviews since Valentin mentioned that the project will be ~50% complete after pausable pool 2021-05-04: Updated target end date to 2021-05-28 Rate limit new connection creations (maxConnecting) complete Support for paused state is in progress. There are some racy specification tests that need to be addressed. Found 4 race conditions in the last few days one of which was caused by a known server bug 2021-04-06: Maintaining target end date of 2021-04-30 Rate limit new connection creations (maxConnecting) in review. Review will take a little longer since Ross is OOO this week Currently working on implementing and testing Connection Pool Paused State Once the current in progress work is complete, Valentin will go over the remaining parts of the spec to figure out what needs to be done for the remaining tickets. Since there are a bunch of unknowns in regards to the timeline of this project, keeping the end date the same for now 2021-03-23: Updated target end date to 2021-04-30 Rate limit new connection creations (maxConnecting) in review Currently working on implementing and testing Connection Pool Paused State 2021-03-09: Setting initial target end date to 2021-04-02 Currently working on Rate limit new connection creations (maxConnecting)

      Description

      See DRIVERS-781 for updated details.

        Attachments

          Activity

            People

            Assignee:
            valentin.kovalenko Valentin Kavalenka
            Reporter:
            backlog-server-pm Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:
              Start date:
              End date:
              Calendar Time:
              32 weeks, 4 days