[ZODB-Dev] Pluggable transactions logic

JohnD.Heintz JohnD.Heintz
Wed, 22 Aug 2001 14:40:48 -0500


On Wednesday 22 August 2001 14:30, Chris Withers wrote:
> > The third might have a pretty high cost and scrict
> > requirements.
>
> What would you see these as being?

Most storages don't currently maintain this kind of information.  This is=
=20
exactly what the pack() functions does - only when asked and doesn't stor=
e=20
the results of "which objects reference this one" anywhere.  Adding this =
to=20
all storages would be pretty burdonsome and there are many use cases that=
=20
don't need this.

>
> > For example in the near/middle term I would guess that only
> > BerkeleyStorage with specific garbage settings would be able to even =
do
>
> this.
>
> How come?

The Packless Berkeley storage (and maybe some near variations of Full) do=
=20
maintain this information.  This is so that the database can do garbage=20
collection for you; i.e. without you having to call pack() periodically.

>
> > Another way to solve some of what you are asking for is to push
> > indexing/unindexing directly into the ZODB database.
>
> How would this solve the problem?

If I remember the discussion well enough, the problem was related to usin=
g=20
Transaction mechanisms to automagically unindex objects.  This particular=
 use=20
case is something that _could_ be moved into the core functionality of ZO=
DB. =20

There are other types of functionality that could rely on when objects ar=
e=20
removed from the DB that couldn't/shouldn't be coded directly into ZODB=20
though. =20

John

>
> cheers,
>
> Chris
>
>
>
> _______________________________________________
> For more information about ZODB, see the ZODB Wiki:
> http://www.zope.org/Wikis/ZODB/
>
> ZODB-Dev mailing list  -  ZODB-Dev@zope.org
> http://lists.zope.org/mailman/listinfo/zodb-dev

--=20
=2E . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | jheintz@isogen.com

w w w . d a t a c h a n n e l . c o m