Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeger-Jan van de Weg <git@zjvandeweg.nl>2019-02-18 14:54:22 +0300
committerZeger-Jan van de Weg <git@zjvandeweg.nl>2019-02-20 16:25:46 +0300
commitd2cc579d3da57a3008b91f2087214e6555f71a5c (patch)
tree84960651aaa086352a4ffebc9356c547112b3071
parentb1acee114bc120a525d04dd10a695fb7f5964d9c (diff)
Define Praefect Alpha
In the Gitaly team OKRs there's a goal of shipping an alpha stage HA solution. However, until this commit it was undefined what that would look like. To clearify this is now written down in the design doc. The scope is limited, by design. This will allow us to focus our efforts.
-rw-r--r--doc/design_ha.md21
1 files changed, 20 insertions, 1 deletions
diff --git a/doc/design_ha.md b/doc/design_ha.md
index 531e731ff..db81bb5d7 100644
--- a/doc/design_ha.md
+++ b/doc/design_ha.md
@@ -1,7 +1,8 @@
# Gitaly High Availability (HA) Design
Gitaly HA is an active-active cluster configuration for resilient git operations. [Refer to our specific requirements](https://gitlab.com/gitlab-org/gitaly/issues/1332).
-Refer to epic &289 for current issues and discussions revolving around HA MVC development.
+Refer to [epic &289][epic] for current issues and discussions revolving around
+HA MVC development.
## Terminology
The following terminology may be used within the context of the Gitaly HA project:
@@ -89,6 +90,22 @@ sequenceDiagram
*Note: Once Node-A propagates changes to a peer, Node-A is no longer the critical path for subsequent propagations. If Node-A fails after a second peer is propagated, that second peer can become the new leader and resume replications.*
+## Stages until v1.0
+
+Rome wasn't built in a day, nor will Praefect be build in one. To iterate towards
+a true HA system some properties will not be met until v1.0. Before that
+milestone, an beta stage will worked towards.
+
+The beta stage will consist of only a few required building blocks to iterate
+on towards the envisioned HA system. The first of those building blocks is
+creating and maintaining repository replica's. By maintaining a replica, there's
+no requirement for the replica to be up to date right after each mutation on the
+repository. Detecting that a repository is mutated, and bringing replicas up to
+date in a consistent matter is the primary goal. Implicit in this goal is a way
+to perform leader election.
+
+When the beta nears completion further stages will be defined.
+
## Notes
* Existing discussions
* Requirements: https://gitlab.com/gitlab-org/gitaly/issues/1332
@@ -130,3 +147,5 @@ sequenceDiagram
* While Git is distributed in nature, some write operations need to be serialized to avoid race conditions. This includes ref updates.
* How do we coordinate proxies when applying ref updates? Do we need to?
+
+[epic]: https://gitlab.com/groups/gitlab-org/-/epics/289