[Mailman-Developers] Memory pinned in ram, with huge lists

Mark Sapiro mark at msapiro.net
Fri Dec 12 21:39:55 CET 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jesus Cea wrote:
> 
> 3. I found a memory reference cycle between a Mailing list and its
> OldStyleMemberships component, linked via "self._memberadaptor". This
> cycle keeps the mailing list alive and, so, the cache never evicted the
> data.
> 
> I changed the OldStyleMemberships constructor to:
> 
> """
> class OldStyleMemberships(MemberAdaptor.MemberAdaptor):
>     def __init__(self, mlist):
>         import weakref
>         self.__mlist = weakref.proxy(mlist)
> """
> 
> to keep only a weak reference to the mailing list, breaking the cycle.


Thanks very much for your efforts in debugging this.


> 2. Now, since cache in evicted frequently, mailing list data must be
> reloaded every time. This is a performance hit, but my mailing list are
> huge but with little traffic (maybe a couple of mails per week), so this
> is a non issue for me.


The use of the cache has been changed for 2.2. See the full thread at
<http://mail.python.org/pipermail/mailman-developers/2008-August/020329.html>
for more information. In 2.2, the cache will be less effective anyway,
and the impact doesn't seem too severe.

I am going to implement your change to OldStyleMemberships for 2.2. I'm
almost inclined to drop the cache all together as I think with the 2.2
logic, hits may be rare. In theory, the logic can avoid a second read of
the pickle if the runner first instantiates the list unlocked and
subsequently locks it, but I suspect this normally happens in the same
clock second so the second read wouldn't be avoided anyway.

- --
Mark Sapiro <mark at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFJQswbVVuXXpU7hpMRApSoAKDlxigg49X9N+JiQN2QFwjQvySDzACgrUcZ
JG6h+E9bm29rY/GbriGbSpw=
=rZiy
-----END PGP SIGNATURE-----


More information about the Mailman-Developers mailing list