From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Vladimir Davydov Subject: [PATCH 00/11] vinyl: prepare for transaction throttling Date: Thu, 20 Sep 2018 12:34:05 +0300 Message-Id: To: kostja@tarantool.org Cc: tarantool-patches@freelists.org List-ID: This patch set contains preparatory patches necessary for implementing transaction throttling. It does some refactoring, introduces basic throttling based on dump bandwidth, and splits the rate limit in soft and hard, which is necessary for compaction based throttling. The only thing left is invent such a throttling policy that guarantees that compaction always keeps up with dumps. https://github.com/tarantool/tarantool/issues/1862 https://github.com/tarantool/tarantool/tree/dv/gh-1862-vy-throttling Vladimir Davydov (11): vinyl: merge vy_quota_release and vy_quota_update_dump_bandwidth vinyl: refactor quota use/unuse methods vinyl: do not try to trigger dump if it is already in progress vinyl: don't start quota timer until local recovery is complete vinyl: add helper to start scheduler and enable quota on startup vinyl: zap vy_env::memory, read_threads, and write_threads vinyl: do not account zero dump bandwidth vinyl: set quota timer period to 100 ms vinyl: implement basic transaction throttling vinyl: implement quota wait queue without fiber_cond vinyl: split quota consumption rate limit into soft and hard src/box/vinyl.c | 79 +++++----- src/box/vy_quota.c | 340 +++++++++++++++++++++++++++++++++---------- src/box/vy_quota.h | 146 +++++++++++++++---- src/box/vy_run.c | 12 +- src/box/vy_run.h | 17 ++- test/unit/vy_point_lookup.c | 2 +- test/vinyl/suite.ini | 2 +- test/vinyl/throttle.result | 102 +++++++++++++ test/vinyl/throttle.test.lua | 54 +++++++ 9 files changed, 601 insertions(+), 153 deletions(-) create mode 100644 test/vinyl/throttle.result create mode 100644 test/vinyl/throttle.test.lua -- 2.11.0