@hzhangxyz/ddss 0.0.1-alpha1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ddss.proto ADDED
@@ -0,0 +1,85 @@
1
+ syntax = "proto3";
2
+
3
+ package cn.edu.ustc.kclab.ddss;
4
+
5
+ // 节点信息
6
+ message Node {
7
+ string id = 1; // 节点唯一标识符
8
+ string addr = 2; // 节点地址(格式: IP:端口)
9
+ }
10
+
11
+ // 加入集群请求
12
+ message JoinRequest {
13
+ Node node = 1; // 请求加入的节点信息
14
+ }
15
+
16
+ // 加入集群响应
17
+ message JoinResponse {
18
+ repeated Node nodes = 1; // 当前集群中所有节点的列表
19
+ }
20
+
21
+ // 离开集群请求
22
+ message LeaveRequest {
23
+ Node node = 1; // 请求离开的节点信息
24
+ }
25
+
26
+ // 离开集群响应
27
+ message LeaveResponse {
28
+ }
29
+
30
+ service Cluster {
31
+ // 向对方节点发送加入请求, 对方负责将本节点信息加入其本地信息, 并返回当前集群中所有节点的信息, 由本节点负责向其他节点发送加入请求
32
+ rpc Join(JoinRequest) returns (JoinResponse);
33
+ // 向对方节点发送离开请求, 对方负责将本节点信息从其本地信息中删除, 由本节点负责向所有节点发送离开请求
34
+ rpc Leave(LeaveRequest) returns (LeaveResponse);
35
+ }
36
+
37
+ // 引擎类型
38
+ enum EngineKind {
39
+ EAGER = 0; // 积极模式:主动搜索数据
40
+ LAZY = 1; // 惰性模式:被动响应查询
41
+ }
42
+
43
+ // 引擎元数据
44
+ message EngineMetaData {
45
+ string id = 1; // 引擎标识符
46
+ EngineKind kind = 2; // 引擎类型
47
+ repeated string input = 3; // 输入数据模式列表
48
+ repeated string output = 4; // 输出数据模式列表
49
+ }
50
+
51
+ // 获取元数据请求
52
+ message MetaDataRequest {
53
+ }
54
+
55
+ // 获取元数据响应
56
+ message MetaDataResponse {
57
+ EngineMetaData metadata = 1; // 引擎元数据信息
58
+ }
59
+
60
+ // 推送数据请求
61
+ message PushDataRequest {
62
+ repeated string data = 1; // 要推送的数据列表
63
+ }
64
+
65
+ // 推送数据响应
66
+ message PushDataResponse {
67
+ }
68
+
69
+ // 拉取数据请求
70
+ message PullDataRequest {
71
+ }
72
+
73
+ // 拉取数据响应
74
+ message PullDataResponse {
75
+ repeated string data = 1; // 返回的数据列表
76
+ }
77
+
78
+ service Engine {
79
+ // 获取引擎的元数据信息
80
+ rpc MetaData(MetaDataRequest) returns (MetaDataResponse);
81
+ // 推送数据到对方, 对方不负责转发到其他节点
82
+ rpc PushData(PushDataRequest) returns (PushDataResponse);
83
+ // 从对方拉取先前所有数据, 对方不负责收集其他节点数据
84
+ rpc PullData(PullDataRequest) returns (PullDataResponse);
85
+ }