[SERVER-64964] Measure egress connection creation time from connection pools Created: 25/Mar/22  Updated: 29/Oct/23  Resolved: 16/Aug/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.1.0-rc0

Type: Task Priority: Major - P3
Reporter: George Wangensteen Assignee: Vojislav Stojkovic
Resolution: Fixed Votes: 0
Labels: RDY
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by COMPASS-6022 Investigate changes in SERVER-64964: ... Closed
Documented
is documented by DOCS-15542 Investigate changes in SERVER-64964: ... Closed
Problem/Incident
Backwards Compatibility: Fully Compatible
Sprint: Service Arch 2022-04-04, Service Arch 2022-04-18, Service Arch 2022-05-02, Service Arch 2022-05-16, Service Arch 2022-05-30, Service Arch 2022-06-13, Service Arch 2022-06-27, Service Arch 2022-07-11, Service Arch 2022-07-25, Service Arch 2022-08-08, Service Arch 2022-08-22
Participants:
Linked BF Score: 42

 Description   

Mongos (and mongod) maintain connection pools wrapped by task executors. These pooled connections are used to perform RPC. Sometimes, these RPC operations come in 'bursts' and no pre-existing pooled connections are available to serve some operations. In these cases, operations are bottlenecked behind new-connection-establishment. We'd like to understand how much time is spent establishing new connections to better understand this potential bottleneck.

Let's create a measurement of wall-time for this new-connection establishment. 

Ideally, it would also be good to include partial measurements for each step of the connection establishment, including:

  • Establishing the TCP connection/sockets.
  • Resolving DNS
  • Performing the TLS handshake
  • MongoDB auth 

Including parts of the detailed breakdown, especially MongoDB auth, may be better suited to break-out into separate tickets after some investigation. 



 Comments   
Comment by Billy Donahue [ 16/Aug/22 ]

Follow-up patch commited as

Message: SERVER-64964 small ServerStatusMetric docs and fixes
Branch: master
https://github.com/mongodb/mongo/commit/f86c69f2db5032e06dfd29a9fd73f09f7a7a0e9c

Comment by Githook User [ 11/Aug/22 ]

Author:

{'name': 'Vojislav Stojkovic', 'email': 'vojislav.stojkovic@mongodb.com', 'username': 'vstojkovic-mongodb'}

Message: SERVER-64964 Measure egress connection creation time from connection pools
Branch: master
https://github.com/mongodb/mongo/commit/f387fa8cc75b9129fb1d57d302ed424349990d5e

Comment by Bruce Lucas (Inactive) [ 28/Mar/22 ]

Will these be cumulative times? This can then be used by tooling to chart 1) average times over any time interval, and 2) average number of threads performing each step over any time interval.

Generated at Thu Feb 08 06:01:33 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.