[SERVER-21436] Build a TaskExecutor that uses the NetworkInterfaceASIO worker thread for all work Created: 12/Nov/15  Updated: 25/Nov/15  Resolved: 17/Nov/15

Status: Closed
Project: Core Server
Component/s: Internal Code
Affects Version/s: None
Fix Version/s: 3.2.0-rc4

Type: Task Priority: Major - P3
Reporter: Andy Schwerin Assignee: Mira Carey
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-20596 Performance regression in new mongos ... Closed
Backwards Compatibility: Fully Compatible
Sprint: Platform C (11/20/15)
Participants:

 Description   

By building an executor that runs all its callbacks in the network worker thread, we can achieve a notable speedup in sharded find operations. This project is to either build a new executor or adapt the ThreadPoolExecutor to do its work on the network thread instead.



 Comments   
Comment by Githook User [ 20/Nov/15 ]

Author:

{u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}

Message: SERVER-21436 NetworkInterfaceThreadPool for sharding

Adding a new kind of thread pool that dispatches jobs onto a provided
NetworkInterface rather than using their own thread pool.

We're also switching the ThreadPoolTaskExecutor to use this instead of
the regular thread pool for sharding. That, in turn, removes context
switches by allowing inline execution of scheduled tasks if they're
invoked from a nia io_worker.

In pursuit of this, factored the connection pool tests out into a common
set that the NetworkInterfaceThreadPool can use.
Branch: master
https://github.com/mongodb/mongo/commit/4990cd5647371b59fec9578e19f35af13b3a97ca

Generated at Thu Feb 08 03:57:21 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.