[patches] Re: [PATCH] applier: stop sending ACKs if master closed socket
v.shpilevoy at tarantool.org
v.shpilevoy at tarantool.org
Tue Jan 30 16:17:54 MSK 2018
Or you can apply patch for transactional replication and send ACK on each applied xlog transaction.
> 30 янв. 2018 г., в 15:47, Konstantin Osipov <kostja at tarantool.org> написал(а):
>
> * 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