blob: 83362ab085c63d216a17e2578ef89785da6f9b38 [file] [log] [blame]
Fabio Poncirolibce7b8c2021-03-19 17:45:27 +01001:linkattrs:
2= Glossary
3
Nasser Grainawi46e16fb2021-04-29 12:37:57 -06004[[cluster]]
5== Cluster
6A Gerrit Cluster is a set of Gerrit processes sharing the same
7link:config-gerrit.html#gerrit.serverId[ServerId] and associated to the same
8set of repositories, accounts, and groups.
9
Fabio Poncirolieb44d282021-03-19 17:57:46 +010010[[event]]
11== Event
12
13It refers to the link:https://gerrit.googlesource.com/gerrit/+/refs/heads/master/java/com/google/gerrit/server/events/Event.java[com.google.gerrit.server.events.Event]
14base abstract class representing any possible action that is generated or
15received in a Gerrit instance. Actions can be associated with change set status
16updates, project creations, indexing of changes, etc.
17
18[[event-broker]]
19== Event broker
20
21Distributes Gerrit Events to listeners if they are allowed to see them.
22
23[[event-dispatcher]]
24== Event dispatcher
25
26Interface for posting events to the Gerrit event system. Implemented by default
27by link:https://gerrit.googlesource.com/gerrit/+/refs/heads/master/java/com/google/gerrit/server/events/EventBroker.java[com.google.gerrit.server.events.EventBroker].
28It can be implemented by plugins and allows to influence how events are managed.
29
30[[event-hierarchy]]
31== Event hierarchy
32
33Hierarchy of events representing anything that can happen in Gerrit.
34
35[[event-listener]]
36== Event listener
37
38API for listening to Gerrit events from plugins, without having any
39visibility restrictions.
40
Nasser Grainawi46e16fb2021-04-29 12:37:57 -060041[[multi-primary]]
42== Multi-primary
43Multi-primary typically refers to configurations where multiple Gerrit primary
44processes are running in one or more xref:cluster[clusters] together.
45
46=== Single cluster multi-primary with shared storage
47A variation of multi-primary (a.k.a. HA or high-availability) that shares a file
48storage volume for the git repositories. These configurations can use the
49link:https://gerrit.googlesource.com/plugins/high-availability[high-availability plugin]
50to synchronize or share caches, indexes, events, and web sessions. The
51replication plugin also
52link:https://gerrit.googlesource.com/plugins/replication/+/refs/heads/master/src/main/resources/Documentation/config.md#configuring-cluster-replication[supports]
53synchronizing events using a shared file storage volume.
54
55[[multi-cluster-multi-primary]]
56=== Multiple clusters multi-primary
57Multi-cluster (aka multi-site) primaries typically refers to configurations
58where multiple Gerrit primary processes are running in different (likely
59geographically distributed) clusters (sites). This also typically makes use of
60a multi-primary configuration within each cluster. Synchronization across sites
61is necessary to detect and prevent split-brain scenarios. These configurations
62can use the link:https://gerrit.googlesource.com/plugins/multi-site[multi-site plugin]
63to facilitate synchronization.
64
65[[primary]]
66== Primary
67A Gerrit primary is the link:pgm-daemon.html[main Gerrit process] permitting
68write operations by clients. Most installations of Gerrit have only a single
69Gerrit primary running at a time for their service.
70
71[[replica]]
72== Replica
73A Gerrit process running with the link:pgm-daemon.html[--replica switch]
74provided. This permits read-only git operations by clients. There is no REST
75API, WebUI, or search operation available. Replicas can be run in
76the same cluster with primaries (likely sharing the storage volume) or in other
77clusters/sites (likely facilitated by the
78link:https://gerrit.googlesource.com/plugins/replication[replication plugin]).
79
Fabio Poncirolieb44d282021-03-19 17:57:46 +010080[[stream-events]]
81== Stream events
82
83Command that allows a user via CLI or a plugin to receive in a sequential way
84some events that are generated in Gerrit. The consumption of the stream by default
85is available via SSH connection.
86However, plugins can provide an alternative implementation of the event
87brokering by sending them over a reliable messaging queueing system (RabbitMQ)
88or a pub-sub (Kafka).
89
Fabio Poncirolibce7b8c2021-03-19 17:45:27 +010090GERRIT
91------
92Part of link:index.html[Gerrit Code Review]
93
94SEARCHBOX
95---------