-
Type: Improvement
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Major Change
Remove MongoClient's methods start_request(), in_request(), and end_request().
The purpose of requests was to provide read-your-writes consistency when using w=0 write concern. Starting a request pins a socket to a thread so any operations on that thread end up in the same queue on the server side. Justification for removing:
- mongos 2.6+ doesn't support socket pinning by default, and mongos 2.8+ doesn't support it at all (
SERVER-12273), so whatever weak consistency guarantees a request was supposed to provide are not provided with sharding. - It's unnecessary with MongoDB 2.6+ since write commands always block and send a response.
- It's a confusing feature that should rarely be used, if ever, yet people incorrectly use it all the time.
- It makes our connection pool unmaintainable to any but the most expert developers.
- depends on
-
PYTHON-784 Deprecate "start_request"
- Closed
- related to
-
CSHARP-1102 Remove RequestStart from the public API
- Closed
-
JAVA-1544 Remove DB.requestStart, DB.requestDone, DB.requestEnsureConnection
- Closed