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 BF9276EC55; Sun, 18 Jul 2021 20:01:01 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org BF9276EC55 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1626627661; bh=ODQLAEj7QpXmbwAxGWNhr2wvtF/6exHyRohRURqkJrY=; h=To:References:Date:In-Reply-To:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=So6ztSLnMG05IkpXWEtow+Qq7/EGUrXhGgfp2F+kT/H5KM6uMTEpqvPT95v/5Xho4 H1zzXKZzilixDrk7otleV4n5RwS4808jMY/8QZZOwa4UcfDXgLahT2tzT0tpJhWUTY bbA4uNnjCSN1aG9pZm16nHXJfgxeIpZkWd+qRJ7Y= Received: from smtpng1.i.mail.ru (smtpng1.i.mail.ru [94.100.181.251]) (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 74D176EC55 for ; Sun, 18 Jul 2021 20:00:39 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 74D176EC55 Received: by smtpng1.m.smailru.net with esmtpa (envelope-from ) id 1m5A9e-00007x-OF; Sun, 18 Jul 2021 20:00:39 +0300 To: Konstantin Osipov , tarantool-patches@dev.tarantool.org, gorcunov@gmail.com, sergepetrenko@tarantool.org References: <0c92a88ff1d392f8b03de59be8cb19a162bf78f8.1626392372.git.v.shpilevoy@tarantool.org> <20210716142959.GC146960@starling> Message-ID: Date: Sun, 18 Jul 2021 19:00:37 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: <20210716142959.GC146960@starling> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD941C43E597735A9C30288BCF456A452EC92BAB6D044D5CCDE182A05F538085040AFC703BA239209280CF3E5027135CBF622B2BFF3D365D7617FB62AE17491D69D X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7046EF22710D35B81EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637D4360D888D8F9BE48638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D803FD967483BD589FADCC629AC91395A6117882F4460429724CE54428C33FAD305F5C1EE8F4F765FCEA77C8EAE1CE44B0A471835C12D1D9774AD6D5ED66289B52BA9C0B312567BB23117882F4460429728776938767073520B1593CA6EC85F86DE5D25F19253116ADD2E47CDBA5A96583BA9C0B312567BB231DD303D21008E29813377AFFFEAFD269A417C69337E82CC2E827F84554CEF50127C277FBC8AE2E8BA83251EDC214901ED5E8D9A59859A8B6A1DCCEB63E2F10FB089D37D7C0E48F6C5571747095F342E88FB05168BE4CE3AF X-C1DE0DAB: 0D63561A33F958A54F11D16609FF0E779B9B8E8B4153DD46D8FFE2364902678CD59269BC5F550898D99A6476B3ADF6B47008B74DF8BB9EF7333BD3B22AA88B938A852937E12ACA7501A9DF589746230F410CA545F18667F91A7EA1CDA0B5A7A0 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D3454CC76E5F54B410C1819CA376C95C686F2B3AD9BA3693C18DD600D2B072F53CA476AE5E6BE22B62B1D7E09C32AA3244C59997F7B0A6382FA1B199F3755D9348335DA7DC5AF9B58C0927AC6DF5659F194 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2bioj+8+KVR9NZrGDl0WMfr0r9Q== X-Mailru-Sender: 689FA8AB762F7393C37E3C1AEC41BA5DF7E542834C6981841DBA036A3A0D2AE83841015FED1DE5223CC9A89AB576DD93FB559BB5D741EB963CF37A108A312F5C27E8A8C3839CE0E267EA787935ED9F1B X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH 1/2] replication: introduce ballot.can_be_leader 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" On 16.07.2021 16:29, Konstantin Osipov via Tarantool-patches wrote: > * Vladislav Shpilevoy via Tarantool-patches [21/07/16 11:23]: >> The flag tells whether the sender has election mode 'candidate' or >> 'manual'. >> >> The new field during bootstrap will help to avoid selecting a >> 'voter' as a master. Voters can't write, they are unable to boot >> themselves nor register others. >> >> @TarantoolBot document >> Title: New field - IPROTO_BALLOT_CAN_BE_LEADER >> It is sent as a part of `IPROTO_BALLOT (0x29)`. The field is a >> boolean flag which is true if the sender has `election_mode` in >> its config `'manual'` or `'candidate'`. >> >> During bootstrap the nodes able to become a leader are preferred >> over the nodes configured as `'voter'`. > > Curious why did you add this feature in the first place, I mean > "eligibility"? Each voter has to be able to become a leader, > otherwise raft liveness guarantees are violated. Raft has > learners, but learners neither vote nor can become leaders. Voters are nodes which an admin does not want to be a leader. For instance, they are too far away physically. As voters, they might help to elect a leader, for example, if there are just 3 nodes one of which is a voter. Another application is when you specifically start 1 node as a voter and 2 candidates. The voter might skip all the replication data and work on a slow small machine. It can help to form a majority. We are planning to make this feature even easier to use by adding dataless nodes just for voting. As for Raft, it should not bring any problems. In Raft you can say that all nodes are candidates, but some of them are so slow, that they can never vote for themselves in time. Raft still works, and you essentially have 'voters'.