Closed pfw closed 3 years ago
I am in a similar situation. I have two projects I am considering doing. But I do not quite understand RelStorage. I think an architectural document would be really interesting. It would give a high level, easy-to-digest description of how things work and why.
Often when I approach an open source project, I begin by writing documentation.
What are my two projects? Well I am considering moving from FileStorage to SQLite, but evidently packing locks the database for a while. It needs to be interleaved with other transactions. The other project would be to move the pickle cache to multi-threaded FileStorage. Right now every thread has their own pickle cache.
And then there is a third thing I have to figure out. How does cache invalidation happen with SQLite if there is no ZEO server.
I'd like to get a better understanding of the relstorage code given we are using it more and more and in similar situations I've found trying to add support for a new DB backend has helped. I'm thinking of taking a crack at getting FirebirdSQL support working, I've no immediate need for it but would use if I it was available so it is very much an experiment and learning project. At the moment my plan is to look through the commit history of the SQLite adaptor given it is the most recent addition and take a similar approach, can you think of a better way?