-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Unknown
-
Affects Version/s: None
-
Component/s: None
-
None
Context
Our async IO currently uses non-blocking sockets to match as closely as possible to the synchronous API. We should investigate using asyncio transports/protocols instead, which are asyncio's fastest interface for network IO.
Definition of done
Investigate asyncio transports/protocols and migrate our asynchronous code to use them, if compatible with our use case.
Pitfalls
Using a different networking implementation for the asynchronous API will require additional complexity in our synchronization system, as the two APIs will no longer share a common network layer.
- depends on
-
PYTHON-5036 Migrate fully away from unittest to pytest
- Backlog
- is depended on by
-
PYTHON-5030 Revert killAllSessions change after async streams/protocol work is merged
- Blocked
- is related to
-
PYTHON-4539 Async pymongo fails with SSLContext object has no attribute a_wrap_socket
- Closed
-
PYTHON-4724 Document the behavior of using an async client across multiple event loops
- Backlog
-
PYTHON-4770 Improve CPU overhead of async locks and latency on Windows TLS sendall
- Backlog
-
PYTHON-5071 Async tests should all share a single event loop
- Closed
-
PYTHON-4982 Test Failure - network errors running configureFailPoint
- Backlog