blob: 4c338f6966fe04013f9d7457ae12d5814587bca1 [file] [log] [blame]
Giorgi Lekveishvilic548ec52020-03-16 21:59:14 +04001syntax = "proto3";
2
3package pcloud;
4
5message Chunk {
6 string chunk_id = 1;
7 int32 size_bytes = 2;
8 bytes data = 3;
9}
10
11// ChunkStorage
12
13service ChunkStorage {
14 rpc ListChunks(ListChunksRequest) returns (ListChunksResponse) {}
15
16 rpc ReadChunk(ReadChunkRequest) returns (ReadChunkResponse) {}
17
18 rpc StoreChunk(StoreChunkRequest) returns (StoreChunkResponse) {}
19}
20
21message ListChunksRequest {
22}
23
24message ListChunksResponse {
25 repeated string chunk_id = 1;
26}
27
28message ReadChunkRequest {
29 string chunk_id = 1;
30 int32 offset = 2;
31 int32 num_bytes = 3;
32}
33
34message ReadChunkResponse {
35 bytes data = 1;
36}
37
38message StoreChunkRequest {
39 string chunk_id = 1;
40 bytes data = 2;
41}
42
43message StoreChunkResponse {
44}
45
46// MetadataStorage
47
48message ChunkStorageMetadata {
49 string chunk_id = 1;
50 int32 size_bytes = 2;
51 repeated string server = 3;
52}
53
54service MetadataStorage {
55 rpc AddChunkServer(AddChunkServerRequest) returns (AddChunkServerResponse) {}
56
57 rpc CreateBlob(CreateBlobRequest) returns (CreateBlobResponse) {}
58
59 rpc GetBlobMetadata(GetBlobMetadataRequest) returns (GetBlobMetadataResponse) {}
60}
61
62message AddChunkServerRequest {
63 string address = 1;
64}
65
66message AddChunkServerResponse {
67}
68
69message CreateBlobRequest {
70 int32 size_bytes = 1;
71 int32 chunk_size_bytes = 2;
72 int32 num_replicas = 3;
73}
74
75message CreateBlobResponse {
76 string blob_id = 1;
77 repeated ChunkStorageMetadata chunk = 2;
78}
79
80message GetBlobMetadataRequest {
81 string blob_id = 1;
82}
83
84message GetBlobMetadataResponse {
85 string blob_id = 1;
86 int32 size_bytes = 2;
87 repeated ChunkStorageMetadata chunk = 3;
88}