[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