by Malthe Borch for EuroPython 2012
Traditionally, object persistence systems use a lot of memory, and n-fold that when threads are involved. Further, the role division has typically been “thin server” where most of the work – queries in particular – is done on the client.
I describe a “next-generation”, fully-versioned, distributed object persistence system for Python that reduces memory usage per process to that of a single thread without a significant increase in I/O and shifts database query responsibility to the server.
To motivate and provide additional context, I’ll briefly outline a history of object persistence with Python, argue how this storage strategy is a natural fit for Python programs and discuss what’s needed in order for it to scale.
Benchmarks and results from a prototype written entirely in Python will be presented towards the end of the talk.