Re: Packing, again
Toby Dickenson <[email protected]>
| Newsgroups | gmane.comp.web.zope.zodb.dirstorage |
|---|---|
| Message-ID | <[email protected]> |
On Thursday 02 Sep 2004 04:57, Richard Waid wrote: > Just a thought -- couldn't the mark/sweep be incremental anyway -- just > run the pack so it deletes, say, 3 days of transactions, then run it > again so it deletes 3 days of transactions etc. If used in combination > with a memory packing strategy, where you don't need to mark the file > permission bits for each file it should be quite quick (naive?) To completely remove any object, you need to scan the *whole* storage to prove that no other object has a reference to it. That's the only way to reclaim space from 'deleted' objects. (Other incremental schemes are possible. For example BDBStorage uses reference counts. A generational scheme could work too. The disadvantage is that they would rely on extra housekeeping metadata, which unacceptably reduces fault tolerance.) Something that would be possible is to scan the recent X days of revision history. For any objects that have been modified, delete any revisions older than Y days. Y<X. That would reclaim space used up by frequently changing objects, but not deleted objects. patches or sponsorship welcome. ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click