-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathraft.proto
66 lines (53 loc) · 1.29 KB
/
raft.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
syntax = "proto3";
service Service {
rpc RequestVote(RequestTermIdMessage) returns (TermResultMessage);
rpc AppendEntries(AppendTermIdMessage) returns (TermResultMessage);
rpc Suspend(PeriodMessage) returns (EmptyMessage);
rpc GetLeader(EmptyMessage) returns (LeaderMessage);
rpc SetVal(KeyValMessage) returns (SuccessMessage);
rpc GetVal(KeyMessage) returns (SuccessValMessage);
rpc GetStatus(EmptyMessage) returns (EmptyMessage);
}
message KeyValMessage {
string key = 1;
string value = 2;
}
message SuccessMessage { bool success = 1; }
message KeyMessage { string key = 1; }
message SuccessValMessage {
bool success = 1;
string value = 2;
}
message RequestTermIdMessage {
int32 term = 1;
int32 id = 2;
int32 last_log_index = 3;
int32 last_log_term = 4;
}
message Update {
string command = 1;
string key = 2;
string value = 3;
}
message Entry {
int32 term = 1;
Update update = 2;
}
message AppendTermIdMessage {
int32 term = 1;
int32 id = 2;
int32 prev_log_index = 3;
int32 prev_log_term = 4;
repeated Entry entries = 5;
int32 leader_commit = 6;
}
message TermResultMessage {
int32 term = 1;
bool result = 2;
}
message PeriodMessage { int32 period = 1; }
message EmptyMessage {}
message LeaderMessage {
int32 leader = 1;
string address = 2;
}