-
Type:
New Feature
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: django
-
None
-
Python Drivers
-
Not Needed
-
None
-
None
-
None
-
None
-
None
-
None
Context
In Django's database backend system, the BaseDatabaseWrapper class provides a foundation for creating custom database backends. One of its key methods, get_new_connection, handles database connections.
Currently, in django-mongodb-backend, a new MongoClient object is created for each request when get_new_connection, and Django closes this connection after the request completes. This approach is inefficient because it incurs the overhead of reestablishing a database connection for every HTTP request.
A better solution would be to leverage PyMongo's built-in connection pooling. This would maintain persistent connections, reduce connection setup overhead, and improve performance by reusing existing connections rather than creating new ones for each request.