[389-devel] fractional replication monitoring proposal
Rich Megginson
rmeggins at redhat.com
Wed Oct 16 15:43:40 UTC 2013
On 10/16/2013 09:28 AM, Mark Reynolds wrote:
>
> On 10/16/2013 11:05 AM, Ludwig Krispenz wrote:
>>
>> On 10/15/2013 10:41 PM, Mark Reynolds wrote:
>>> https://fedorahosted.org/389/ticket/47368
>>>
>>> So we run into issues when trying to figure out if replicas are in
>>> synch(if those replicas use fractional replication and "strip
>>> mods"). What happens is that an update is made on master A, but due
>>> to fractional replication there is no update made to any replicas.
>>> So if you look at the ruv in the tombstone entry on each server, it
>>> would appear they are out of synch. So using the ruv in the db
>>> tombstone is no longer accurate when using fractional replication.
>>>
>>> I'm proposing a new ruv to be stored in the backend replica entry:
>>> e.g. cn=replica,cn="dc=example,dc=com",cn=mapping tree,cn=config.
>>> I'm calling this the "replicated ruv". So whenever we actually send
>>> an update to a replica, this ruv will get updated.
>> I don't see how this will help, you have an additional info on waht
>> has been replicated (which is available on the consumer as well) and
>> you have a max csn, but you don't know if there are outstanding
>> fractional changes to be sent.
> Well you will know on master A what operations get replicated(this
> updates the new ruv before sending any changes), and you can use this
> ruv to compare against the other master B's ruv(in its replication
> agreement). Maybe I am missing your point? Do you mean changes that
> have not been read from the changelog yet? My plan was to update the
> new ruv in perform_operation() - right after all the "stripping" has
> been done and there is something to replicate. We need to have a ruv
> for replicated operations.
>
> I guess there are other scenarios I didn't think of, like if
> replication is in a backoff state, and valid changes are coming in.
> Maybe, we could do test "stripping" earlier in the replication
> process(when writing to the changelog?),
In general, you can't do this, because you may have fractional
replication some consumers but not to all consumers.
> and then update the new ruv there instead of waiting until we try and
> send the changes.
>>> Since we can not compare this "replicated ruv" to the replicas
>>> tombstone ruv, we can instead compare the "replicated ruv" to the
>>> ruv in the replica's repl agreement(unless it is a dedicated
>>> consumer - here we might be able to still look at the db tombstone
>>> ruv to determine the status).
>>>
>>> Problems with this approach:
>>>
>>> - All the servers need to have the same replication
>>> configuration(the same fractional replication policy and attribute
>>> stripping) to give accurate results.
>>>
>>> - If one replica has an agreement that does NOT filter the updates,
>>> but has agreements that do filter updates, then we can not correctly
>>> determine its synchronization state with the fractional replicas.
>>>
>>> - Performance hit from updating another ruv(in cn=config)?
>>>
>>>
>>> Fractional replication simply breaks our monitoring process. I'm
>>> not sure, not without updating the repl protocol, that we can cover
>>> all deployment scenarios(mixed fractional repl agmts, etc). However,
>>> I "think" this approach would work for most deployments(compared to
>>> none at the moment). For IPA, since they don't use consumers, this
>>> approach would work for them. And finally, all of this would have
>>> to be handled by a updated version of repl-monitor.pl.
>>>
>>> This is just my preliminary idea on how to handle this. Feedback is
>>> welcome!!
>>>
>>> Thanks in advance,
>>> Mark
>>>
>>> --
>>> Mark Reynolds
>>> 389 Development Team
>>> Red Hat, Inc
>>> mreynolds at redhat.com
>>>
>>>
>>> --
>>> 389-devel mailing list
>>> 389-devel at lists.fedoraproject.org
>>> https://admin.fedoraproject.org/mailman/listinfo/389-devel
>>
>>
>>
>> --
>> 389-devel mailing list
>> 389-devel at lists.fedoraproject.org
>> https://admin.fedoraproject.org/mailman/listinfo/389-devel
>
> --
> Mark Reynolds
> 389 Development Team
> Red Hat, Inc
> mreynolds at redhat.com
>
>
> --
> 389-devel mailing list
> 389-devel at lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/389-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/389-devel/attachments/20131016/b645a790/attachment-0001.html>
More information about the 389-devel
mailing list