> -----Original Message----- > From: owner-openldap-software@OpenLDAP.org > [mailto:owner-openldap-software@OpenLDAP.org]On Behalf Of James Courtney > Hey all, > How is the cachesize configuration option used for OpenLDAP? It's not used by "OpenLDAP" - it is used by particular backends in the slapd server that is part of OpenLDAP. There are other "cache sizes" throughout the package, and the meaning depends a great deal on the specific context you're talking about. > My current user database has 20,000 users each > with additional sub-dn's for probably about 50,000 actual > dn's. Does this mean that a cachesize of 50,000 would store > all of my dn's in memory? Is the whole object stored or just > specific attributes and/or indexes? The whole entry is stored. That's why the manual page refers to it as an entry cache. If your database contains 50,000 objects or less, then a cachesize of 50000 will store all the objects in memory, yes. > Is cachesize relative to > a particular connection (session) or index or just simply the > number of objects which will be cached by the OpenLDAP. cachesize is a configuration keyword specified in an individual slapd backend database. It applies to that database, not to a session, and not to the server as a whole. A single server may have multiple database instances, and each database may have its own entry cache. > What causes an object to be removed from cache? The cache follows a Least-Recently-Used replacement strategy. Old objects are removed from the cache when the cache hits its configured size and new objects are requested. > If an object is queried for using a different attribute and different index > is the one in memory searched or is a new one loaded from disk first? Searching on an indexed attribute uses the indexing logic, which is separate from the entry cache. In back-bdb there is a separate cache (the IDL cache) that is used for caching index data. Obviously the point of an in-memory cache is to reduce the need to access the disk. The indexer produces a candidate list of entry IDs corresponding to entries that may possibly fulfill the search. The entries matching these IDs are fetched and tested against the search parameters. The fetch will use the entry cache. Entries are only loaded from the disk if they aren't already present in the cache. > Also, how do I set the Berkeley DB set_cachesize parameter as > I can see no DB_CONFIG file for my DB 4.1? I did a RedHat > RPM install so I don't know what the BDB home directory is. > I suspect that OpenLDAP passes it to the BDB subsystem using > the DB_ENV->open call but what is it set to? A RedHat RPM install would give you OpenLDAP 2.0, which does not use BDB environments, so the question is moot. If you do in fact have OpenLDAP 2.1 then the BDB home directory is wherever you set the "directory" to in slapd.conf. -- Howard Chu Chief Architect, Symas Corp. Director, Highland Sun http://www.symas.com http://highlandsun.com/hyc Symas: Premier OpenSource Development and Support
<<attachment: winmail.dat>>