From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp5.mail.ru (smtp5.mail.ru [94.100.179.24]) (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 5C3AA469719 for ; Tue, 13 Oct 2020 18:56:27 +0300 (MSK) References: <20201013133418.34422-1-sergepetrenko@tarantool.org> From: Serge Petrenko Message-ID: <1daa41e4-6922-42e7-8a90-fe07e79d541a@tarantool.org> Date: Tue, 13 Oct 2020 18:56:25 +0300 MIME-Version: 1.0 In-Reply-To: <20201013133418.34422-1-sergepetrenko@tarantool.org> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: 8bit Content-Language: en-GB 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: v.shpilevoy@tarantool.org, kyukhin@tarantool.org Cc: tarantool-patches@dev.tarantool.org 13.10.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, > } New patch on top: From 9de473601d9643fbb1b36cc56d80a09dc3989106 Mon Sep 17 00:00:00 2001 From: Serge Petrenko Date: Tue, 13 Oct 2020 18:48:48 +0300 Subject: [PATCH] feedback_daemon: report box.on_reload_configuration usage ---  src/box/lua/feedback_daemon.lua       | 2 ++  test/box-tap/feedback_daemon.test.lua | 4 +++-  2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/box/lua/feedback_daemon.lua b/src/box/lua/feedback_daemon.lua index 026eef641..4779448ca 100644 --- a/src/box/lua/feedback_daemon.lua +++ b/src/box/lua/feedback_daemon.lua @@ -224,6 +224,8 @@ end  local function fill_in_features(feedback)      feedback.features = {}      fill_in_schema_stats(feedback.features) +    feedback.features.on_reload_configuration_used = +        type(box.on_reload_configuration) == 'function'  end  local function fill_in_options(feedback) diff --git a/test/box-tap/feedback_daemon.test.lua b/test/box-tap/feedback_daemon.test.lua index abf7b9576..4a1f636b7 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(22) +test:plan(23)  local function check(message)      while feedback_count < 1 do @@ -226,7 +226,9 @@ test:is(actual.features.schema.hash_indices, 2,  em = box.cfg.election_mode  quorum = box.cfg.replication_synchro_quorum  box.cfg{election_mode='candidate', replication_synchro_quorum=2} +box.on_reload_configuration = function() end  actual = daemon.generate_feedback() +test:is(actual.features.on_reload_configuration_used, true, 'on_reload_configuration reported')  test:is(actual.options.election_mode, 'candidate', 'election_mode option reported')  test:is(actual.options.replication_synchro_quorum, 2, 'replication_synchro_quorum option reported')  test:is(actual.options.memtx_use_mvcc_engine, false, 'memtx_use_mvcc_engine option reported') -- 2.24.3 (Apple Git-128) > > 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) -- Serge Petrenko