You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Todd Lipcon (JIRA)" <ji...@apache.org> on 2018/04/13 18:21:00 UTC

[jira] [Updated] (KUDU-2172) Fractional voting

     [ https://issues.apache.org/jira/browse/KUDU-2172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Todd Lipcon updated KUDU-2172:
------------------------------
    Issue Type: New Feature  (was: Bug)

> Fractional voting
> -----------------
>
>                 Key: KUDU-2172
>                 URL: https://issues.apache.org/jira/browse/KUDU-2172
>             Project: Kudu
>          Issue Type: New Feature
>          Components: consensus
>            Reporter: Mike Percy
>            Priority: Major
>
> Fractional voting is a concept where different voters in a Raft config get different voting weights. This can tip the balance in certain cases in which it would otherwise be impossible to achieve a majority.
> Example: With equally-weighted votes -- the standard scenario -- in a 4-voter config \{A, B, C, D\}, if a network partition bifurcated this config into two equal groups \{A, B\} and \{C, D\} then no one side could achieve a strict majority (greater than 2 out of 4 votes) and thus the configuration (as a whole) would be unavailable for writes. With fractional voting, if some (but not all) voters got an additional fractional weight to their vote, perhaps \{A=1.1, B=1.1, C=1.1, D=1.0\} it would be possible for some group of two nodes to achieve a majority of votes. In this case, the \{A, B\} group would have a combined weight of 2.2 out of 4.3, which is a strict majority. Therefore the \{A, B\} group would be able to elect a leader between them and accept writes to only the two nodes.
> There is a durability tradeoff, in exchange for availability, in the above scenario.
> It is worth noting that there is a utility overlap in certain scenarios between fractional voting and config change cancellation (KUDU-1194).
> This idea was suggested by Todd during a discussion of the [3-4-3 re-replication design|https://docs.google.com/document/d/1_gQ3BONhKVR2hFlDTShtdx1vHkbVTcLE3b-nrNFwGDI].



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)