You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Vishal K (JIRA)" <ji...@apache.org> on 2011/04/04 20:29:05 UTC

[jira] [Created] (ZOOKEEPER-1044) Allow dynamic changes to roles of a peer

Allow dynamic changes to roles of a peer
----------------------------------------

                 Key: ZOOKEEPER-1044
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1044
             Project: ZooKeeper
          Issue Type: Sub-task
          Components: quorum
    Affects Versions: 3.3.0
            Reporter: Vishal K
             Fix For: 3.4.0


Requirement: functionality that will reconfigure
a OBSERVER to become a voting member and vice versa.

Example of usage:

1. Maintain the Quorum size without changing the cluster size - in a 5
node cluster with 2 observers, I decide to decommission a voting
member. Then, I would like to configure one of my observers to be a
follower without any down time.

2. Added a new server to the cluster that has better resources than
one of the voting peers. Make the new node as voting peer and the old
one as observer.

3. Reduce the size of voting member for performance reasons.

Fix to ZOOKEEPER-107 might automatically give us this functionality.
It will be good to confirm that, and if needed, highlight work
that might be needed in addition to ZOOKEEPER-107.



--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (ZOOKEEPER-1044) Allow dynamic changes to roles of a peer

Posted by "Vishal K (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ZOOKEEPER-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13017635#comment-13017635 ] 

Vishal K commented on ZOOKEEPER-1044:
-------------------------------------

Hi Alex,

{quote}
In terms of the current implementation, it seems to be much more complex to convert an OBSERVER to a follower and vice versa.
In order to do that the process would have to be terminated and a new follower process created (a similar change is needed
to convert a leader to a follower, but not to convert a non-voting follower to a follower and vice versa). 
{quote}

If M' (in ZOOKEEPER-107) represents generic ZK configuration, why cannot 107 directly resolve this jira? After leader election, a peer creates leader/follower/observer instances depending upon its current role. Considering this, why do you think that the implementation will be complex? Also, why do we need to terminate the process if QuorumPeer is creating the correct instances after FLE?

Thanks
-Vishal

> Allow dynamic changes to roles of a peer
> ----------------------------------------
>
>                 Key: ZOOKEEPER-1044
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1044
>             Project: ZooKeeper
>          Issue Type: Sub-task
>          Components: quorum
>    Affects Versions: 3.3.0
>            Reporter: Vishal K
>             Fix For: 3.4.0
>
>
> Requirement: functionality that will reconfigure
> a OBSERVER to become a voting member and vice versa.
> Example of usage:
> 1. Maintain the Quorum size without changing the cluster size - in a 5
> node cluster with 2 observers, I decide to decommission a voting
> member. Then, I would like to configure one of my observers to be a
> follower without any down time.
> 2. Added a new server to the cluster that has better resources than
> one of the voting peers. Make the new node as voting peer and the old
> one as observer.
> 3. Reduce the size of voting member for performance reasons.
> Fix to ZOOKEEPER-107 might automatically give us this functionality.
> It will be good to confirm that, and if needed, highlight work
> that might be needed in addition to ZOOKEEPER-107.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (ZOOKEEPER-1044) Allow dynamic changes to roles of a peer

Posted by "Vishal K (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ZOOKEEPER-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13017688#comment-13017688 ] 

Vishal K commented on ZOOKEEPER-1044:
-------------------------------------

Hi Alex,

{quote}
The reconfiguration algorithm that I've started implementing assumes that new servers joining the system are connected as non-voting followers - this allows them to receive operations during the reconfiguration as they are proposed, and then they can remain followers in the new configuration. Your proposal for reconfiguration also assumed that you need to collect a quorum of acks from M', which you can't do if members of M' are Observers in M.
{quote}
Even if we consider OBSERVERs in M', do we need to wait to get a ack from them? We can just wait for quorum of FOLLOWERs in M' to ack.

