https://bugs.openldap.org/show_bug.cgi?id=10138

--- Comment #9 from Howard Chu <[email protected]> ---
(In reply to kero from comment #8)
> > As long as nothing changes any of the write txn's state, you should be fine.
> 
> Do you mean that it can be fine even if I use the encryption feature?

No. Accessing records will cycle pages through the cache, thus changing the
write txn's state.

> > Note that if you wrote a lot of data in the txn, some dirty pages may have 
> > been flushed to make room for newer writes. In that case, any pointers to 
> > those flushed pages would be invalid. In that case, you'd have to use 
> > cursors to read the data reliably.
> 
> Do you mean it is unreliable to keep the data pointers coming from a
> read-only cursor if I wrote a lot of data into it? Even if I collect those
> data pointers AFTER I have finished writing entries into the database?

Ah, if you used a cursor to enumerate the data pointers after all writes were
done, then it'll be fine.
> 
> Because, according to the documentation, my solution is valid in the sense
> that no updates are performed while I iterate on the database entries.
> Therefore the threads are reading frozen pointers to the mmap area.
> 
> > Values returned from the database are valid only until a subsequent update 
> > operation, or the end of the transaction.

-- 
You are receiving this mail because:
You are on the CC list for the issue.

Reply via email to