Skip to content

chassisframework/craft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Craft

todo:

  • cluster splitting
  • smart appendentries intervals for commands (immediate, interval-based batching...)
  • nemesis development
  • querying (dirty [leader, follower], linearizable command-based read)
    • may not need log entry for linearizable read... (leader receives read request, notes at what log index it should take place, when that log index is committed, responds to read as of that index)
    • leases like cockroachdb?
  • fix Craft top-level API, designate group by {name, nodes} rather than separate args
  • be consistent with "members" vs "nodes" nomenclature

4.2.1 server catch up "rounds" hueristic

done:

  • 3.10 leadership transfer extension

  • CheckQuorum

  • rocksdb backend

  • snapshots when commit index bumps, consensus sends a message to machine to bump index and optionally snapshot if snapshotting, machine snapshots and sends message to consensus with snapshot index and path on disk consensus writes snapshot metadata to persistence break out to own SnapshotsManager process?

  • log truncation runs periodically asks persistence for all snapshots, finds the most recent non-busy (not sending to follower) one, and truncates log to that point

    for consideration: if a follower is slow in catching up, and the log is snapshotted/truncated on the leader, how should the follower respond? nuke the follower's current state and start over fresh?

About

(WIP) yet another raft implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages