Skip to content
belaban edited this page Nov 19, 2014 · 1 revision

Minutes RAFT meeting Milano Nov 19 2014 (Ugo, Fabio, Tristan, Bela)

RAFT in JGroups

  • 3 protocols: RAFT, ELECTION and HARTBEAT

  • Implementation pretty close to the paper

  • 2nd stage:

    • ELECTION and HEARTBEAT replaced by JGroups heartbeat (see readme.adoc)

      • Heartbeat is done by JGroups anyway → less traffic

      • Election triggered by JGroups view change

      • See readme.adoc / design.adoc

  • Interfaces Log and StateMachine have to be hashed out

    • Log will be implemented by Ugo, posibly using LevelDB or JDBM2

    • Fabio looking at Jube and its use of etcd

      • Goal: implementation of etcd on top of RAFT/JGroups

RAFT in Infinispan

  • Is consensus needed ? If so, where ?

  • Comparison of total order protocol against consensus

    • Locks, counters

    • More discussion needed in Berlin Feb 2015 (Pedro, Tristan, Dan)

Chunks of work

  • A Log implementation based on LevelDB / JDBM2 (Apache DS) [Ugo]

  • etcd impl [Fabio]

    • Use of etcd in Fabric8 to understand how they use it

    • Goal: use JGroups based etcd in Jube, or standalone

  • ZooKeeper impl (?)

    • Curator framework

      • Master election

      • Locks

  • Perf tests

  • Correctness proofs

Next steps

  • Define the Log and StateMachine interfaces [Bela, Ugo, Fabio]

  • Look at etcd (interface, REST code in Jube and use in Jube) [Fabio]

    • RAFT_CLIENT protocol (or building block) to provide a REST interface for etcd ?

  • Look at LevelDB and/or JDBM2 to write a persistent Log impl [Ugo]