diff --git a/notes/atlas.md b/notes/atlas.md new file mode 100644 index 0000000000000000000000000000000000000000..80ccaff236e944f536f93e53a69d50ed21a5593a --- /dev/null +++ b/notes/atlas.md @@ -0,0 +1,35 @@ +# State-Machine Replication for Planet-Scale Systems (ATLAS) + +EPaxos but......faster. + +- fastpath quorum: *floor(n/2) + f* +- *more likely* than epaxos to use fast path w/ concurrent non-commuting ops (epaxos can sometimes do this as well, if majority replicas agree on dependencies) +- *always* fast path for *f=1*, fast path minimal majority +- faster non-fault-tolerant reads "when the conflict relation between commands is transitive". + + + +## Protocol + + +## Fast Path Optimization + +Statement: + +**deps returned do not have to agree if each reported is reported by at least *f* respondents**. + +For example, we can recover *D* at *f=2* after just fast path even w/ two failures: +1. One failure leaves at least one replica that reported the dep, so it will be seen afterwards. This takes us to *f-1*. +1. The other failure must be the coordinator, as no need to recover if coordinator doesn't go down. The coordinator appends any deps it knows initially to messages in the collect phase. Therefore, if the coordinator was one of the *f* that reported a specific dependency, the other particplants of the collect phase will know about it. This takes us to *f-2*. + + + + + + + + + +## Issues +- "violating the assumption ...number of failures may only compromise liveness, but never safety" + - assumes replicas recoverable diff --git a/notes/atlasFast.png b/notes/atlasFast.png new file mode 100644 index 0000000000000000000000000000000000000000..2b12c56c9fadd32f6a04c266e7fc059f9b401940 Binary files /dev/null and b/notes/atlasFast.png differ diff --git a/notes/atlasFig1.png b/notes/atlasFig1.png new file mode 100644 index 0000000000000000000000000000000000000000..8f74c79ba21e26d432ca8e6868e9e9a88eed5daa Binary files /dev/null and b/notes/atlasFig1.png differ diff --git a/notes/atlasFig2.png b/notes/atlasFig2.png new file mode 100644 index 0000000000000000000000000000000000000000..ef60a40a65b805289180f38806c496c3c0626a40 Binary files /dev/null and b/notes/atlasFig2.png differ diff --git a/notes/atlasProtocol.png b/notes/atlasProtocol.png new file mode 100644 index 0000000000000000000000000000000000000000..96aae66cd66ebbc4701f37082aa72c4e46d7cecd Binary files /dev/null and b/notes/atlasProtocol.png differ