[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#5114) pcache cache results for searches that hit size/timelimit

Howard Chu wrote:

> If the client provides a sizelimit, save that away. Forward the request
> with no sizelimit, so the cache can see everything.
> If the forwarded request hits a sizelimit, I think we can still use the
> result. While there's no guarantee that repeated attempts to search the
> remote server would return the exact same set of entries, there's also
> no harm done if the cache does so.
> But if the result exceeds the cache's sizelimit, the result set must be
> uncached, same as now.

Well, I don't quite agree about this.  In fact, if we know in advance
that the cache can only cache up to <entry_limit>, removing the client
requested size limit might lead to waste of resources, because a search
could then potentially return much many entries than <entry_limit>,
which wouldn't be cached nor returned to the client, thus defeating the
purpose of caching.  So if the client requests a sizelimit <client_sl>,
we should:

if <client_sl> > <entry_limit>, leave it in place.  If less than
<entry_limit> entries result, fine; if less than <client_sl> entries
result, fine but don't cache; otherwise, return LDAP_SIZELIMIT_EXCEEDED.

if <client_sl> < <entry_limit>, set size limit to <entry_limit>.  If
less than <client_sl> entries result, fine; if less than <entry_limit>
entries result, return LDAP_SIZE_LIMIT, but keep caching; otherwise,
don't cache at all.

Ing. Pierangelo Masarati
OpenLDAP Core Team

SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
Office:  +39 02 23998309
Mobile:  +39 333 4963172
Email:   pierangelo.masarati@sys-net.it