[PATCH] applier: stop sending ACKs if master closed socket

Konstantin Osipov kostja at tarantool.org
Tue Jan 30 15:47:20 MSK 2018


* Vladimir Davydov <vdavydov.dev at gmail.com> [18/01/30 13:54]:
> 
> Hmm, how do we define "batch" in applier?

Please take a look at coio_read_xrow. It performs a buffered read.
But we parse one row at a time. We could try to parse entire batch
at once, sending one ack per entire buffer. Or we could
'lookahead' parse the next row before sending the ack.

> Generally, I agree that it is an overkill to send an ACK per each
> applied request, but I don't know how to fix it right. I see the
> following options:
> 
>  - Rate limit ACKs, say only send an ACK once per
>    replication_timeout tops.
> 
>  - Send an ACK once per N messages/bytes. What should N be?
>    If N is not big enough, we will still get quite a lot of
>    error messages from the writer fiber though.
> 
>  - Do not send an ACK until the socket is empty
>    (use ioctl(FIONREAD) to detect it?)
> 
> What do you think?
> 
> Thanks.

-- 
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.org - www.twitter.com/kostja_osipov



More information about the Tarantool-patches mailing list