Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-13798

Prototype Raft implementation port to a separate zero-dependency Ignite module

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • Docs Required, Release Notes Required

    Description

      We need to check whether it is reasonable and feasible to port the etcd Raft implementation [1] to Java, maintaining the same API interaction model:

      • Raft instance is a single-threaded state machine with methods to accept messages, return progress to be processed by a raft client, and tick callback
      • Raft instance does not actively send messages, not does it actively write to persistent log or the state machine

      The implementation should demonstrate how the module will be used with omitted components: Raft Log, State Machine, Messaging, Timer.

      The implementation must cover:

      • Ability to provide leader/follower callbacks
      • Ability to read linearizable and relaxed commit indexes

      The implementation may cover:

      • Replication group reconfiguration

      The implementation prototype does not cover:

      • Multi-raft groups
      • Asynchronous state machine mutation

      Attachments

        Activity

          People

            agoncharuk Alexey Goncharuk
            agoncharuk Alexey Goncharuk
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: