[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