On 3/30/07, Jim Fulton <[EMAIL PROTECTED]> wrote:
> 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.

What can be done to avoid that? Not packing the databases at all?

Would it be possible to make the loading of a cross-database reference
that is gone return some sort of 'BrokenObject' instead of a
PosKeyError, to work around the problem temporarily?

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.

Specially if the databases happen to be on different ZEO servers *wink*.

- 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.

Sounds like this would be the easiest way to solve the above issue?

> 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.

Yes, such an option would be great.

>> 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.

Yes, I'm using ZEO. I don't need any sort of release particularly, a
patch would be fine. As long as there's a Zope 2.9.x release sometime
in the future for the people that can't live with patches, it should
be ok.

Sidnei da Silva
Enfold Systems                http://enfoldsystems.com
Fax +1 832 201 8856     Office +1 713 942 2377 Ext 214
For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to