durusmail: quixote-users: On-demand loading and Dulcinea's use of PersistentList / PersistentMapping
On-demand loading and Dulcinea's use of PersistentList / PersistentMapping
2004-02-20
On-demand loading and Dulcinea's use of PersistentList / PersistentMapping
Neil Schemenauer
2004-02-23
On Fri, Feb 20, 2004 at 07:48:52PM +0000, John J Lee wrote:
> [PersistentMapping and PersistentList are] just there to provide
> convenient replacements for small lists and dicts, to avoid having
> to set ._p_changed every time you mutate them, right?

That's right.

> If that's true, though, I don't understand why Dulcinea uses them
> in several places where it seems you'd want loading-on-demand (for
> example, persistent_list.py, user_database.py).

In the past, we avoided BTrees because they were somewhat buggy.
Zope Corp has since then done a lot to improve the BTree code.  They
should be safe now.

> Is it simply that Dulcinea doesn't care about large numbers of
> users or large specified_lists?  Or am I wrong about the on-demand
> behaviour of Persistent{List,Mapping}?

It's mostly a matter of memory usage.  Our machines have lots of
memory.  OTOH, using BTrees in places would probably help improve
startup time.

  Neil


reply