Files
freeipa/ipalib
Rob Crittenden a4675f6f50 Implement simple LDAP cache layer
Insert a class before LDAPClient to cache the return value
of get_entry() and certain exceptions (NotFound and
EmptyResult). The cache uses an OrderedDict for the cases
where a large cache might result an LRU model can be used.

The cache be enabled (default) or disabled using
ldap_cache=True/False.

This cache is per-request so is not expected to grow
particularly large except in the case of a large batch
command.

The key to the cache entry is the dn of the object
being requested.

Any write to or referencing a cached dn is evicted from
the cache.

The set of attributes is somewhat taken into consideration.
"*" does not always match everything being asked for by
a plugin so unless the requested set of attributes is a
direct subset of what is cached it will be re-fetched. Err
on the side of safety.

Despite this rather conserative approach to caching 29%
of queries are saved with ipatests/xmlrpc_tests/*

https://pagure.io/freeipa/issue/8798

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
2021-05-12 10:45:57 -04:00
..
2021-03-30 09:58:42 +02:00
2020-02-12 18:08:32 +02:00
2018-07-14 12:04:19 +02:00
2018-09-27 16:11:18 +02:00
2016-11-24 15:46:40 +01:00
2021-05-12 10:45:57 -04:00
2020-07-07 12:36:10 +02:00
2017-02-17 10:22:07 +01:00
2021-04-27 13:10:26 -04:00
2018-09-27 11:49:04 +02:00
2016-10-20 18:43:37 +02:00