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

Re: syncrepl ramblings again

> This cannot be guaranteed, in general, as a search operations
> don't operate in isolation to modifications.  That is, a search
> can return an entry with CSN+1 but not the entry not CSN+0 even
> though the latter was committed first.  However, you can
> guarantee eventual convergence.

The current context csn code is to provide this consistency at least for
additive changes.
In bdb_do_search(), search_context_csn is obtained before search candidate
selection step
to construct (&(entryCSN<=search_context_csn)(original filter)) as a new
search filter.
The same can be realizable for subtractive changes and modifications as
well, if we can provide
a (modified) changelog which maintains entry contents until all the
outstanding searches at the
time of deletion are completed. This changelog part was yet to be
implemented because it was
not clear whether we have a changelog in OpenLDAP. Eventual consistency
might be rather weak
for non-persistent sync consumers which synchronizes only occasionally.