[ZODB-Dev] blobs missing with relstorage and small blob cache dir

Maurits van Rees m.van.rees at zestsoftware.nl
Mon Feb 28 11:09:40 EST 2011


Op 28-02-11 16:34, Martijn Pieters schreef:
> On Mon, Feb 28, 2011 at 16:22, Hanno Schlichting<hanno at hannosch.eu>  wrote:
>> Blobs are considered experimental in ZODB 3.8. Especially the entire
>> blob cache changed completely for ZODB 3.9.
>>
>> I think you might want to upgrade to Plone 4 and ZODB 3.9 to get a
>> stable environment. Or you'll likely run into more problems.

Thanks for the advice, Hanno, also on the plone-dev list.  This is the 
first time I have read such a clear warning against using blobs in Plone 
3 though (same for Zope 2.10.x I guess).
http://plone.org/products/plone.app.blob also gives no clear warning.

What do others think?

I concur that the combination with relstorage could be less stable, with 
some more bugs that need to be ironed out, at least in the blob cache. 
Looks like most of that part of the RelStorage code was directly copied 
from a more ZODB3 version though, at least according to a comment in 
blobhelper.py.


> Actually, RelStorage has it's own cache cleanup code for the
> database-stored blobs scenario. And by the looks of it, it does
> trigger a blob cache cleanup (in a separate thread) during blob load.
>
> Maurits, see blobhelper.py, BlobHelper.download_blob calls
> BlobCacheChecker.loaded with check=True (the default). Try calling it
> with check=False instead.

That works: the blobs stay.  But then it looks like the blob cache size 
is only checked once when starting up the zope instance.  For example 
with a blob cache size of 100,000 bytes and two images of about 65K and 
one of about 1MB, I don't see any blobs getting removed from the cache 
while visiting those images or pages that show them.


-- 
Maurits van Rees
Web App Programmer at Zest Software: http://zestsoftware.nl
Personal website: http://maurits.vanrees.org/



More information about the ZODB-Dev mailing list