[Tarantool-patches] [RFC] on downstream.lag design

Cyrill Gorcunov gorcunov at gmail.com
Wed Jun 2 11:41:11 MSK 2021


On Wed, Jun 02, 2021 at 09:55:38AM +0300, Serge Petrenko wrote:
> 
> What's wal_st? Is it a list of all sent out xrow.tms?

It is a new structure, where I will remember the last xrow.tms.
In previous version I kept there first synchro row timestamp.
...

> > 
> > Once ACK is obtained the lag set to some positive value [ev_now - xrow.tm].
> > This value remains immutable until new sync transaction is sent. On new
> > sync transaction we do the same -- asign value from row.tm and count
> > time until ACK is received.
> 
> I'm not sure I understood it all correstly. Correct me if I'm wrong,
> here's how I unerstand it:
> 
> You save xrow.tm in a list or something in relay, once sending the
> corresponding row out.
> 
> When applier sends out an acks for the row, the ack contains the same
> xrow.tm received earlier.
> 
> Relay, upon receiving an ack, finds the corresponding xrow.tm in list and
> removes it.
> 
> Every time downstream.lag is read it is equal ev_now() - oldest xrow.tm in
> list.
> 
> Is this right?

Kind of. I hasn't considered a list here but rather a single timestamp value
per relay. As we've discussed verbally instead I should think over moving
this tracking into txn_limbo instead. Gimme some time to propose a new design,
I'll post it here.


More information about the Tarantool-patches mailing list