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 AE8006EC58; Thu, 18 Feb 2021 00:01:12 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org AE8006EC58 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1613595672; bh=1oz+SpYO9sGsCbzcHGWX/WXgx7NP1FxMnxP4oLYaITQ=; h=To:References:Date:In-Reply-To:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=go3ffESdRjD+5s5do6TrRVrHToawDVXlyAcJmQ2cJzpOdJIW6fz2JVRoml48i29vL AUCTbcqXPKLNhuBan3xfWFtZaouHXwLs1QKrCJiv3DQkfl+1TlIQMMvbjuvJqT/zhR SSSS4RhWdbQgWP+PjxXqp7Wq6jdGpKHLFdily5sw= Received: from smtp60.i.mail.ru (smtp60.i.mail.ru [217.69.128.40]) (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 B02416EC58 for ; Thu, 18 Feb 2021 00:01:11 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org B02416EC58 Received: by smtp60.i.mail.ru with esmtpa (envelope-from ) id 1lCTwX-0005xH-2e; Thu, 18 Feb 2021 00:01:05 +0300 To: Cyrill Gorcunov , tml References: <20210212080324.274627-1-gorcunov@gmail.com> Message-ID: Date: Wed, 17 Feb 2021 22:01:03 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <20210212080324.274627-1-gorcunov@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD975C3EC174F5669229511437AA01F46811CFCF616A939B362182A05F5380850403CBF6ECECB3B96065BAF063442F17A7BD04AE76B9ABDE2207ABAEA48DB38A585 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE77F5852B248C7AFEDEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F790063770BCEBC9193A33448638F802B75D45FF5571747095F342E8C7A0BC55FA0FE5FCCE974CD9D9042F9174971D5A32B1C58BCBBA4C591FD96E2E389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C0B27420F9988F54058941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B601F8F2FECC0250C8CC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB8D32BA5DBAC0009BE9E8FC8737B5C2249082DB3601DDE4E4976E601842F6C81A12EF20D2F80756B5F7E9C4E3C761E06A776E601842F6C81A127C277FBC8AE2E8BFD4895D4057426303AA81AA40904B5D9DBF02ECDB25306B2B25CBF701D1BE8734AD6D5ED66289B5278DA827A17800CE7D151390FFDBF639967F23339F89546C5A8DF7F3B2552694A6FED454B719173D6725E5C173C3A84C3E2C51E5CF308F7B035872C767BF85DA2F004C906525384306FED454B719173D6462275124DF8B9C934F12F0C005D1A85E5BFE6E7EFDEDCD789D4C264860C145E X-C1DE0DAB: 0D63561A33F958A5F8C8FECE7270BCE2F7DFF304BF285438E05F171CCCEB9D55D59269BC5F550898D99A6476B3ADF6B47008B74DF8BB9EF7333BD3B22AA88B938A852937E12ACA75448CF9D3A7B2C848410CA545F18667F91A7EA1CDA0B5A7A0 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34D71B56C992F8AF19BBDFFAD7AC5CCFB73DE1C2E4D03E3D0E1F7A486BEA63275430A428AC2B9E391C1D7E09C32AA3244C14A9D803FFB4561672BB9AACA875C341A995755A1445935E83B48618A63566E0 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojJkVkVdRHm//pvIITrZgrKg== X-Mailru-Sender: 504CC1E875BF3E7D9BC0E5172ADA3110CE077853106FB5608152513A67FFDE15976AF1CB91E68E8107784C02288277CA03E0582D3806FB6A5317862B1921BA260ED6CFD6382C13A6112434F685709FCF0DA7A0AF5A3A8387 X-Mras: Ok Subject: Re: [Tarantool-patches] [RFC] qsync: provide box.info interface for monitoring 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 Cc: Mons Anderson Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi! Thanks for the patch! > Guys, I didn't put is anywhere yet, because I would like > to gather comments on design, so not for merge. > > 1) Vlad pointed that we might have several limbo instances > in future. Should I start printing limbos as map initially, > say > > synchro: > limbo: > 1: > qlen: 0 > owner_id: 0 > 2: > qlen: 0 > owner_id: 0 I am not sure 'limbo' name should be exposed. It is an internal term. Also it looks strange to shorten 'queue len' to 'qlen', but leave 'owner id' as is. Besides, what is 'owner_id'? Don't synchro.limbo indexes mean owner ids? In future if we will have many limbos, they will belong to one instance each. No ownwership transfers AFAIU. That is the whole idea. Perhaps a better naming would be this: synchro: queue: 1: len/length: quorum: There is only one key now in each queue, but more may be added in future, so I wouldn't flatten it. Another problem I see - to get your own limbo you need to know your instance id. So to get the stat you need to do the ugly thing: mystat = box.info.synchro.queue[box.info.id] Maybe it is not that bad though. I don't use monitoring so can't tell. But would probably be nice to have box.info.synchro.local_queue which would reference the same Lua table as used in box.info.synchro.queue with the local id. > where 1 and 2 gonna be either plain enumeration of limbo > instances? > > 2) Vlad, could you please comment which else values we > need for better testing? For testing the queue length and quorum value are enough I hope. > 3) Mons, could you please think through what else parameters > are might be needed for solutions team? > > 4) Any other ideas are highly appreciated! I advise to ask the same questions to Vlad Grubov. He is going to use it in prod. > diff --git a/src/box/txn_limbo.h b/src/box/txn_limbo.h > index c28b5666d..43505e7a2 100644 > --- a/src/box/txn_limbo.h > +++ b/src/box/txn_limbo.h > @@ -94,6 +94,10 @@ struct txn_limbo { > * them LSNs in the same order. > */ > struct rlist queue; > + /** > + * Number of entries in limbo queue. > + */ > + int64_t qlen; Maybe just call it 'size'? Or 'length'? Limbo is the queue itself. So it looks like 'queue.qlen', which sounds tautological. > /** > * Instance ID of the owner of all the transactions in the > * queue. Strictly speaking, nothing prevents to store not