Hi everyone,
I’m interested in proposing a GSoC 2026 project for “Native Database Connection Pooling for MySQL” and I’m currently studying the psycopg pool implementation in Django 5.1 while mapping the required changes for django.db.backends.mysql.base.DatabaseWrapper.
My background is in backend engineering, and I’m especially passionate about database tuning and connection management. I tackled a severe connection bottleneck in production, optimizing a legacy system to reduce a batch execution time from over 5 hours down to just a few minutes, which makes this project very meaningful to me.
Before finalizing my draft proposal, I wanted to ask a few focused questions so I can scope the architecture realistically:
-
Pool Implementation: Since the officially recommended
mysqlclientlacks a built-in pool, is the preferred approach to implement a thread-safequeue.Queue-based pool manager directly at theDatabaseWrapperlevel, or is there a more idiomatic pattern for Django core? -
Timeout Handling: To handle MySQL’s
wait_timeoutand dropped connections gracefully, would a pre-ping strategy (e.g., executing a lightweightSELECT 1before borrowing) be the accepted tradeoff for reliability vs. performance?
You can find my full draft proposal and timeline here: link (anyone with the link can comment)
I would deeply appreciate any pointers to the most relevant files, prior discussions, or feedback on my technical direction.
Thanks!
Best regards,
Minisun