[ https://issues.apache.org/jira/browse/HADOOP-10641?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14020284#comment-14020284 ]
Tsz Wo Nicholas Sze commented on HADOOP-10641: ---------------------------------------------- Looked at the patch. Some questions: - For serialization, I think we should use ProtoBuf but not java.io.Serializable. Then, it is easier to support compatibility. - It seems that there is no version check between CoordinationEngine(s). How to detect if the engines are compatible with each other? Also, how to support rolling upgrade? - Do we really need Proposal and Agreement as two interfaces? Currently, Proposal extending Serializable is an empty interface and Agreement also extending Serializable only has one method. - I also don't understand why Agreement.execute(..) needs a callBackObject (learner?) parameter. The test does not make use of it. - ZkCoordinationEngine also has a doExecute(..) method. Could it be combined with Agreement.execute(..)? I suspect we can get rid of ZkCoordinationEngine.doExecute(..) in order to make ZkCoordinationEngine non-abstract. Then, applications like namenode only have to use the engine but not extend it. - In the CNode design doc, the Coordination Engine section describes some general concepts and some details for the Paxos algorithm. Could you also add some details for the ZkCoordinationEngine? Also, what are the advantages and disadvantages of the ZkCoordinationEngine compared with the Paxos algorithm? > Introduce Coordination Engine > ----------------------------- > > Key: HADOOP-10641 > URL: https://issues.apache.org/jira/browse/HADOOP-10641 > Project: Hadoop Common > Issue Type: New Feature > Affects Versions: 3.0.0 > Reporter: Konstantin Shvachko > Assignee: Plamen Jeliazkov > Attachments: HADOOP-10641.patch, HADOOP-10641.patch, > HADOOP-10641.patch > > > Coordination Engine (CE) is a system, which allows to agree on a sequence of > events in a distributed system. In order to be reliable CE should be > distributed by itself. > Coordination Engine can be based on different algorithms (paxos, raft, 2PC, > zab) and have different implementations, depending on use cases, reliability, > availability, and performance requirements. > CE should have a common API, so that it could serve as a pluggable component > in different projects. The immediate beneficiaries are HDFS (HDFS-6469) and > HBase (HBASE-10909). > First implementation is proposed to be based on ZooKeeper. -- This message was sent by Atlassian JIRA (v6.2#6252)