-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathepaxos.proto
53 lines (42 loc) · 996 Bytes
/
epaxos.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
syntax = "proto3";
package epaxos;
// service EpaxosInternal {
// rpc pre_accept(Payload) returns (Payload);
// rpc accept(Payload) returns (AcceptOKPayload);
// rpc commit(Payload) returns (Empty);
// }
service EpaxosService {
rpc pre_accept(Payload) returns (Payload);
rpc accept(Payload) returns (AcceptOKPayload);
rpc commit(Payload) returns (Empty);
rpc write(WriteRequest) returns (WriteResponse);
rpc read(ReadRequest) returns (ReadResponse);
}
message WriteRequest {
string key = 1;
int32 value = 2;
}
message WriteResponse {
bool commit = 1;
}
message ReadRequest {
string key = 1;
}
message ReadResponse {
int32 value = 1;
}
message Instance {
uint32 replica = 1;
uint32 slot = 2;
}
message Payload {
WriteRequest write_req = 2;
uint32 seq = 3;
repeated Instance deps = 4;
Instance instance = 5;
}
message AcceptOKPayload {
WriteRequest command = 1;
Instance instance = 4;
}
message Empty {}