Hallvard B Furuseth wrote:
Howard Chu writes:
> Unfortunately I realized that not all application-level caching can be
> eliminated - with the hierarchical DB approach, we don't store full
> entry DNs in the DB so they still need to be generated in main memory,
> and they probably should be cached. But that's a detail to be
> addressed later; it may well be that the cost of always constructing
> them on the fly (no caching) is acceptable.
I previously complained that an mmapped database with no level of
caching in the code would collect the effects of bugs quite efficiently.
If some other module incorrectly modifies an entry in-memory when it
should have modified a private copy, the mod goes directly to the DB
even if nothing is doing an LDAP update operation. Restarting slapd
does not clean up, slapcat/slapadd may not work either. Is there
something in this design which fixes that?
Not at present.
You're just going to have to be very very careful about what modules you use...
Since the DB uses MVCC, that means that semantically all data in the DB can be
considered read-only. We could use mprotect() to enforce that, but I'm not
that far in the development of the mdb library yet and I have no idea how much
overhead that will impose.
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/