-
Notifications
You must be signed in to change notification settings - Fork 584
/
voldemort-admin.proto
422 lines (351 loc) · 10.5 KB
/
voldemort-admin.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
// Please use protoc version 2.3.0 to recompile:
// https://code.google.com/p/protobuf/downloads/detail?name=protobuf-2.3.0.tar.gz&can=2&q=
// Use commmand like the below to recompile:
// $ protoc -I=src/proto --java_out=src/java src/proto/voldemort-admin.proto
package voldemort;
option java_package = "voldemort.client.protocol.pb";
option java_outer_classname = "VAdminProto";
option optimize_for = SPEED;
import "voldemort-client.proto";
message GetMetadataRequest {
required bytes key = 1;
}
message GetMetadataResponse {
optional Versioned version = 1;
optional Error error = 2;
}
message UpdateMetadataRequest {
required bytes key = 1;
required Versioned versioned = 2;
}
message UpdateStoreDefinitions {
required bytes key = 1;
required Versioned versioned = 2;
}
message UpdateMetadataPairRequest {
required bytes cluster_key = 1;
required Versioned cluster_value = 2;
required bytes stores_key = 3;
required Versioned stores_value = 4;
}
message UpdateMetadataPairResponse {
optional Error error = 1;
}
message UpdateMetadataResponse {
optional Error error = 1;
}
message FileEntry {
required string file_name = 1;
required int64 file_size_bytes = 2;
}
message PartitionEntry {
required bytes key = 1;
required Versioned versioned = 2;
}
message UpdatePartitionEntriesRequest {
required string store = 1;
required PartitionEntry partition_entry = 2;
optional VoldemortFilter filter = 3;
optional bool overwriteIfLatestTs = 4;
}
message UpdatePartitionEntriesResponse {
optional Error error = 1;
}
message VoldemortFilter {
required string name = 1;
required bytes data = 2;
}
message UpdateSlopEntriesRequest {
required string store = 1;
required bytes key = 2;
required VectorClock version = 3;
required RequestType request_type = 4;
optional bytes value = 5;
optional bytes transform = 6;
}
message UpdateSlopEntriesResponse {
optional Error error = 1;
}
message FetchPartitionFilesRequest {
required string store_name = 1;
repeated int32 partition_ids = 2;
}
message FetchPartitionEntriesRequest {
repeated int32 partition_ids = 1;
required string store = 2;
optional VoldemortFilter filter = 3;
optional bool fetch_values = 4;
optional int64 OBSOLETE__DO_NOT_USE__skip_records = 5;
optional string initial_cluster = 6;
optional bool fetch_orphaned = 7;
optional int64 records_per_partition = 8;
}
message FetchPartitionEntriesResponse {
optional PartitionEntry partition_entry = 1;
optional bytes key = 2;
optional Error error = 3;
}
message DeletePartitionEntriesRequest {
required string store = 1;
repeated int32 partition_ids = 2;
optional VoldemortFilter filter = 3;
optional string initial_cluster = 4;
}
message DeletePartitionEntriesResponse {
optional int64 count = 1;
optional Error error = 2;
}
message InitiateFetchAndUpdateRequest {
required int32 node_id = 1;
required string store = 2;
optional VoldemortFilter filter = 3;
repeated int32 partition_ids = 4;
optional string initial_cluster = 5;
optional bool OBSOLETE__DO_NOT_USE__optimize = 6;
}
message AsyncOperationStatusRequest {
required int32 request_id = 1;
}
message AsyncOperationStopRequest {
required int32 request_id = 1;
}
message AsyncOperationStopResponse {
optional Error error = 1;
}
message AsyncOperationListRequest {
required bool show_complete = 2;
}
message AsyncOperationListResponse {
repeated int32 request_ids = 1;
optional Error error = 2;
}
message PartitionTuple {
required int32 replica_type = 1;
repeated int32 partitions = 2;
}
message PerStorePartitionTuple {
required string store_name = 1;
repeated PartitionTuple replica_to_partition = 2;
}
message RebalancePartitionInfoMap {
required int32 stealer_id = 1;
required int32 donor_id = 2;
optional int32 OBSOLETE__DO_NOT_USE__attempt = 3;
repeated PerStorePartitionTuple replica_to_add_partition = 4;
repeated PerStorePartitionTuple replica_to_delete_partition = 5;
required string initial_cluster = 6;
}
message StoreToPartitionsIds {
required string store_name = 1;
repeated int32 partition_ids = 2;
}
message RebalanceTaskInfoMap {
required int32 stealer_id = 1;
required int32 donor_id = 2;
repeated StoreToPartitionsIds per_store_partition_ids = 3;
required string initial_cluster = 4;
}
message InitiateRebalanceNodeRequest {
required RebalanceTaskInfoMap rebalance_task_info = 1;
}
message InitiateRebalanceNodeOnDonorRequest {
repeated RebalancePartitionInfoMap rebalance_partition_info = 1;
}
message AsyncOperationStatusResponse {
optional int32 request_id = 1;
optional string description = 2;
optional string status = 3;
optional bool complete = 4;
optional Error error = 5;
}
message TruncateEntriesRequest {
required string store = 1;
}
message TruncateEntriesResponse {
optional Error error = 1;
}
message AddStoreRequest {
required string storeDefinition = 1;
}
message AddStoreResponse {
optional Error error = 1;
}
message DeleteStoreRequest {
required string storeName = 1;
}
message DeleteStoreResponse {
optional Error error = 1;
}
message FetchStoreRequest {
required string store_name = 1;
required string store_dir = 2;
optional int64 push_version = 3;
}
message SwapStoreRequest {
required string store_name = 1;
required string store_dir = 2;
}
message SwapStoreResponse {
optional Error error = 1;
optional string previous_store_dir = 2;
}
message RollbackStoreRequest {
required string store_name = 1;
required int64 push_version = 2;
}
message RollbackStoreResponse {
optional Error error = 1;
}
message RepairJobRequest {
optional string store_name = 1;
}
message RepairJobResponse {
optional Error error = 1;
}
message PruneJobRequest {
optional string store_name = 1;
}
message PruneJobResponse {
optional Error error = 1;
}
message SlopPurgeJobRequest {
repeated int32 filter_node_ids = 1;
optional int32 filter_zone_id = 2;
repeated string filter_store_names = 3;
}
message SlopPurgeJobResponse {
optional Error error = 1;
}
message ROStoreVersionDirMap {
required string store_name = 1;
required string store_dir = 2;
}
message GetROMaxVersionDirRequest {
repeated string store_name = 1;
}
message GetROMaxVersionDirResponse {
repeated ROStoreVersionDirMap ro_store_versions = 1;
optional Error error = 2;
}
message GetROCurrentVersionDirRequest {
repeated string store_name = 1;
}
message GetROCurrentVersionDirResponse {
repeated ROStoreVersionDirMap ro_store_versions = 1;
optional Error error = 2;
}
message GetROStorageFormatRequest {
repeated string store_name = 1;
}
message GetROStorageFormatResponse {
repeated ROStoreVersionDirMap ro_store_versions = 1;
optional Error error = 2;
}
message FailedFetchStoreRequest {
required string store_name = 1;
required string store_dir = 2;
}
message FailedFetchStoreResponse {
optional Error error = 1;
}
message RebalanceStateChangeRequest {
repeated RebalanceTaskInfoMap rebalance_task_list = 1;
required string cluster_string = 2;
required string stores_string = 3;
required bool swap_ro = 4;
required bool change_cluster_metadata = 5;
required bool change_rebalance_state = 6;
required bool rollback = 7;
}
message RebalanceStateChangeResponse {
optional Error error = 1;
}
message DeleteStoreRebalanceStateRequest {
required string store_name = 1;
required int32 node_id = 2;
}
message DeleteStoreRebalanceStateResponse {
optional Error error = 1;
}
message NativeBackupRequest {
required string store_name = 1;
required string backup_dir = 2;
required bool verify_files = 3;
required bool incremental = 4;
}
message ReserveMemoryRequest {
required string store_name = 1;
required int64 size_in_mb = 2;
}
message ReserveMemoryResponse {
optional Error error = 1;
}
enum AdminRequestType {
GET_METADATA = 0;
UPDATE_METADATA = 1;
UPDATE_PARTITION_ENTRIES = 2;
FETCH_PARTITION_ENTRIES = 3;
DELETE_PARTITION_ENTRIES = 4;
INITIATE_FETCH_AND_UPDATE = 5;
ASYNC_OPERATION_STATUS = 6;
INITIATE_REBALANCE_NODE = 7;
ASYNC_OPERATION_STOP = 8;
ASYNC_OPERATION_LIST = 9;
TRUNCATE_ENTRIES = 10;
ADD_STORE = 11;
DELETE_STORE = 12;
FETCH_STORE = 13;
SWAP_STORE = 14;
ROLLBACK_STORE = 15;
GET_RO_MAX_VERSION_DIR = 16;
GET_RO_CURRENT_VERSION_DIR = 17;
FETCH_PARTITION_FILES = 18;
UPDATE_SLOP_ENTRIES = 20;
FAILED_FETCH_STORE = 22;
GET_RO_STORAGE_FORMAT = 23;
REBALANCE_STATE_CHANGE = 24;
REPAIR_JOB = 25;
// INITIATE_REBALANCE_NODE_ON_DONOR = 26;
DELETE_STORE_REBALANCE_STATE = 27;
NATIVE_BACKUP = 28;
RESERVE_MEMORY = 29;
PRUNE_JOB = 30;
SLOP_PURGE_JOB = 31;
UPDATE_METADATA_PAIR = 32;
UPDATE_STORE_DEFINITIONS = 33;
}
message VoldemortAdminRequest {
required AdminRequestType type = 1;
optional GetMetadataRequest get_metadata = 2;
optional UpdateMetadataRequest update_metadata = 3;
optional UpdatePartitionEntriesRequest update_partition_entries = 4;
optional FetchPartitionEntriesRequest fetch_partition_entries = 5;
optional DeletePartitionEntriesRequest delete_partition_entries = 6;
optional InitiateFetchAndUpdateRequest initiate_fetch_and_update = 7;
optional AsyncOperationStatusRequest async_operation_status = 8;
optional InitiateRebalanceNodeRequest initiate_rebalance_node = 9;
optional AsyncOperationStopRequest async_operation_stop = 10;
optional AsyncOperationListRequest async_operation_list = 11;
optional TruncateEntriesRequest truncate_entries = 12;
optional AddStoreRequest add_store = 13;
optional DeleteStoreRequest delete_store = 14;
optional FetchStoreRequest fetch_store = 15;
optional SwapStoreRequest swap_store = 16;
optional RollbackStoreRequest rollback_store = 17;
optional GetROMaxVersionDirRequest get_ro_max_version_dir = 18;
optional GetROCurrentVersionDirRequest get_ro_current_version_dir = 19;
optional FetchPartitionFilesRequest fetch_partition_files = 20;
optional UpdateSlopEntriesRequest update_slop_entries = 22;
optional FailedFetchStoreRequest failed_fetch_store = 24;
optional GetROStorageFormatRequest get_ro_storage_format = 25;
optional RebalanceStateChangeRequest rebalance_state_change = 26;
optional RepairJobRequest repair_job = 27;
// optional InitiateRebalanceNodeOnDonorRequest initiate_rebalance_node_on_donor = 28;
optional DeleteStoreRebalanceStateRequest delete_store_rebalance_state = 29;
optional NativeBackupRequest native_backup = 30;
optional ReserveMemoryRequest reserve_memory = 31;
optional PruneJobRequest prune_job = 32;
optional SlopPurgeJobRequest slop_purge_job = 33;
optional UpdateMetadataPairRequest update_metadata_pair = 34;
optional UpdateStoreDefinitions update_store_definitions = 35;
}