You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+21-22Lines changed: 21 additions & 22 deletions
Original file line number
Diff line number
Diff line change
@@ -1,30 +1,22 @@
1
1
# Formal models of core Elasticsearch algorithms
2
2
3
-
This repository contains formal models of core [Elasticsearch](https://github.com/elastic/elasticsearch) algorithms and is directly related to ongoing implementation efforts around [data replication](https://github.com/elastic/elasticsearch/issues/10708) and cluster consensus. We consider this work-in-progress: Models as well as implementations are still evolving and might differ in substantial ways. The formal models mainly serve to illustrate some of the high-level concepts and help to validate resiliency-related aspects.
3
+
This repository contains formal models of core [Elasticsearch](https://github.com/elastic/elasticsearch) algorithms and is directly related to implementation efforts around [data replication](https://github.com/elastic/elasticsearch/issues/10708) and [cluster coordination](https://github.com/elastic/elasticsearch/issues/32006). The models in this repository might represent past, current and future designs of Elasticsearch and can differ to their implementations in substantial ways. The formal models mainly serve to illustrate some of the high-level concepts and help to validate resiliency-related aspects.
4
4
5
5
## Models
6
6
7
-
### Data replication
7
+
### Cluster coordination model
8
8
9
-
The data replication model consists of two files:
9
+
The cluster coordination TLA+ model ensures the consistency of cluster state updates and represents the core [cluster coordination](https://github.com/elastic/elasticsearch/issues/32006) and metadata replication algorithm implemented in Elasticsearch 7.0. It consists of two files:
10
10
11
-
-[TLA+ specification](data/tla/replication.tla)
12
-
-[TLC model checking configuration](data/tla/replication.toolbox/replication___model.launch)
13
-
14
-
### Cluster consensus
15
-
16
-
The cluster consensus TLA+ model consists of two files:
11
+
-[TLA+ specification](ZenWithTerms/tla/ZenWithTerms.tla) which has a [direct one-to-one implementation in Elasticsearch](https://github.com/elastic/elasticsearch/blob/master/server/src/main/java/org/elasticsearch/cluster/coordination/CoordinationState.java)
12
+
-[TLC model checking configuration](ZenWithTerms/tla/ZenWithTerms.toolbox/ZenWithTerms___model.launch)
17
13
18
-
-[TLA+ specification](cluster/tla/consensus.tla)
19
-
-[TLC model checking configuration](cluster/tla/consensus.toolbox/consensus___model.launch)
14
+
### Data replication model
20
15
21
-
The cluster consensus Isabelle model consists of the following theories:
16
+
The data replication TLA+ model describes the Elasticsearch [sequence number](https://github.com/elastic/elasticsearch/issues/10708) based data replication approach, implemented since Elasticsearch 6.0, which consists of two files:
0 commit comments