[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
http://www.sys-net.it
---------------------------------------
Office: +39 02 23998309
Mobile: +39 333 4963172
Email: pierangelo.masarati@sys-net.it
---------------------------------------