You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Ivan Kelly (JIRA)" <ji...@apache.org> on 2010/09/13 17:21:33 UTC

[jira] Commented: (ZOOKEEPER-702) GSoC 2010: Failure Detector Model

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12908817#action_12908817 ] 

Ivan Kelly commented on ZOOKEEPER-702:
--------------------------------------

Code looks good Ambar, good job :)

I think the factory code could be improved slightly though. Currently if you want a custom FD you pass in a FDname and an FDClass.
I would merge these two, so that you only pass in FDname to the factory, and the factory can decide whether this is a builtin or a custom. So as an example, FDname can be fixed, chen, phiaccrual or com.blah.foobar.MyFailureDetector. When the factory sees this it goes...

if (fdName.equals("fixed")) {
    fdClass = FixedPingFailureDetector.class;
} else if (fdName.equals("chen")) {
    fdClass = ChenFailureDetector.class;
} else if (fdName.equals("bertier")) {
    fdClass = BertierFailureDetector.class;
} else if (fdName.equals("phiaccrual")) {
    fdClass = PhiAccrualFailureDetector.class;
} else if (fdName.equals("sliced")) {
    fdClass = SlicedPingFailureDetector.class;
} else {
    fdClass = Class.forName(fdName);
}



> GSoC 2010: Failure Detector Model
> ---------------------------------
>
>                 Key: ZOOKEEPER-702
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-702
>             Project: Zookeeper
>          Issue Type: Wish
>            Reporter: Henry Robinson
>            Assignee: Abmar Barros
>         Attachments: bertier-pseudo.txt, bertier-pseudo.txt, chen-pseudo.txt, chen-pseudo.txt, phiaccrual-pseudo.txt, phiaccrual-pseudo.txt, ZOOKEEPER-702-code.patch, ZOOKEEPER-702-doc.patch, ZOOKEEPER-702.patch, ZOOKEEPER-702.patch, ZOOKEEPER-702.patch, ZOOKEEPER-702.patch, ZOOKEEPER-702.patch, ZOOKEEPER-702.patch, ZOOKEEPER-702.patch, ZOOKEEPER-702.patch, ZOOKEEPER-702.patch, ZOOKEEPER-702.patch, ZOOKEEPER-702.patch, ZOOKEEPER-702.patch
>
>
> Failure Detector Module
> Possible Mentor
> Henry Robinson (henry at apache dot org)
> Requirements
> Java, some distributed systems knowledge, comfort implementing distributed systems protocols
> Description
> ZooKeeper servers detects the failure of other servers and clients by counting the number of 'ticks' for which it doesn't get a heartbeat from other machines. This is the 'timeout' method of failure detection and works very well; however it is possible that it is too aggressive and not easily tuned for some more unusual ZooKeeper installations (such as in a wide-area network, or even in a mobile ad-hoc network).
> This project would abstract the notion of failure detection to a dedicated Java module, and implement several failure detectors to compare and contrast their appropriateness for ZooKeeper. For example, Apache Cassandra uses a phi-accrual failure detector (http://ddsg.jaist.ac.jp/pub/HDY+04.pdf) which is much more tunable and has some very interesting properties. This is a great project if you are interested in distributed algorithms, or want to help re-factor some of ZooKeeper's internal code.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.