I have implemented a multi-thread server and I have several server as
In the root (ZODB) I have created 3 objects:
root['pendings'] = Status()
root['error'] = Status()
root['completed'] = Status()
Where Status is a Persistent Class, with an OOBTree attribute called
_dict, and serveral methods wrapping this _dict, like add, remove, etc..
The server implements a method called request, that creates a object
Request() for every request and insert in one Status().
If I launch many requests, the problem is the server starts to swap
until the system crashes...
for example the .cacheDetail() output show me:
[['BTrees.OOBTree.OOBTree', 108], ['BTrees.OOBTree.OOBucket', 2403],
['Persistence.PersistentMapping', 12], ['request.Request', 923],
If I exectue a .minimizeCache(), then the output is:
But I can't minimize more the cache... What I need to do to free more
memory space, because this always grows...
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org