Zookeeper Quorum and the Non- Quorum











up vote
1
down vote

favorite












Zookeeper Experts.



The question that I am asking might be basic to you, but I am new to ZK, and I haven't mastered the tool yet so forgive me. With that in mind here is my question.



Suppose I have a ZK Cluster of 5 Servers, and I have a quorum of 3. Now this guarantees that the servers won't go into split-brain scenarios, if they are located into two physically separate DC or machines right.



However, what I want to know is if the Quorum is set to three it means that the Leader server, will need to wait until at least 2 server replicate the written data, total of 3 replicated data. But what if a client connects to the server that is not part of the Quorum any of the 2 servers, isn't that means it gets the old data ?










share|improve this question
























  • Typically, you don't deploy ZK in two physically separate DCs due to network latency between them. For example, a single cluster across US and Europe wouldn't work very well
    – cricket_007
    Nov 9 at 15:32















up vote
1
down vote

favorite












Zookeeper Experts.



The question that I am asking might be basic to you, but I am new to ZK, and I haven't mastered the tool yet so forgive me. With that in mind here is my question.



Suppose I have a ZK Cluster of 5 Servers, and I have a quorum of 3. Now this guarantees that the servers won't go into split-brain scenarios, if they are located into two physically separate DC or machines right.



However, what I want to know is if the Quorum is set to three it means that the Leader server, will need to wait until at least 2 server replicate the written data, total of 3 replicated data. But what if a client connects to the server that is not part of the Quorum any of the 2 servers, isn't that means it gets the old data ?










share|improve this question
























  • Typically, you don't deploy ZK in two physically separate DCs due to network latency between them. For example, a single cluster across US and Europe wouldn't work very well
    – cricket_007
    Nov 9 at 15:32













up vote
1
down vote

favorite









up vote
1
down vote

favorite











Zookeeper Experts.



The question that I am asking might be basic to you, but I am new to ZK, and I haven't mastered the tool yet so forgive me. With that in mind here is my question.



Suppose I have a ZK Cluster of 5 Servers, and I have a quorum of 3. Now this guarantees that the servers won't go into split-brain scenarios, if they are located into two physically separate DC or machines right.



However, what I want to know is if the Quorum is set to three it means that the Leader server, will need to wait until at least 2 server replicate the written data, total of 3 replicated data. But what if a client connects to the server that is not part of the Quorum any of the 2 servers, isn't that means it gets the old data ?










share|improve this question















Zookeeper Experts.



The question that I am asking might be basic to you, but I am new to ZK, and I haven't mastered the tool yet so forgive me. With that in mind here is my question.



Suppose I have a ZK Cluster of 5 Servers, and I have a quorum of 3. Now this guarantees that the servers won't go into split-brain scenarios, if they are located into two physically separate DC or machines right.



However, what I want to know is if the Quorum is set to three it means that the Leader server, will need to wait until at least 2 server replicate the written data, total of 3 replicated data. But what if a client connects to the server that is not part of the Quorum any of the 2 servers, isn't that means it gets the old data ?







apache-zookeeper quorum






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 9 at 15:30









cricket_007

76.4k1042106




76.4k1042106










asked Nov 8 at 17:46









Jared.T

62




62












  • Typically, you don't deploy ZK in two physically separate DCs due to network latency between them. For example, a single cluster across US and Europe wouldn't work very well
    – cricket_007
    Nov 9 at 15:32


















  • Typically, you don't deploy ZK in two physically separate DCs due to network latency between them. For example, a single cluster across US and Europe wouldn't work very well
    – cricket_007
    Nov 9 at 15:32
















Typically, you don't deploy ZK in two physically separate DCs due to network latency between them. For example, a single cluster across US and Europe wouldn't work very well
– cricket_007
Nov 9 at 15:32




Typically, you don't deploy ZK in two physically separate DCs due to network latency between them. For example, a single cluster across US and Europe wouldn't work very well
– cricket_007
Nov 9 at 15:32












