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 DEBEE6EC42; Fri, 2 Jul 2021 01:09:40 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org DEBEE6EC42 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1625177381; bh=PLDhdkCe3qAbqMphJXJ9mRco8dKa5RKbm/ZMuYt8m+w=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=aNi1L+uO5W7ATD45ntq3JCs2zy69IihHqbBarGAvqYZZ/gXDaivJT0/UubUQS5KBN 3EF9GTFIpdyD2N9EVYpX78cImzew8RGMI08Jakg1umQX0q9CLaKuDaXvQpukrGk+Qg t9YrDIum4k3K+sXUFf4D5fgVAWt89GSQ11jKmIxY= 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 8A4016EC40 for ; Fri, 2 Jul 2021 01:09:38 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 8A4016EC40 Received: by smtpng3.m.smailru.net with esmtpa (envelope-from ) id 1lz4sL-00061t-BL; Fri, 02 Jul 2021 01:09:37 +0300 To: tarantool-patches@dev.tarantool.org, olegrok@tarantool.org, yaroslav.dynnikov@tarantool.org Date: Fri, 2 Jul 2021 00:09:30 +0200 Message-Id: X-Mailer: git-send-email 2.24.3 (Apple Git-128) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-174C08C4: 5188C02AEC42908C481ED7ADC579193296BBA28369E3F2D2713F3D5F7D406D31BCF678C7329BA986 X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD954DFF1DC42D673FBE6C6848F3EB6EB89AE0756428E32ECE9182A05F538085040CB5E4ADC8CC512977472ED75823B1214989A1DD833B28A5EE87FDDD449B8AEC9 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE731D82F3F177D3BCDEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637F91103FA893F53AB8638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D8F6E47C71D9EDFAE5A9B8E839BF7A5D49117882F4460429724CE54428C33FAD305F5C1EE8F4F765FC55B19328CBC4F849A471835C12D1D9774AD6D5ED66289B52BA9C0B312567BB23117882F44604297287769387670735201E561CDFBCA1751F28451B159A507268D2E47CDBA5A96583BA9C0B312567BB231DD303D21008E29813377AFFFEAFD269A417C69337E82CC2E827F84554CEF50127C277FBC8AE2E8BA83251EDC214901ED5E8D9A59859A8B6A1DCCEB63E2F10FB089D37D7C0E48F6C5571747095F342E88FB05168BE4CE3AF X-C1DE0DAB: 8BD88D57C5CADBC8B2710865C386751094C72BDDC9A8ED5CA3B1A56EE2B804F6B226C914C996894645FD9D8A29397D6EFF55FE49A3C2BFCFC8C84E951CD0BE2F296C473AB1E14218EA052B563B0B06C67866D6147AF826D8F6E47C71D9EDFAE5A9B8E839BF7A5D49F972CCD2F8FE1EF1CFC4036BBF6A4EA9C41D4C2DBC849B32CB5012B2E24CD356 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D348D68DCC07DD06FF5BCA6B4B318842AA089B813F6976AE4C1F8412927758A3E7D33A3A2DEC9544D701D7E09C32AA3244C415C7062947ABDF4D30D19D0201FA52924AF4FAF06DA24FDFACE5A9C96DEB163 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojbL9S8ysBdXjw2yJDrod5MPNIWRiWwCtR X-Mailru-Sender: 689FA8AB762F73936BC43F508A063822BEC26596B9D1BC9FE1A21960338E89D63841015FED1DE5223CC9A89AB576DD93FB559BB5D741EB963CF37A108A312F5C27E8A8C3839CE0E267EA787935ED9F1B X-Mras: Ok Subject: [Tarantool-patches] [PATCH vshard 0/6] Master discovery 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" The patchset implements master discovery for the router using polling in a separate fiber + a hint from the storage when it rejects an RW request due to being not a master. The solution with subscriptions wasn't done due to architectural issues of box.session.push() on the storage making it too expensive to use both on the client and on the storage when number of connections is big. Branch: http://github.com/tarantool/vshard/tree/gerold103/gh-75-master-discovery Issue: https://github.com/tarantool/vshard/issues/75 Vladislav Shpilevoy (6): replicaset: introduce netbox_wait_connected() test: sort some table prints storage: introduce vshard.storage._call('info') config: introduce master 'auto' replicaset option router: introduce automatic master discovery router: update master using a hint from storage test/router/master_discovery.result | 941 ++++++++++++++++++++++++++ test/router/master_discovery.test.lua | 439 ++++++++++++ test/router/router.result | 36 +- test/router/router.test.lua | 2 + test/storage/storage.result | 14 + test/storage/storage.test.lua | 7 + test/unit/config.result | 48 ++ test/unit/config.test.lua | 21 + test/upgrade/upgrade.result | 15 +- vshard/cfg.lua | 27 +- vshard/consts.lua | 5 + vshard/error.lua | 7 +- vshard/replicaset.lua | 326 +++++++-- vshard/router/init.lua | 115 +++- vshard/storage/init.lua | 16 +- 15 files changed, 1939 insertions(+), 80 deletions(-) create mode 100644 test/router/master_discovery.result create mode 100644 test/router/master_discovery.test.lua -- 2.24.3 (Apple Git-128)