[tarantool-patches] Re: [PATCH 4/4] swim: do not rebuild packet meta multiple times

Konstantin Osipov kostja at tarantool.org
Thu Apr 18 20:23:48 MSK 2019


* Vladislav Shpilevoy <v.shpilevoy at tarantool.org> [19/04/18 09:03]:
> Before the patch there were 2 cases when an unchanged packet was
> rebuilt partially on each send:
> 
>   - cached round message's meta section was rebuilt on each
>     EV_WRITE event in swim_scheduler_on_output() function;
> 
>   - broadcast message's meta section was rebuilt too even though
>     its content does not depend on a broadcast interface.
> 
> The third case appears with indirect pings patch which aggravates
> meta building business by routing and packet forwarding. When a
> packet needs to be forwarded farther, its meta is built in a
> special manner preserving the route before EV_WRITE appears, and
> on_output should not touch that meta.
> 
> This patch adds a check preventing unnecessary meta rebuilds.
> Besides, the check and the meta building code are moved into a
> dedicated function out of swim_scheduler_on_output() - it allows
> to completely split logic of packing a message and sending it.
> Separated logic helps a lot when indirect pings are introduced.
> 

ok to push.


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




More information about the Tarantool-patches mailing list