From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id D4C546EC40; Fri, 2 Jul 2021 01:11:10 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org D4C546EC40 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1625177470; bh=B6RaSV2YHGoWaup123HQaWSQR/0SKbuk9OvgMUH+SOg=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=irtcKlAvmUjxkeygi8p7tjQ43ZnBfQKSNQ/UIm9me19HGfCFfocBvio71TlYEcyTq P0+wdo85h8gOZzUTBCXeIm4XMKut/8a1n6WoEqH/9efu6W9KJRrluupVia19dAJ+Lb tBUOloctXxnCYExgWlev+dRR0Mlp272QcBxqTBXo= Received: from smtpng3.i.mail.ru (smtpng3.i.mail.ru [94.100.177.149]) (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 137E76EC43 for ; Fri, 2 Jul 2021 01:09:41 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 137E76EC43 Received: by smtpng3.m.smailru.net with esmtpa (envelope-from ) id 1lz4sO-00061t-3B; Fri, 02 Jul 2021 01:09:40 +0300 To: tarantool-patches@dev.tarantool.org, olegrok@tarantool.org, yaroslav.dynnikov@tarantool.org Date: Fri, 2 Jul 2021 00:09:33 +0200 Message-Id: <6cb2d3736f1fe03f7a398af2f4d7846c2abaf4e0.1625177221.git.v.shpilevoy@tarantool.org> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD954DFF1DC42D673FB0C620705B15DE32DFE392EA95FA71EAB182A05F5380850407E938006178308A4B78A751E95FFCDF42499F5338968B702D13ED9FAF454F9DC X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7C6A43EB42C8B28B9EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637D82ED515D6052E03EA1F7E6F0F101C6723150C8DA25C47586E58E00D9D99D84E1BDDB23E98D2D38BD6CF32B5F8F9D4041C3A9BD2C20742F9476F1DC7C28C0C50CC7F00164DA146DAFE8445B8C89999728AA50765F7900637F6B57BC7E64490618DEB871D839B7333395957E7521B51C2DFABB839C843B9C08941B15DA834481F8AA50765F7900637F6B57BC7E6449061A352F6E88A58FB86F5D81C698A659EA7E827F84554CEF5019E625A9149C048EE9ECD01F8117BC8BEE2021AF6380DFAD18AA50765F790063735872C767BF85DA227C277FBC8AE2E8BAEB924C2B054B06E75ECD9A6C639B01B4E70A05D1297E1BBCB5012B2E24CD356 X-B7AD71C0: AC4F5C86D027EB782CDD5689AFBDA7A2AD77751E876CB595E8F7B195E1C97831B2FCC5B1B5B115E511447ED96C72CD2D X-C1DE0DAB: C20DE7B7AB408E4181F030C43753B8186998911F362727C414F749A5E30D975CBCA6440478D4BA46F6097E11E183AE0CAEFC5AE8CA7B22899C2B6934AE262D3EE7EAB7254005DCED7532B743992DF240BDC6A1CF3F042BAD6DF99611D93F60EFB1D0AC14175A0720699F904B3F4130E343918A1A30D5E7FCCB5012B2E24CD356 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34524B2D44961BF9C63A5426303820CB24F5B7AB0A7B1C3174AC38EF277585DEB35505F01A6B0E409F1D7E09C32AA3244CE6C25F191C34C26EB0EA53225512D8DD795D98D676DD64D0FACE5A9C96DEB163 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojbL9S8ysBdXjw2yJDrod5MDfQ5j0QGGO5 X-Mailru-Sender: 689FA8AB762F73936BC43F508A063822D68DDD1B1951C02C859C753B06036D153841015FED1DE5223CC9A89AB576DD93FB559BB5D741EB963CF37A108A312F5C27E8A8C3839CE0E267EA787935ED9F1B X-Mras: Ok Subject: [Tarantool-patches] [PATCH vshard 3/6] storage: introduce vshard.storage._call('info') X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Vladislav Shpilevoy via Tarantool-patches Reply-To: Vladislav Shpilevoy Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Internal info function returns data needed by the routers. Now it is only is_master flag. This is required for master discovery. In future the function is supposed to get more attributes. For instance, instance's own part of its config, bucket generation or bucket sequence number. Needed for #75 --- test/storage/storage.result | 14 ++++++++++++++ test/storage/storage.test.lua | 7 +++++++ test/upgrade/upgrade.result | 1 + vshard/storage/init.lua | 7 +++++++ 4 files changed, 29 insertions(+) diff --git a/test/storage/storage.result b/test/storage/storage.result index 5372059..acae98f 100644 --- a/test/storage/storage.result +++ b/test/storage/storage.result @@ -938,6 +938,20 @@ assert(lstorage.bucket_are_all_rw()) vshard.storage.internal.errinj.ERRINJ_NO_RECOVERY = false --- ... +-- +-- Internal info function. +-- +vshard.storage._call('info') +--- +- is_master: true +... +_ = test_run:switch('storage_1_b') +--- +... +vshard.storage._call('info') +--- +- is_master: false +... _ = test_run:switch("default") --- ... diff --git a/test/storage/storage.test.lua b/test/storage/storage.test.lua index d1f3f50..99ef2c4 100644 --- a/test/storage/storage.test.lua +++ b/test/storage/storage.test.lua @@ -292,6 +292,13 @@ box.space._bucket:update(10, {{'=', 2, vshard.consts.BUCKET.ACTIVE}}) assert(lstorage.bucket_are_all_rw()) vshard.storage.internal.errinj.ERRINJ_NO_RECOVERY = false +-- +-- Internal info function. +-- +vshard.storage._call('info') +_ = test_run:switch('storage_1_b') +vshard.storage._call('info') + _ = test_run:switch("default") test_run:drop_cluster(REPLICASET_2) test_run:drop_cluster(REPLICASET_1) diff --git a/test/upgrade/upgrade.result b/test/upgrade/upgrade.result index 8280e5b..8e59807 100644 --- a/test/upgrade/upgrade.result +++ b/test/upgrade/upgrade.result @@ -162,6 +162,7 @@ vshard.storage._call ~= nil vshard.storage._call('test_api', 1, 2, 3) | --- | - - bucket_recv + | - info | - rebalancer_apply_routes | - rebalancer_request_state | - storage_map diff --git a/vshard/storage/init.lua b/vshard/storage/init.lua index e13a24e..465abc5 100644 --- a/vshard/storage/init.lua +++ b/vshard/storage/init.lua @@ -2549,6 +2549,12 @@ local function storage_map(rid, name, args) return true, res end +local function storage_service_info() + return { + is_master = this_is_master(), + } +end + local service_call_api local function service_call_test_api(...) @@ -2562,6 +2568,7 @@ service_call_api = setmetatable({ storage_ref = storage_ref, storage_unref = storage_unref, storage_map = storage_map, + info = storage_service_info, test_api = service_call_test_api, }, {__serialize = function(api) local res = {} -- 2.24.3 (Apple Git-128)