Hallvard B Furuseth wrote:
Hallvard B Furuseth writes:
One big problem, if I understand you correctly, is that a database accumulates the results bugs more efficiently than anything else. There's no layer between slapd and the disk database which may catch an error or fail before the error gets saved.
More importantly, an Entry* from the database is a write handle into the database which other modules *must not* make use of. If they do, the write happens even if the database never makes a decision to write anything. E.g. in a search operation if overlay rwm meddles a bit too deeply. Though that problem can be fixed with... sigh, an entry cache.
Not necessarily. We can mmap memory ranges with read-only access. That means whenever we modify an entry, we must duplicate it first, but that's already how things work now.