[Zodb-checkins] CVS: Zope3/src/zodb/storage - bdbminimal.py:1.25
Tim Peters
tim.one at comcast.net
Wed Jul 2 12:41:49 EDT 2003
Update of /cvs-repository/Zope3/src/zodb/storage
In directory cvs.zope.org:/tmp/cvs-serv29327
Modified Files:
bdbminimal.py
Log Message:
Removed all references to self._packing -- it had become a decoy.
=== Zope3/src/zodb/storage/bdbminimal.py 1.24 => 1.25 ===
--- Zope3/src/zodb/storage/bdbminimal.py:1.24 Mon Jun 30 18:41:21 2003
+++ Zope3/src/zodb/storage/bdbminimal.py Wed Jul 2 11:41:46 2003
@@ -214,14 +214,6 @@
if cs: cs.close()
# We're done with this table
self._pending.truncate(txn)
- # If we're in the middle of a pack, we need to add to the packmark
- # table any objects that were modified in this transaction.
- # Otherwise, there's a race condition where mark might have happened,
- # then the object is added, then sweep runs, deleting the object
- # created in the interrim.
- if self._packing:
- for oid in self._oids.keys():
- self._packmark.put(oid, PRESENT, txn=txn)
self._oids.truncate(txn)
# Now, to finish up, we need apply the refcount deltas to the
# refcounts table, and do recursive collection of all refcount == 0
@@ -284,12 +276,6 @@
assert len(references) % 8 == 0
self._references.put(revid, references, txn=txn)
self._oids.put(oid, PRESENT, txn=txn)
- # If we're in the middle of a pack, we need to add these objects to
- # the packmark, so a specific race condition won't collect them.
- # E.g. we do a mark, then we do a store, then we sweep. The objects
- # stored between the mark and sweep would get collected away.
- if self._packing:
- self._packmark.put(oid, PRESENT, txn=txn)
return newserial
def store(self, oid, serial, data, refs, version, transaction):
@@ -411,13 +397,14 @@
# _dostore() or _docommit(), so those never add anything to _packmark,
# and only the correct oid-chasing code in _mark() populates
# _packmark.
+ #
+ # Later: All code referencing self._packing was removed.
self._commit_lock_acquire()
try:
# We have to do this within a Berkeley transaction
def clear_packmark(txn):
self._packmark.truncate(txn=txn)
self._withtxn(clear_packmark)
- self._packing = True
# We don't wrap this in _withtxn() because we're going to do the
# operation across several Berkeley transactions, which allows
# other work to happen (stores and reads) while packing is being
@@ -427,7 +414,6 @@
# collect object revisions
self._dopack()
finally:
- self._packing = False
self._packlock.release()
self._commit_lock_release()
self.log('pack finished')
More information about the Zodb-checkins
mailing list