Tarantool development patches archive
 help / color / mirror / Atom feed
* [tarantool-patches] [PATCH v2 0/2] IProto fix and net_msg_max option
@ 2018-05-03 21:05 Vladislav Shpilevoy
  2018-05-03 21:05 ` [tarantool-patches] [PATCH v2 1/2] iproto: fix error with unstoppable batching Vladislav Shpilevoy
  2018-05-03 21:05 ` [tarantool-patches] [PATCH v2 2/2] iproto: allow to configure IPROTO_MSG_MAX Vladislav Shpilevoy
  0 siblings, 2 replies; 7+ messages in thread
From: Vladislav Shpilevoy @ 2018-05-03 21:05 UTC (permalink / raw)
  To: tarantool-patches; +Cc: kostja

Branch: http://github.com/tarantool/tarantool/tree/gh-3320-config-msg-max
Issue: https://github.com/tarantool/tarantool/issues/3320

IPROTO_MSG_MAX is a constant that restricts count of requests in fly. It allows
to do not produce too many fibers in TX thread, that would lead to too big
overhead on fibers switching, their stack storing.

But some users have powerful metal on which Tarantool IPROTO_MSG_MAX constant is
not serious, or they want to run more long-poll requests. The patch exposes it
as a configuration runtime parameter.

'net_msg_max' is its name. If a user sees that IProto thread is stuck due to
too many requests, it can change iproto_msg_max in runtime, and IProto thread
immediately starts processing pending requests.

'net_msg_max' can be decreased, but obviously it can not stop already runned
requests, so if now in IProto thread request count is > new 'net_msg_max'
value, then it takes some time until some requests will be finished.

Maximal IProto message count is very linked with TX fiber pool size, that limits
count of fibers produced by remote clients, and transactions. Now it is
configurable too.

In the same patchset a bug is fixed with unstoppable batching ignoring the
message limit on IProto requests, and iproto connection resuming is reworked to
separate connection resuming and new data reading.

Vladislav Shpilevoy (2):
  iproto: fix error with unstoppable batching
  iproto: allow to configure IPROTO_MSG_MAX

 src/box/box.cc                  |  11 +-
 src/box/box.h                   |   1 +
 src/box/iproto.cc               | 220 ++++++++++++++++++++++++++++------------
 src/box/iproto.h                |   3 +
 src/box/lua/cfg.cc              |  12 +++
 src/box/lua/load_cfg.lua        |   3 +
 src/fiber_pool.c                |  14 +++
 src/fiber_pool.h                |  14 ++-
 test/app-tap/init_script.result |  55 +++++-----
 test/box/admin.result           |   2 +
 test/box/cfg.result             |  27 +++++
 test/box/cfg.test.lua           |  10 ++
 test/box/errinj.result          |  69 +++++++++++++
 test/box/errinj.test.lua        |  29 ++++++
 test/box/net_msg_max.result     | 134 +++++++++++++++++++++++-
 test/box/net_msg_max.test.lua   |  72 ++++++++++++-
 16 files changed, 574 insertions(+), 102 deletions(-)

-- 
2.15.1 (Apple Git-101)

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-05-04 11:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-03 21:05 [tarantool-patches] [PATCH v2 0/2] IProto fix and net_msg_max option Vladislav Shpilevoy
2018-05-03 21:05 ` [tarantool-patches] [PATCH v2 1/2] iproto: fix error with unstoppable batching Vladislav Shpilevoy
2018-05-04  8:26   ` [tarantool-patches] " Konstantin Osipov
2018-05-04 11:56     ` Vladislav Shpilevoy
2018-05-03 21:05 ` [tarantool-patches] [PATCH v2 2/2] iproto: allow to configure IPROTO_MSG_MAX Vladislav Shpilevoy
2018-05-04  8:46   ` [tarantool-patches] " Konstantin Osipov
2018-05-04 11:56     ` Vladislav Shpilevoy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox