Paul Rubin wrote: > Well, as you can see, this idea leaves a lot of details not yet > thought out. But it's alluring enough that I thought I'd ask if > anyone else sees something to pursue here. >
Have you looked at ZODB and ZEO? It does most of what you ask for, although not necessarily in the way you suggest. It doesn't attempt to hold everything in memory, but so long as most of your objects are cache hits this shouldn't matter. Nor does it use shared memory: using ZEO you can have a client server approach so you aren't restricted to a single machine. Instead of a locking scheme each thread works within a transaction, and only when the transaction is committed do you find out whether your changes are accepted or rejected. If they are rejected then you simply try again. So long as most of your accesses are read-only, and transactions are committed quickly this scheme can work better than locking. -- http://mail.python.org/mailman/listinfo/python-list