[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