aboutsummaryrefslogtreecommitdiff
path: root/weed/pb/master.proto
diff options
context:
space:
mode:
Diffstat (limited to 'weed/pb/master.proto')
-rw-r--r--weed/pb/master.proto71
1 files changed, 71 insertions, 0 deletions
diff --git a/weed/pb/master.proto b/weed/pb/master.proto
new file mode 100644
index 000000000..bc376f75b
--- /dev/null
+++ b/weed/pb/master.proto
@@ -0,0 +1,71 @@
+syntax = "proto3";
+
+package master_pb;
+
+//////////////////////////////////////////////////
+
+service Seaweed {
+ rpc SendHeartbeat (stream Heartbeat) returns (stream HeartbeatResponse) {
+ }
+ rpc KeepConnected (stream ClientListenRequest) returns (stream VolumeLocation) {
+ }
+}
+
+//////////////////////////////////////////////////
+
+message Heartbeat {
+ string ip = 1;
+ uint32 port = 2;
+ string public_url = 3;
+ uint32 max_volume_count = 4;
+ uint64 max_file_key = 5;
+ string data_center = 6;
+ string rack = 7;
+ uint32 admin_port = 8;
+ repeated VolumeInformationMessage volumes = 9;
+ // delta volume ids
+ repeated uint32 new_vids = 10;
+ repeated uint32 deleted_vids = 11;
+}
+
+message HeartbeatResponse {
+ uint64 volumeSizeLimit = 1;
+ string secretKey = 2;
+ string leader = 3;
+}
+
+message VolumeInformationMessage {
+ uint32 id = 1;
+ uint64 size = 2;
+ string collection = 3;
+ uint64 file_count = 4;
+ uint64 delete_count = 5;
+ uint64 deleted_byte_count = 6;
+ bool read_only = 7;
+ uint32 replica_placement = 8;
+ uint32 version = 9;
+ uint32 ttl = 10;
+}
+
+message Empty {
+}
+
+message SuperBlockExtra {
+ message ErasureCoding {
+ uint32 data = 1;
+ uint32 parity = 2;
+ repeated uint32 volume_ids = 3;
+ }
+ ErasureCoding erasure_coding = 1;
+}
+
+message ClientListenRequest {
+ string name = 1;
+}
+
+message VolumeLocation {
+ string url = 1;
+ string public_url = 2;
+ repeated uint32 new_vids = 3;
+ repeated uint32 deleted_vids = 4;
+}