-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathoraft.opam
More file actions
52 lines (42 loc) · 1.93 KB
/
Copy pathoraft.opam
File metadata and controls
52 lines (42 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
opam-version: "2.0"
name: "oraft"
version: "0.1"
authors: [
"Mauricio Fernandez <mfp@acm.org>"
"Vincent Bernardoff <vb@luminar.eu.org>"
]
maintainer: "Vincent Bernardoff <vb@luminar.eu.org>"
homepage: "https://github.com/mfp/oraft"
bug-reports: "https://github.com/mfp/oraft/issues"
dev-repo: "git+https://github.com/mfp/oraft"
doc: "https://mfp.github.io/oraft/doc"
build: [ "dune" "build" "-j" jobs "-p" name "@install" ]
depends: [
"dune" {build & >= "1.3.0"}
"batteries" {>= "2.8.0"}
]
synopsis: "Implementation of Raft consensus algorithm"
description: """
oraft consists of:
* a core Raft (purely functional) state machine featuring leader election +
log replication, log compaction via snapshotting, cluster membership change
support and efficient linearizable read-only operations. This state machine
is abstracted over the specifics of peer communication (I/O, message
serialization), concurrency and timeouts. (`Oraft` module)
* a specialization of the above state machine using the Lwt library for
concurrency (`Oraft_lwt` module)
* a replicated state machine built atop `Oraft_lwt` (`Oraft_rsm` module)
* a sample distributed dictionary client/server (`dict.ml`) built atop `Oraft_rsm`
## Status
The core state machine has been tested using a discrete event simulator
that simulates node failures, network failures, message loss, random delays,
cluster changes (node deployment and decommissioning)...
## Performance
The sample distributed dictionary has been clocked at rates exceeding 70000
ops/s on a 3-node cluster. There is potential for optimization, both in the
core state machine (by decreasing GC pressure via lesser copying) and the
communication layer (faster message serialization, command batching).
## References
In Search of an Understandable Consensus Algorithm. Diego Ongaro and John
Ousterhout. Stanford University. (Draft of October 7, 2013).
https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf"""