1 Answer
1






active

oldest

votes

















up vote
0
down vote













First, you cannot "set" the quorum. It is automatically calculated from the configuration, using N/2+1 (the majority) where N is the number of zookeeper server *.



A Zookeeper server that is not part of a Quorum become unavailable and cannot server data to clients so no risk of seeing old data.






share|improve this answer























  • Sure, if the quorum is calculated, then you could potentially have an even number of servers resulting in split-brain, i.e 4 server quorum = 2, And if I understand your answer correctly, are you saying that during the replication process, the nodes not-part-of-the-quorum they become unavailable ? But whaI about the Watch mechanism in ZK, shouldn't the not-part-of-the-quorum make use of it, or is only reserved for nodes in the quorum ?
    – Jared.T
    Nov 9 at 9:27












  • Quorum cannot be an even number. I've updated the post to not use ceil but instead +1 to clarify but both are the same. Yes you understood correctly, when not in a quorum, ZK nodes are not available. Not sure I understand your last question
    – Mickael Maison
    Nov 9 at 9:56






  • 1




    I also recommend going over zookeeper.apache.org/doc/r3.4.13/zookeeperInternals.html as I think it covers your questions very well.
    – Mickael Maison
    Nov 9 at 9:57










  • Thanks, Mickael, It's beginning to make sense now. Except for one thing. I understand my question is vague. A cluster of ZK Nodes of 5 = Ensemble And the 3 Nodes are = Quorum When a client send a write operation, to the master, then you have to have the three Quorum, up-and-runnning in order to write the data. But what if a client reads from the non Quorum, which means the data is outdated ? Because the data is not propagated to the remaining two, which are not part of the Quorum. How is this handled ?
    – Jared.T
    Nov 9 at 10:23













Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53213411%2fzookeeper-quorum-and-the-non-quorum%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote













First, you cannot "set" the quorum. It is automatically calculated from the configuration, using N/2+1 (the majority) where N is the number of zookeeper server *.



A Zookeeper server that is not part of a Quorum become unavailable and cannot server data to clients so no risk of seeing old data.






share|improve this answer























  • Sure, if the quorum is calculated, then you could potentially have an even number of servers resulting in split-brain, i.e 4 server quorum = 2, And if I understand your answer correctly, are you saying that during the replication process, the nodes not-part-of-the-quorum they become unavailable ? But whaI about the Watch mechanism in ZK, shouldn't the not-part-of-the-quorum make use of it, or is only reserved for nodes in the quorum ?
    – Jared.T
    Nov 9 at 9:27












  • Quorum cannot be an even number. I've updated the post to not use ceil but instead +1 to clarify but both are the same. Yes you understood correctly, when not in a quorum, ZK nodes are not available. Not sure I understand your last question
    – Mickael Maison
    Nov 9 at 9:56






  • 1




    I also recommend going over zookeeper.apache.org/doc/r3.4.13/zookeeperInternals.html as I think it covers your questions very well.
    – Mickael Maison
    Nov 9 at 9:57










  • Thanks, Mickael, It's beginning to make sense now. Except for one thing. I understand my question is vague. A cluster of ZK Nodes of 5 = Ensemble And the 3 Nodes are = Quorum When a client send a write operation, to the master, then you have to have the three Quorum, up-and-runnning in order to write the data. But what if a client reads from the non Quorum, which means the data is outdated ? Because the data is not propagated to the remaining two, which are not part of the Quorum. How is this handled ?
    – Jared.T
    Nov 9 at 10:23

















up vote
0
down vote













First, you cannot "set" the quorum. It is automatically calculated from the configuration, using N/2+1 (the majority) where N is the number of zookeeper server *.



A Zookeeper server that is not part of a Quorum become unavailable and cannot server data to clients so no risk of seeing old data.






