MolSSI / QCFractal

A distributed compute and database platform for quantum chemistry.
https://molssi.github.io/QCFractal/
BSD 3-Clause "New" or "Revised" License
148 stars 48 forks source link

Replace sqlite3 with apsw #829

Closed bennybp closed 6 months ago

bennybp commented 6 months ago

Description

Replaces the use of sqlite3 from the python standard library with APSW (https://github.com/rogerbinns/apsw, https://rogerbinns.github.io/apsw/index.html)

APSW is a lightweight wrapper around sqlite that allows for more features compared to the python standard library (which is constrained by the DB API).

In particular, APSW allows for multi-threaded access to connections, which means I can remove some kinda hacky thread-local stuff. And since I can remove that, I don't need to use the memdb vfs, which seems constrained in the size of the db (whereas :memory: seems unconstrained). So that should prevent things like #820

It also allows for some more advanced features that I may use in the future.

Changelog description

Replace use of Python sqlite3 with APSW

Status