8000 Introducing Replicated Logs (#14486) · arangodb/arangodb@c3c390b · GitHub
[go: up one dir, main page]

Skip to content

Commit c3c390b

Browse files
author
Lars Maier
authored
Introducing Replicated Logs (#14486)
1 parent 4e1c936 commit c3c390b

File tree

159 files changed

+14908
-359
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

159 files changed

+14908
-359
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: arangodb_replication2_replicated_log_append_entries_rtt
2+
introducedIn: "3.9.0"
3+
help: |
4+
Histogram of the RTT of appendEntries requests in microseconds.
5+
unit: us
6+
type: histogram
7+
category: Replication
8+
complexity: medium
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
The leader of a replicated log replicates the log entries by sending
14+
appendEntries requests to its followers.
15+
This is a histogram keeping track of the number of such requests this
16+
server sends (for any log it is a leader of), as well as their respective
17+
round-trip times in microseconds.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: arangodb_replication2_replicated_log_creation_total
2+
introducedIn: "3.9.0"
3+
help: |
4+
Number of replicated log instances created on this server since its start.
5+
unit: number
6+
type: counter
7+
category: Replication
8+
complexity: simple
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
Number of replicated log instances created on this server since its start.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: arangodb_replication2_replicated_log_deletion_total
2+
introducedIn: "3.9.0"
3+
help: |
4+
Number of replicated log instances deleted on this server since its start.
5+
unit: number
6+
type: counter
7+
category: Replication
8+
complexity: simple
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
Number of replicated log instances deleted on this server since its start.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: arangodb_replication2_replicated_log_follower_append_entries_rt
2+
introducedIn: "3.9.0"
3+
help: |
4+
Histogram of the duration of appendEntries calls in microseconds.
5+
unit: us
6+
type: histogram
7+
category: Replication
8+
complexity: advanced
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
Followers of a replicated log, including the local followers for persistence
14+
each leader has, receive appendEntries requests. These contain log entries
15+
to be replicated. Serving these requests means writing them to persistence.
16+
17+
This histogram counts the number of such requests server by this server,
18+
plus their respective runtime in microseconds.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: arangodb_replication2_replicated_log_follower_number
2+
introducedIn: "3.9.0"
3+
help: |
4+
Current number of followers of replicated logs.
5+
unit: number
6+
type: gauge
7+
category: Replication
8+
complexity: simple
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
Current number of replicated logs this server is a follower of.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: arangodb_replication2_replicated_log_inactive_number
2+
introducedIn: "3.9.0"
3+
help: |
4+
Current number of inactive replicated logs.
5+
unit: number
6+
type: gauge
7+
category: Replication
8+
complexity: simple
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
Current number of replicated logs this server is a participant of,
14+
but is not yet configured to be either a leader or a follower. This
15+
number should usually be zero, except during server startup until
16+
the configuration from the Agency is fetched and applied, and for
17+
a short time when a log is newly created.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: arangodb_replication2_replicated_log_inserts_bytes
2+
introducedIn: "3.9.0"
3+
help: |
4+
Number of bytes inserted into replicated logs.
5+
unit: bytes
6+
type: histogram
7+
category: Replication
8+
complexity: medium
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
For all replicated logs this server is a leader of, this counts the number
14+
of bytes of raw payload inserted into it.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: arangodb_replication2_replicated_log_inserts_rtt
2+
introducedIn: "3.9.0"
3+
help: |
4+
Round-trip time of inserts into replicated logs in microseconds.
5+
unit: us
6+
type: histogram
7+
category: Replication
8+
complexity: medium
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
Inserts into replicated logs this server is a leader of are counted by this
14+
histogram, plus their respective round-trip time. This includes the time for
15+
replication, at least until the writeConcern is satisified.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: arangodb_replication2_replicated_log_leader_number
2+
introducedIn: "3.9.0"
3+
help: |
4+
Current number of replicated log leaders.
5+
unit: number
6+
type: gauge
7+
category: Replication
8+
complexity: simple
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
Number of replicated logs this server is currently a leader of.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: arangodb_replication2_replicated_log_leader_took_over_total
2+
introducedIn: "3.9.0"
3+
help: |
4+
Number of leader takeovers.
5+
unit: number
6+
type: counter
7+
category: Replication
8+
complexity: medium
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
Number of times this server took over the leadership of a replicated log
14+
since server start.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: arangodb_replication2_replicated_log_number
2+
introducedIn: "3.9.0"
3+
help: |
4+
Number of replicated logs.
5+
unit: number
6+
type: counter
7+
category: Replication
8+
complexity: simple
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
Number of replicated logs this server is a participant of.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: arangodb_replication2_replicated_log_started_following_total
2+
introducedIn: "3.9.0"
3+
help: |
4+
Number of times started following a replicated log.
5+
unit: number
6+
type: counter
7+
ca FFD5 tegory: Replication
8+
complexity: medium
9+
exposedBy:
10+
- dbserver
11+
- single
12+
description: |
13+
Number of times this server started following a replicated log
14+
since server start.

arangod/Agency/AgencyPaths.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
////////////////////////////////////////////////////////////////////////////////
2323

2424
#include "AgencyPaths.h"
25+
#include <Replication2/ReplicatedLog/LogCommon.h>
2526

2627
using namespace arangodb;
2728
using namespace arangodb::cluster;
@@ -31,6 +32,8 @@ auto paths::root() -> std::shared_ptr<Root const> {
3132
return Root::make_shared();
3233
}
3334

35+
auto paths::to_string(Path const& path) -> std::string { return path.str(); }
36+
3437
auto aliases::arango() -> std::shared_ptr<Root::Arango const> {
3538
return root()->arango();
3639
}
@@ -50,3 +53,8 @@ auto aliases::target() -> std::shared_ptr<Root::Arango::Target const> {
5053
auto aliases::supervision() -> std::shared_ptr<Root::Arango::Supervision const> {
5154
return root()->arango()->supervision();
5255
}
56+
57+
auto Root::Arango::Plan::ReplicatedLogs::Database::log(replication2::LogId id) const
58+
-> std::shared_ptr<const Log> {
59+
return Log::make_shared(shared_from_this(), std::to_string(id.id()));
60+
}

0 commit comments

Comments
 (0)
0