zopefoundation / Products.ZCatalog

Zope's indexing and search solution.
Other
5 stars 22 forks source link

REQUEST entries "_catalogcache_myZCal_nb" #105

Closed georgpfolz closed 4 years ago

georgpfolz commented 4 years ago

In the REQUEST of my website I get a lot of entries like these:

_catalogcache_myZCatalog_34502312640 | {('_FieldIndex_myIndex_759', frozenset({('keys', frozenset({'page1906041141066yc9a'})), ('operator', 'or')})): <BTrees.IIBTree.IITreeSet object at 0x80713b540 oid 0x89e2 in <Connection at 806256310>>}

Is that something to be worried about? What does it mean? (Zope 4.4 / Python 3.8)

d-maurer commented 4 years ago

Georg Pfolz wrote at 2020-5-13 14:22 -0700:

In the REQUEST of my website I get a lot of entries like these:

_catalogcache_myZCatalog_34502312640 | {('_FieldIndex_myIndex_759', frozenset({('keys', frozenset({'page1906041141066yc9a'})), ('operator', 'or')})): <BTrees.IIBTree.IITreeSet object at 0x80713b540 oid 0x89e2 in <Connection at 806256310>>}

Is that something to be worried about? What does it mean? (Zope 4.4 / Python 3.8)

These are the catalog's request caching entries.

As I learned, they are important for e.g. Plone where a page usually contains several portlets and many of those involve catalog queries. The queries typically contain common subqueries (because they are inserted automatically by the catalog), e.g. subqueries regarding "allowedRolesAndUsers" and "effective"/"expires". The request cache caches the result of those subqueries to speed up the overall page rendering.

Usually, you do not need to worry about them. In special cases, however, I found that request caching can lead to wrong search results (I filed a corresponding issue ("https://github.com/zopefoundation/Products.ZCatalog/issues/94") and a pull request ("https://github.com/zopefoundation/Products.ZCatalog/pull/95") to fix this issue).

georgpfolz commented 4 years ago

Usually, you do not need to worry about them.

Thank you, I was worried because I've never seen these entries before.