share|improve this answer























  • Sure, if the quorum is calculated, then you could potentially have an even number of servers resulting in split-brain, i.e 4 server quorum = 2, And if I understand your answer correctly, are you saying that during the replication process, the nodes not-part-of-the-quorum they become unavailable ? But whaI about the Watch mechanism in ZK, shouldn't the not-part-of-the-quorum make use of it, or is only reserved for nodes in the quorum ?
    – Jared.T
    Nov 9 at 9:27












  • Quorum cannot be an even number. I've updated the post to not use ceil but instead +1 to clarify but both are the same. Yes you understood correctly, when not in a quorum, ZK nodes are not available. Not sure I understand your last question
    – Mickael Maison
    Nov 9 at 9:56






  • 1




    I also recommend going over zookeeper.apache.org/doc/r3.4.13/zookeeperInternals.html as I think it covers your questions very well.
    – Mickael Maison
    Nov 9 at 9:57










  • Thanks, Mickael, It's beginning to make sense now. Except for one thing. I understand my question is vague. A cluster of ZK Nodes of 5 = Ensemble And the 3 Nodes are = Quorum When a client send a write operation, to the master, then you have to have the three Quorum, up-and-runnning in order to write the data. But what if a client reads from the non Quorum, which means the data is outdated ? Because the data is not propagated to the remaining two, which are not part of the Quorum. How is this handled ?
    – Jared.T
    Nov 9 at 10:23















up vote
0
down vote










up vote
0
down vote









First, you cannot "set" the quorum. It is automatically calculated from the configuration, using N/2+1 (the majority) where N is the number of zookeeper server *.



A Zookeeper server that is not part of a Quorum become unavailable and cannot server data to clients so no risk of seeing old data.






share|improve this answer














First, you cannot "set" the quorum. It is automatically calculated from the configuration, using N/2+1 (the majority) where N is the number of zookeeper server *.



A Zookeeper server that is not part of a Quorum become unavailable and cannot server data to clients so no risk of seeing old data.







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 9 at 9:53

























answered Nov 8 at 19:39









Mickael Maison

6,39232428




6,39232428












  • Sure, if the quorum is calculated, then you could potentially have an even number of servers resulting in split-brain, i.e 4 server quorum = 2, And if I understand your answer correctly, are you saying that during the replication process, the nodes not-part-of-the-quorum they become unavailable ? But whaI about the Watch mechanism in ZK, shouldn't the not-part-of-the-quorum make use of it, or is only reserved for nodes in the quorum ?
    – Jared.T
    Nov 9 at 9:27












  • Quorum cannot be an even number. I've updated the post to not use ceil but instead +1 to clarify but both are the same. Yes you understood correctly, when not in a quorum, ZK nodes are not available. Not sure I understand your last question
    – Mickael Maison
    Nov 9 at 9:56






  • 1




    I also recommend going over zookeeper.apache.org/doc/r3.4.13/zookeeperInternals.html as I think it covers your questions very well.
    – Mickael Maison
    Nov 9 at 9:57










  • Thanks, Mickael, It's beginning to make sense now. Except for one thing. I understand my question is vague. A cluster of ZK Nodes of 5 = Ensemble And the 3 Nodes are = Quorum When a client send a write operation, to the master, then you have to have the three Quorum, up-and-runnning in order to write the data. But what if a client reads from the non Quorum, which means the data is outdated ? Because the data is not propagated to the remaining two, which are not part of the Quorum. How is this handled ?
    – Jared.T
    Nov 9 at 10:23




















  • Sure, if the quorum is calculated, then you could potentially have an even number of servers resulting in split-brain, i.e 4 server quorum = 2, And if I understand your answer correctly, are you saying that during the replication process, the nodes not-part-of-the-quorum they become unavailable ? But whaI about the Watch mechanism in ZK, shouldn't the not-part-of-the-quorum make use of it, or is only reserved for nodes in the quorum ?
    – Jared.T
    Nov 9 at 9:27












  • Quorum cannot be an even number. I've updated the post to not use ceil but instead +1 to clarify but both are the same. Yes you understood correctly, when not in a quorum, ZK nodes are not available. Not sure I understand your last question
    – Mickael Maison
    Nov 9 at 9:56






  • 1




    I also recommend going over zookeeper.apache.org/doc/r3.4.13/zookeeperInternals.html as I think it covers your questions very well.
    – Mickael Maison
    Nov 9 at 9:57










  • Thanks, Mickael, It's beginning to make sense now. Except for one thing. I understand my question is vague. A cluster of ZK Nodes of 5 = Ensemble And the 3 Nodes are = Quorum When a client send a write operation, to the master, then you have to have the three Quorum, up-and-runnning in order to write the data. But what if a client reads from the non Quorum, which means the data is outdated ? Because the data is not propagated to the remaining two, which are not part of the Quorum. How is this handled ?
    – Jared.T
    Nov 9 at 10:23


















Sure, if the quorum is calculated, then you could potentially have an even number of servers resulting in split-brain, i.e 4 server quorum = 2, And if I understand your answer correctly, are you saying that during the replication process, the nodes not-part-of-the-quorum they become unavailable ? But whaI about the Watch mechanism in ZK, shouldn't the not-part-of-the-quorum make use of it, or is only reserved for nodes in the quorum ?
– Jared.T
Nov 9 at 9:27






Sure, if the quorum is calculated, then you could potentially have an even number of servers resulting in split-brain, i.e 4 server quorum = 2, And if I understand your answer correctly, are you saying that during the replication process, the nodes not-part-of-the-quorum they become unavailable ? But whaI about the Watch mechanism in ZK, shouldn't the not-part-of-the-quorum make use of it, or is only reserved for nodes in the quorum ?
– Jared.T
Nov 9 at 9:27














Quorum cannot be an even number. I've updated the post to not use ceil but instead +1 to clarify but both are the same. Yes you understood correctly, when not in a quorum, ZK nodes are not available. Not sure I understand your last question
– Mickael Maison
Nov 9 at 9:56




Quorum cannot be an even number. I've updated the post to not use ceil but instead +1 to clarify but both are the same. Yes you understood correctly, when not in a quorum, ZK nodes are not available. Not sure I understand your last question
– Mickael Maison
Nov 9 at 9:56




1




1




I also recommend going over zookeeper.apache.org/doc/r3.4.13/zookeeperInternals.html as I think it covers your questions very well.
– Mickael Maison
Nov 9 at 9:57




I also recommend going over zookeeper.apache.org/doc/r3.4.13/zookeeperInternals.html as I think it covers your questions very well.
– Mickael Maison
Nov 9 at 9:57












Thanks, Mickael, It's beginning to make sense now. Except for one thing. I understand my question is vague. A cluster of ZK Nodes of 5 = Ensemble And the 3 Nodes are = Quorum When a client send a write operation, to the master, then you have to have the three Quorum, up-and-runnning in order to write the data. But what if a client reads from the non Quorum, which means the data is outdated ? Because the data is not propagated to the remaining two, which are not part of the Quorum. How is this handled ?
– Jared.T
Nov 9 at 10:23






Thanks, Mickael, It's beginning to make sense now. Except for one thing. I understand my question is vague. A cluster of ZK Nodes of 5 = Ensemble And the 3 Nodes are = Quorum When a client send a write operation, to the master, then you have to have the three Quorum, up-and-runnning in order to write the data. But what if a client reads from the non Quorum, which means the data is outdated ? Because the data is not propagated to the remaining two, which are not part of the Quorum. How is this handled ?
– Jared.T
Nov 9 at 10:23




















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53213411%2fzookeeper-quorum-and-the-non-quorum%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Guess what letter conforming each word

Port of Spain

Run scheduled task as local user group (not BUILTIN)