agree. if we have the polling time configurable we simplify the overall mechanism and keep test duration at bay.
On Wed, Mar 30, 2022 at 12:12 AM Casey Bodley <cbodley@xxxxxxxxxx> wrote:
On Tue, Mar 29, 2022 at 3:56 PM Yehuda Sadeh-Weinraub <yehuda@xxxxxxxxxx> wrote:
>
> How about this use case:
> An rgw multisite test suite that checks that objects have been synced to the remote zone before it can continue to the next test.
> Wanting to reduce latency shouldn't be controversial. Performance is not just bandwidth.
granted, the multisite tests do write objects and then wait for them
to show up on other zones, so they do observe this as actual latency
but what actual use cases look like this? where else does 'replication
time' mean the same thing as 'latency'?
earlier in the thread we talked about making the polling interval
configurable; multisite tests can just set that to 1. that knob might
be good enough for some other use cases too?
>
> Yehuda
>
> On Tue, Mar 29, 2022, 2:56 PM Casey Bodley <cbodley@xxxxxxxxxx> wrote:
>>
>> hi Yehuda,
>>
>> On Wed, Mar 23, 2022 at 9:46 AM Yehuda Sadeh-Weinraub <yehuda@xxxxxxxxxx> wrote:
>> >
>> > On Tue, Mar 22, 2022 at 2:14 PM Adam C. Emerson <aemerson@xxxxxxxxxx> wrote:
>> > >
>> > > On 22/03/2022, Matt Benjamin wrote:
>> > > > Just to be clear, why do we think it doesn't serve as an optimization?
>> > >
>> > > My thought being, if we're already saturated with syncing stuff,
>> > > adding more work on top of it won't help anything.
>> >
>> > And what if we're not saturated? You're optimizing the high traffic
>> > case by killing the low traffic case. If there are specific
>> > implementation issues then address them, but I think this is very
>> > valuable to some use cases.
>>
>> i'm still interested in exploring these use cases, to learn how async
>> notifications can work with the rest of multisite sync to satisfy them
>>
>> it sounds like you're interested in use cases with very strict
>> requirements on the sync delta, given that they demand a 'sensitivity'
>> on the order of 200ms
>>
>> however, multisite does asynchronous replication. this means that no
>> client can expect to read an object on a secondary zone immediately
>> after writing it to the primary. this replication could be arbitrarily
>> far behind. ultimately, we can't provide any guarantees about how long
>> it will take for a given write to replicate
>>
>> so i'm having a lot of trouble coming up with use cases that are
>> compatible with async replication, but are also 'killed' when we
>> replace notifications every 200ms with polling at a 20s interval
>>
>> if async replication is the problem, we can't expect notifications to
>> fix it. the client probably wants synchronous replication instead,
>> which could just mean writing each object to both zones before
>> completing
>>
>> if you're still advocating for these notifications, can you please
>> help to frame the discussion here?
>>
>> >
>> > Yehuda
>> >
>> > >
>> > > > OTOH, as Yehuda points out, the intended purpose of the async
>> > > > notifies was to implement polling avoidance--to provide wake-ups to
>> > > > sync endpoints that might otherwise sleep/idle as replication events
>> > > > accumulate. This is a well established design pattern, and if we
>> > > > remember that the async notifies are duplicating hints, it seems to
>> > > > make sense.
>> > >
>> > > Measuring to see how consequential this is would be legitimate.
>> > >
>> > > I can imagine a world where if the primary has an idea what the
>> > > secondary's polling period is, and there hasn't been much sync
>> > > activity and the primary knows the secondary won't poll for a while,
>> > > it might be worthwhile to send a single wakeup event when there's new
>> > > data available telling it that there's new stuff in the data log.
>> > >
>> > > Whether this is worthwhile would depend heavily on how frequently the
>> > > secondary polls the data log in the first place.
>> > >
>> > > _______________________________________________
>> > > Dev mailing list -- dev@xxxxxxx
>> > > To unsubscribe send an email to dev-leave@xxxxxxx
>> > >
>> >
>> > _______________________________________________
>> > Dev mailing list -- dev@xxxxxxx
>> > To unsubscribe send an email to dev-leave@xxxxxxx
>> >
>>
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx
_______________________________________________ Dev mailing list -- dev@xxxxxxx To unsubscribe send an email to dev-leave@xxxxxxx