-
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-5072 Convert remaining sync tests to async
-
- In Progress
-
- is depended on by
-
PYTHON-5030 Revert killAllSessions change after async streams/protocol work is merged
-
- Blocked
-
-
PYTHON-4875 [Build Failure] test_encryption.TestKmsTLSOptions failures
-
- Blocked
-
-
PYTHON-4876 [Build Failure] TestDecryptProse.test_03_decrypt_error
-
- 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
-
- Closed
-
-
PYTHON-5071 Async tests should all share a single event loop
-
- Closed
-
-
PYTHON-4982 Test Failure - network errors running configureFailPoint
-
- Blocked
-
-
PYTHON-4987 test.test_transactions_unified.TestUnifiedErrorLabelsBlockConnection.test_add_RetryableWriteError_and_UnknownTransactionCommitResult_labels_to_connection_errors
-
- Blocked
-