From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp34.i.mail.ru (smtp34.i.mail.ru [94.100.177.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id BEDCF469719 for ; Wed, 21 Oct 2020 11:42:23 +0300 (MSK) Date: Wed, 21 Oct 2020 11:42:20 +0300 From: "Alexander V. Tikhonov" Message-ID: <20201021084220.GA158410@hpalx> References: <20201013133418.34422-1-sergepetrenko@tarantool.org> <7FC038B7-5195-413E-B030-2974657BA904@gmail.com> <414e784b-092a-de23-96a0-67b03ed34f5b@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <414e784b-092a-de23-96a0-67b03ed34f5b@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH] feedback_daemon: add synchro replication usage reporting List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Serge Petrenko Cc: tarantool-patches@dev.tarantool.org Hi Serge, I've checked results in gitlab [1], there no any new degradation found. Patch LGTM. [1] - https://gitlab.com/tarantool/tarantool/-/pipelines/205365404 On Tue, Oct 20, 2020 at 10:16:15PM +0300, Serge Petrenko wrote: > > 20.10.2020 20:09, Илья Конюхов пишет: > > Hi, > > > > Please increment "feedback_version" each time you patch feedback daemon report. You can do it here - https://github.com/tarantool/tarantool/blob/cf6a9c64dea6a4385f3fd4719e44d0d9dc9ffee9/src/box/lua/feedback_daemon.lua#L359 > Hi! Thanks for your answer, done. > > > 13 окт. 2020 г., в 16:34, Serge Petrenko написал(а): > > > > > > --- > > > https://github.com/tarantool/tarantool/tree/sp/feedback_daemon_synchro > > > > > > src/box/lua/feedback_daemon.lua | 12 ++++++++++++ > > > test/box-tap/feedback_daemon.test.lua | 21 ++++++++++++++++++--- > > > 2 files changed, 30 insertions(+), 3 deletions(-) > > > > > > diff --git a/src/box/lua/feedback_daemon.lua b/src/box/lua/feedback_daemon.lua > > > index 179e8fb47..aa296c445 100644 > > > --- a/src/box/lua/feedback_daemon.lua > > > +++ b/src/box/lua/feedback_daemon.lua > > > @@ -150,6 +150,7 @@ local function fill_in_schema_stats_impl(schema) > > > vinyl = 0, > > > temporary = 0, > > > ['local'] = 0, > > > + sync = 0, > > > } > > > > > > local indices = { > > > @@ -188,6 +189,9 @@ local function fill_in_schema_stats_impl(schema) > > > if space.is_local then > > > spaces['local'] = spaces['local'] + 1 > > > end > > > + if space.is_sync then > > > + spaces.sync = spaces.sync + 1 > > > + end > > > fill_in_indices_stats(space, indices) > > > > > > fiber.yield() > > > @@ -222,10 +226,18 @@ local function fill_in_features(feedback) > > > fill_in_schema_stats(feedback.features) > > > end > > > > > > +local function fill_in_options(feedback) > > > + local options = {} > > > + options.election_mode = box.cfg.election_mode > > > + options.synchro_quorum = box.cfg.replication_synchro_quorum > > > + feedback.options = options > > > +end > > > + > > > local function fill_in_feedback(feedback) > > > fill_in_base_info(feedback) > > > fill_in_platform_info(feedback) > > > fill_in_features(feedback) > > > + fill_in_options(feedback) > > > > > > return feedback > > > end > > > diff --git a/test/box-tap/feedback_daemon.test.lua b/test/box-tap/feedback_daemon.test.lua > > > index a04995d8a..c1ae5f81b 100755 > > > --- a/test/box-tap/feedback_daemon.test.lua > > > +++ b/test/box-tap/feedback_daemon.test.lua > > > @@ -67,7 +67,7 @@ if not ok then > > > os.exit(0) > > > end > > > > > > -test:plan(19) > > > +test:plan(21) > > > > > > local function check(message) > > > while feedback_count < 1 do > > > @@ -152,6 +152,7 @@ local expected = { > > > vinyl_spaces = 0, > > > temporary_spaces = 0, > > > local_spaces = 0, > > > + sync_spaces = 0, > > > tree_indices = 0, > > > rtree_indices = 0, > > > hash_indices = 0, > > > @@ -168,6 +169,7 @@ box.schema.create_space('features_vinyl', {engine = 'vinyl'}) > > > box.schema.create_space('features_memtx_empty') > > > box.schema.create_space('features_memtx', > > > {engine = 'memtx', is_local = true, temporary = true}) > > > +box.schema.create_space('features_sync', {is_sync=true}) > > > box.space.features_vinyl:create_index('vinyl_pk', {type = 'tree'}) > > > box.space.features_memtx:create_index('memtx_pk', {type = 'tree'}) > > > box.space.features_memtx:create_index('memtx_hash', {type = 'hash'}) > > > @@ -195,11 +197,12 @@ box.space.features_memtx:create_index('functional_multikey', > > > actual = daemon.generate_feedback() > > > local schema_stats = actual.features.schema > > > test:test('features.schema', function(t) > > > - t:plan(12) > > > - t:is(schema_stats.memtx_spaces, 2, 'memtx engine usage gathered') > > > + t:plan(13) > > > + t:is(schema_stats.memtx_spaces, 3, 'memtx engine usage gathered') > > > t:is(schema_stats.vinyl_spaces, 1, 'vinyl engine usage gathered') > > > t:is(schema_stats.temporary_spaces, 1, 'temporary space usage gathered') > > > t:is(schema_stats.local_spaces, 1, 'local space usage gathered') > > > + t:is(schema_stats.sync_spaces, 1, 'sync space usage gathered') > > > t:is(schema_stats.tree_indices, 6, 'tree index gathered') > > > t:is(schema_stats.hash_indices, 1, 'hash index gathered') > > > t:is(schema_stats.rtree_indices, 1, 'rtree index gathered') > > > @@ -216,9 +219,21 @@ actual = daemon.generate_feedback() > > > test:is(actual.features.schema.hash_indices, 2, > > > 'internal cache invalidates when schema changes') > > > > > > +-- > > > +-- collect synchronous replication and election box.cfg options. > > > +-- > > > +em = box.cfg.election_mode > > > +quorum = box.cfg.replication_synchro_quorum > > > +box.cfg{election_mode='candidate', replication_synchro_quorum=2} > > > +actual = daemon.generate_feedback() > > > +test:is(actual.options.election_mode, 'candidate', 'election_mode option reported') > > > +test:is(actual.options.synchro_quorum, 2, 'replication_synchro_quorum option reported') > > > +box.cfg{election_mode=em, replication_synchro_quorum=quorum} > > > + > > > box.space.features_vinyl:drop() > > > box.space.features_memtx_empty:drop() > > > box.space.features_memtx:drop() > > > +box.space.features_sync:drop() > > > > > > test:check() > > > os.exit(0) > > > -- > > > 2.24.3 (Apple Git-128) > > > > -- > Serge Petrenko >