VOTEQ...ERVIEW(3)
β¨ NAME β¨
okay so bestie, this is votequorum_overview β it's the Votequorum Library Overview π (and yeah, the whole thing lives in the Corosync Cluster Engine Programmer's Manual, if you were wondering where you wandered into π«Ά)
πΈ OVERVIEW πΈ
So. The votequorum library ships with the corosync project, no cap. It's the external interface to the vote-based quorum service. That service is optionally loaded into every node in a corosync cluster, and its whole job is to stop split-brain situations from happening π β the way it does that is by giving each system in the cluster a certain number of votes, and then making sure cluster operations only go ahead when a majority of those votes are actually present. iconic behaviour honestly π
The library hands you a mechanism to do all of this:
- Query the quorum status π
- Get a list of nodes known to the quorum service π
- Receive notifications of quorum state changes π
- Change the number of votes assigned to a node π³οΈ
- Change the number of expected votes for a cluster to be quorate π’
- Connect an additional quorum device to allow small clusters to remain quorate during node outages π¦
π§ VIRTUAL SYNCHRONY π§
okay this part is lowkey the main character of the whole page. Votequorum is the only one service where the library is allowed to talk during the synchronization phase. That's a big deal, because it means a quorum device can react to a membership change and decide whether to vote or not without a timing hazard β and the reason there's no timing hazard is that corosync just stands there in the synchronization phase until the qdevice on all nodes votes, or the timeout expires. no rush, no chaos, she waits π
but β and here's the plot twist π β as a side effect, extended virtual synchrony is broken for the votequorum service. Which means messages sent during the synchronization phase can be delivered sooner than messages that were sent right before the sync phase began. And yes, this applies to local messages too. fr fr. not a vibe, but it is what it is π
π BUGS π
No known bugs at the time of writing. The authors are from outerspace. Deal with it. πΈβ¨
π SEE ALSO π
go read these next bestie, they're all connected iykyk:
corosync-quorumtool(8)votequorum(5)votequorum_initialize(3)votequorum_finalize(3)votequorum_getinfo(3)votequorum_trackstart(3)votequorum_trackstop(3)votequorum_fd_get(3)votequorum_dispatch(3)votequorum_context_set(3)votequorum_context_get(3)votequorum_setexpected(3)votequorum_setvotes(3)
and that's the whole page bestie!! this lil beauty is a corosync Man Page, dated 2012-01-12, and yeah the manual page title is VOTEQ...ERVIEW(3) which is giving "we ran out of room in the header" energy π but she's still iconic. mwah ππ
π¦ where this page comes from
- debian bookworm: libvotequorum-dev 3.1.7-1+deb12u2 Β· BSD-3-Clause
- debian trixie: libvotequorum-dev 3.1.9-2+deb13u1 Β· BSD-3-Clause
- epel 9: corosynclib-devel 3.1.10-0.2.el9.1 Β· BSD-3-Clause
- fedora 43: corosynclib-devel 3.1.10-3.fc43 Β· BSD-3-Clause
- fedora 43: corosynclib-devel 3.1.10-3.fc43 Β· BSD-3-Clause
- fedora 43: corosynclib-devel 3.1.9-5.fc43 Β· BSD-3-Clause
- fedora 43: corosynclib-devel 3.1.9-5.fc43 Β· BSD-3-Clause
- fedora 44: corosynclib-devel 3.1.10-4.fc44 Β· BSD-3-Clause
- fedora 44: corosynclib-devel 3.1.10-4.fc44 Β· BSD-3-Clause
- fedora 44: corosynclib-devel 3.1.10-6.fc44 Β· BSD-3-Clause
- fedora 44: corosynclib-devel 3.1.10-6.fc44 Β· BSD-3-Clause
- nixos 26.05: corosync 3.1.9
- nixpkgs unstable: corosync 3.1.9
- opensuse-leap 16.0: corosync-devel 3.1.9-160000.4.1 Β· BSD-3-Clause
- opensuse-leap 16.0: corosync-devel 3.1.9-160000.4.1 Β· BSD-3-Clause
- opensuse-leap 16.0: corosync-devel 3.1.9-160000.4.1 Β· BSD-3-Clause
- opensuse-leap 16.0: corosync-devel 3.1.9-160000.4.1 Β· BSD-3-Clause
- ubuntu jammy: libvotequorum-dev 3.1.6-1ubuntu1 Β· BSD-3-Clause
- ubuntu jammy: libvotequorum-dev 3.1.6-1ubuntu1.2 Β· BSD-3-Clause
- ubuntu noble: libvotequorum-dev 3.1.7-1ubuntu3 Β· BSD-3-Clause
- ubuntu noble: libvotequorum-dev 3.1.7-1ubuntu3.2 Β· BSD-3-Clause
- ubuntu questing: libvotequorum-dev 3.1.9-2ubuntu1
- ubuntu questing: libvotequorum-dev 3.1.9-2ubuntu1.1
- ubuntu resolute: libvotequorum-dev 3.1.9-2ubuntu3 Β· BSD-3-Clause
- ubuntu stonking: libvotequorum-dev 3.1.10-3ubuntu1 Β· BSD-3-Clause
- Copyright (c) 2008, 2012 Red Hat, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms