[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Openldap ldbm cache corruption

>I'm think we need to completely rethink how our LDBM
>cache design.
>1)  I believe we should modify the in-core Entry structure
>to contain dn in both 'provided' and 'normalized' formats.
>The 'provided' format would be used when providing the
>dn in results, but the 'normalized' would be used for
>all operations.

I think that this is an excellent trade-off of space for time. It also
helps get rid of lots of potential leaks.

>2)  I believe we should consider moving to a per-backend
>reader/writer lock instead of per-entry reader/writer locks.
>I believe per-entry locks are too fine grain and hinder

I agree. I haven't looked at the existing lock algorithms but writers
should be given strong priority on a per-backend lock.

I also think there is too much direct manipulation of the cache in much
of the code. The cache should be completely transparent to the code in
my view. Perhaps this would be easier to accomplish given a backend
reader/writer lock versus the per-entry lock.