On 10/16/2013 05:41 PM, Ludwig Krispenz
wrote:
I agree with you Ludwig, but unless I missed something would not be enough to know that the replica B is late or in sync ? For example, we have updates U1 U2 U3 and U4. U3 should be skipped by fractional replication. replica RUV (tombstone) on master_A contains U4 and master_B replica RUV contains U1. Let's assume that as initial value of the "replicated ruv" on master_A we have U1. Starting a replication session, master_A should send U2 and update the "replicated ruv" to U2. If the update is successfully applied on master_B, master_B replica ruv is U2 and monitoring the two ruv shoud show they are in sync. If the update is not applierd, master_B replica ruv stays at U1 and the two ruv will show out of sync. In the first case, we have a transient status of 'in sync' because the replica agreement will evaluate U3 then U4 then send U4 and store it into the "replicated ruv". At this point master_A and master_B will appear out of sync until master_B will apply U4. If U4 was to be skipped by fractional we have master_B ruv and Master_A replicated ruv both showing U2 and that is correct both servers are in sync. Mark instead of storing the replicated ruv in the replica, would not be possible to store it into the replica agreement (one replicated ruv per RA). So that it can solve the problem of different fractional replication policy ? 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. |
-- 389-devel mailing list 389-devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/389-devel