Hi all:
I have implemented a multi-thread server and I have several server as
ZEO clients.

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],
['garra.collector.status.Status', 36]]

If I exectue a .minimizeCache(), then the output is:

[['request.Request', 504]]

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

Reply via email to