{quote}
AFAIK, in order to convert an observer to a follower the process would need to be terminated and a new follower process created. So this is not about leader election (the intention is not to run leader election at all, unless a failure occurs during reconfiguration).
{quote}
I am not clear why this is needed. Can you elaborate on this?
If a follower becomes a observer (or viceversa), it will notice that once the membership is changed. Then it can shutdown its Learner object and go back to the LOOKING state. It will then rejoin the cluster as either FOLLOWER/OBSERVER.

I still think that with small changes to 107 we can achieve this feature as well.

-Vishal

> Allow dynamic changes to roles of a peer
> ----------------------------------------
>
>                 Key: ZOOKEEPER-1044
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1044
>             Project: ZooKeeper
>          Issue Type: Sub-task
>          Components: quorum
>    Affects Versions: 3.3.0
>            Reporter: Vishal K
>             Fix For: 3.4.0
>
>
> Requirement: functionality that will reconfigure
> a OBSERVER to become a voting member and vice versa.
> Example of usage:
> 1. Maintain the Quorum size without changing the cluster size - in a 5
> node cluster with 2 observers, I decide to decommission a voting
> member. Then, I would like to configure one of my observers to be a
> follower without any down time.
> 2. Added a new server to the cluster that has better resources than
> one of the voting peers. Make the new node as voting peer and the old
> one as observer.
> 3. Reduce the size of voting member for performance reasons.
> Fix to ZOOKEEPER-107 might automatically give us this functionality.
> It will be good to confirm that, and if needed, highlight work
> that might be needed in addition to ZOOKEEPER-107.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (ZOOKEEPER-1044) Allow dynamic changes to roles of a peer

Posted by "Alexander Shraer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ZOOKEEPER-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13017702#comment-13017702 ] 

Alexander Shraer commented on ZOOKEEPER-1044:
---------------------------------------------

What I mean is that when an Observer in M needs to become a follower in M', we need it to participate and ack during the reconfiguration to ensure that state is transferred properly to M'. 



> Allow dynamic changes to roles of a peer
> ----------------------------------------
>
>                 Key: ZOOKEEPER-1044
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1044
>             Project: ZooKeeper
>          Issue Type: Sub-task
>          Components: quorum
>    Affects Versions: 3.3.0
>            Reporter: Vishal K
>             Fix For: 3.4.0
>
>
> Requirement: functionality that will reconfigure
> a OBSERVER to become a voting member and vice versa.
> Example of usage:
> 1. Maintain the Quorum size without changing the cluster size - in a 5
> node cluster with 2 observers, I decide to decommission a voting
> member. Then, I would like to configure one of my observers to be a
> follower without any down time.
> 2. Added a new server to the cluster that has better resources than
> one of the voting peers. Make the new node as voting peer and the old
> one as observer.
> 3. Reduce the size of voting member for performance reasons.
> Fix to ZOOKEEPER-107 might automatically give us this functionality.
> It will be good to confirm that, and if needed, highlight work
> that might be needed in addition to ZOOKEEPER-107.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (ZOOKEEPER-1044) Allow dynamic changes to roles of a peer

Posted by "Alexander Shraer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ZOOKEEPER-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13017656#comment-13017656 ] 

Alexander Shraer commented on ZOOKEEPER-1044:
---------------------------------------------

Hi Vishal,

The reconfiguration algorithm that I've started implementing assumes that new servers joining the system are connected as non-voting followers - this allows them to receive operations during the reconfiguration as they are proposed, and then they can remain followers in the new configuration. Your proposal for reconfiguration also assumed that you need to collect a quorum of acks from M', which you can't do if members of M' are Observers in M. 

AFAIK, in order to convert an observer to a follower the process would need to be terminated and a new follower process created. So this is not about leader election (the intention is not to run leader election at all, unless a failure occurs during reconfiguration).

Alex

