I've been working on my stratum-mining fork (which is pretty far along at this point.) But I've come to a conundrum that I'd like opinions on.
So let's start out with two important points:
there are 3 DB Libraries (Sqlite, Postgresql, and MySql) that I'm maintaining
I do NOT want to double that number (6) (In fact I WILL not... so I have to make a choice)
Currently they are using the native libraries (sqlite3,psycopg2,and MySQLdb)
These libraries are VERY fast (since they are basically just C libs)
I have ported the sqlite DB library interface over to sqlalchemy for testing and to get my footing on what it takes. (quite a bit of work, but doable)
However they do not have connection pooling (not a big deal for this application) and do not auto-reconnect (as far as I know.)
So to get these two features, the only real "popular" option seems to be SQLAlchemy (Core, not ORM)
I've done some profiling and SqlAlchemy bulk loading (after optimizations) seems to be half the speed of the native libraries. It's understandable... I'm not complaining mind you.
This brings me to the question, Is it worth the slowdown (and extra work) for the benefits (connection pooling and reconnects)