[ZODB-Dev] Missing loader for multidatabase refs?

Jim Fulton jim at zope.com
Fri Mar 30 09:57:50 EDT 2007

On Mar 30, 2007, at 9:27 AM, Sidnei da Silva wrote:

> On 3/30/07, Jim Fulton <jim at zope.com> wrote:
>> > Now my question is, should 'referencesf' load those multi-database
>> > references, or should they be treated just like the 'weak  
>> references',
>> > by returning None, or should something else happen?
>> They should be treated as weak references, at least for now.
> Would that cause any problem?


> Say there's two databases, and the
> object in database '1' is the only one referencing some object in
> database '2'. Since those references would be treated like weak
> references, wouldn't the object in database '2' go away in a 'pack',
> thus causing a PosKeyError when loading the object from database '1'
> that still points to it?

Yes. That is a limitation of cross-database references.

Note that treating the references differently in a pack can't help  
this as the references are in the referencing database, not the  
referenced database.

It would be cool to have:

- A multi-database pack that took multiple databases into account.
   Such a feature is doable, but obviously, non-trivial.

- A non-GC pack that got rid of old records but didn't bother with GC.
   This would be advantagious for lots of folks independent of cross- 
database reference issues.

>> > Or maybe that
>> > reference shouldn't be there in the first place?
>> Where?  There references should certainly be in the data records,
>> otherwise, cross-database references wouldn't work at all.
> Right. I'm wondering how I did end up with a cross-database reference.
> Seems like a copy/paste through the ZMI caused it. My question is if
> that's expected/correct.

Cross database references are pretty transparent and automatic.

Maybe there should be an option to make them less so.

>> > This problem is preventing us from packing a database. It just  
>> falls
>> > dead with the KeyError 'n' when packing.
>> What version of ZODB are you using?
> The one included with Zope 2.9.6.

Hm, are you using ZEO?

I'm wondering what sort of release would be needed to help you out.


Jim Fulton			mailto:jim at zope.com		Python Powered!
CTO 				(540) 361-1714			http://www.python.org
Zope Corporation	http://www.zope.com		http://www.zope.org

More information about the ZODB-Dev mailing list