> Allow dynamic changes to roles of a peer
> ----------------------------------------
>
>                 Key: ZOOKEEPER-1044
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1044
>             Project: ZooKeeper
>          Issue Type: Sub-task
>          Components: quorum
>    Affects Versions: 3.3.0
>            Reporter: Vishal K
>             Fix For: 3.4.0
>
>
> Requirement: functionality that will reconfigure
> a OBSERVER to become a voting member and vice versa.
> Example of usage:
> 1. Maintain the Quorum size without changing the cluster size - in a 5
> node cluster with 2 observers, I decide to decommission a voting
> member. Then, I would like to configure one of my observers to be a
> follower without any down time.
> 2. Added a new server to the cluster that has better resources than
> one of the voting peers. Make the new node as voting peer and the old
> one as observer.
> 3. Reduce the size of voting member for performance reasons.
> Fix to ZOOKEEPER-107 might automatically give us this functionality.
> It will be good to confirm that, and if needed, highlight work
> that might be needed in addition to ZOOKEEPER-107.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (ZOOKEEPER-1044) Allow dynamic changes to roles of a peer

Posted by "Vishal K (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ZOOKEEPER-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13018368#comment-13018368 ] 

Vishal K commented on ZOOKEEPER-1044:
-------------------------------------

Hi Alex,

Agreed. Thats why I suggested that in the reconfig algorithm leader(M) should wait to receive ack from a quorum of followers in M' (instead of just quorum of M'). The same way leader(M)  waits to receive ack from followers in M. So it is a small change in the algorithm. What do you think?

Any feedback on my earlier comment regarding restarting the process and difficulty of implementation?

Thanks.


> Allow dynamic changes to roles of a peer
> ----------------------------------------
>
>                 Key: ZOOKEEPER-1044
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1044
>             Project: ZooKeeper
>          Issue Type: Sub-task
>          Components: quorum
>    Affects Versions: 3.3.0
>            Reporter: Vishal K
>             Fix For: 3.4.0
>
>
> Requirement: functionality that will reconfigure
> a OBSERVER to become a voting member and vice versa.
> Example of usage:
> 1. Maintain the Quorum size without changing the cluster size - in a 5
> node cluster with 2 observers, I decide to decommission a voting
> member. Then, I would like to configure one of my observers to be a
> follower without any down time.
> 2. Added a new server to the cluster that has better resources than
> one of the voting peers. Make the new node as voting peer and the old
> one as observer.
> 3. Reduce the size of voting member for performance reasons.
> Fix to ZOOKEEPER-107 might automatically give us this functionality.
> It will be good to confirm that, and if needed, highlight work
> that might be needed in addition to ZOOKEEPER-107.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (ZOOKEEPER-1044) Allow dynamic changes to roles of a peer

Posted by "Alexander Shraer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ZOOKEEPER-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13016127#comment-13016127 ] 

Alexander Shraer commented on ZOOKEEPER-1044:
---------------------------------------------

Hi Vishal,

With regard to ZOOKEEPER-107, the current plan is as follows: when adding a server, 
it will first be connected to the old configuration as a non-voting follower, and then become a follower. 
In terms of the current implementation, it seems to be much more complex to convert an OBSERVER to a follower and vice versa.
In order to do that the process would have to be terminated and a new follower process created (a similar change is needed
to convert a leader to a follower, but not to convert a non-voting follower to a follower and vice versa). 

Regards,
Alex


 

> Allow dynamic changes to roles of a peer
> ----------------------------------------
>
>                 Key: ZOOKEEPER-1044
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1044
>             Project: ZooKeeper
>          Issue Type: Sub-task
>          Components: quorum
>    Affects Versions: 3.3.0
>            Reporter: Vishal K
>             Fix For: 3.4.0
>
>
> Requirement: functionality that will reconfigure
> a OBSERVER to become a voting member and vice versa.
> Example of usage:
> 1. Maintain the Quorum size without changing the cluster size - in a 5
> node cluster with 2 observers, I decide to decommission a voting
> member. Then, I would like to configure one of my observers to be a
> follower without any down time.
> 2. Added a new server to the cluster that has better resources than
> one of the voting peers. Make the new node as voting peer and the old
> one as observer.
> 3. Reduce the size of voting member for performance reasons.
> Fix to ZOOKEEPER-107 might automatically give us this functionality.
> It will be good to confirm that, and if needed, highlight work
> that might be needed in addition to ZOOKEEPER-107.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira