Add overwrite option to fork lift tool
[voldemort/jeffpc.git] / src / proto / voldemort-admin.proto
blobf8a79c8ab2eadbeea75f7494174d8ef6f9fa9e3a
1 // Please use protoc version 2.3.0 to recompile:
2 //   https://code.google.com/p/protobuf/downloads/detail?name=protobuf-2.3.0.tar.gz&can=2&q=
3 // Use commmand like the below to recompile:
4 // $ protoc -I=src/proto --java_out=src/java src/proto/voldemort-admin.proto
6 package voldemort;
8 option java_package = "voldemort.client.protocol.pb";
9 option java_outer_classname = "VAdminProto";
10 option optimize_for = SPEED;
12 import "voldemort-client.proto";
14 message GetMetadataRequest {
15   required bytes key = 1;
18 message GetMetadataResponse {
19   optional Versioned version = 1;
20   optional Error error = 2;
23 message UpdateMetadataRequest {
24   required bytes key = 1;
25   required Versioned versioned = 2;
28 message UpdateStoreDefinitions {
29   required bytes key = 1;
30   required Versioned versioned = 2;
33 message UpdateMetadataPairRequest {
34   required bytes cluster_key = 1;
35   required Versioned cluster_value = 2;
36   required bytes stores_key = 3;
37   required Versioned stores_value = 4;
40 message UpdateMetadataPairResponse {
41   optional Error error = 1;
44 message UpdateMetadataResponse {
45   optional Error error = 1;
48 message FileEntry {
49   required string file_name = 1;
50   required int64 file_size_bytes = 2;
53 message PartitionEntry {
54   required bytes key = 1;
55   required Versioned versioned = 2;
58 message UpdatePartitionEntriesRequest {
59   required string store = 1;
60   required PartitionEntry partition_entry = 2;
61   optional VoldemortFilter filter = 3;
62   optional bool overwriteIfLatestTs = 4;
65 message UpdatePartitionEntriesResponse {
66   optional Error error = 1;
69 message VoldemortFilter {
70   required string name = 1;
71   required bytes data = 2;
74 message UpdateSlopEntriesRequest {
75   required string store = 1;
76   required bytes key = 2; 
77   required VectorClock version = 3;
78   required RequestType request_type = 4;
79   optional bytes value = 5;
80   optional bytes transform = 6;
83 message UpdateSlopEntriesResponse {
84   optional Error error = 1;
86 message FetchPartitionFilesRequest {
87    required string store_name = 1;
88    repeated int32 partition_ids = 2;
91 message FetchPartitionEntriesRequest {
92   repeated int32 partition_ids = 1;
93   required string store = 2;
94   optional VoldemortFilter filter = 3;
95   optional bool fetch_values = 4;
96   optional int64 OBSOLETE__DO_NOT_USE__skip_records = 5;
97   optional string initial_cluster = 6;
98   optional bool fetch_orphaned = 7;
99   optional int64 records_per_partition = 8;
102 message FetchPartitionEntriesResponse {
103   optional PartitionEntry partition_entry = 1;
104   optional bytes key = 2;
105   optional Error error = 3;
108 message DeletePartitionEntriesRequest {
109   required string store = 1;
110   repeated int32 partition_ids = 2;
111   optional VoldemortFilter filter = 3; 
112   optional string initial_cluster = 4;
115 message DeletePartitionEntriesResponse {
116   optional int64 count = 1;
117   optional Error error = 2;
120 message InitiateFetchAndUpdateRequest {
121   required int32 node_id = 1;
122   required string store = 2;
123   optional VoldemortFilter filter = 3;
124   repeated int32 partition_ids = 4;
125   optional string initial_cluster = 5;
126   optional bool OBSOLETE__DO_NOT_USE__optimize = 6;
129 message AsyncOperationStatusRequest {
130   required int32 request_id = 1;
133 message AsyncOperationStopRequest {
134   required int32 request_id = 1;
137 message AsyncOperationStopResponse {
138   optional Error error = 1;
141 message AsyncOperationListRequest {
142   required bool show_complete = 2;
145 message AsyncOperationListResponse {
146   repeated int32 request_ids = 1;
147   optional Error error = 2;
150 message PartitionTuple {
151   required int32 replica_type = 1;
152   repeated int32 partitions = 2;
155 message PerStorePartitionTuple {
156   required string store_name = 1;
157   repeated PartitionTuple replica_to_partition = 2;
160 message RebalancePartitionInfoMap {
161   required int32 stealer_id = 1;
162   required int32 donor_id = 2;
163   optional int32 OBSOLETE__DO_NOT_USE__attempt = 3;
164   repeated PerStorePartitionTuple replica_to_add_partition = 4;
165   repeated PerStorePartitionTuple replica_to_delete_partition = 5;
166   required string initial_cluster = 6;
169 message StoreToPartitionsIds {
170   required string store_name = 1;
171   repeated int32 partition_ids = 2;
174 message RebalanceTaskInfoMap {
175   required int32 stealer_id = 1;
176   required int32 donor_id = 2;
177   repeated StoreToPartitionsIds per_store_partition_ids = 3;
178   required string initial_cluster = 4;
181 message InitiateRebalanceNodeRequest {
182   required RebalanceTaskInfoMap rebalance_task_info = 1;
185 message InitiateRebalanceNodeOnDonorRequest {
186   repeated RebalancePartitionInfoMap rebalance_partition_info = 1;
189 message AsyncOperationStatusResponse {
190   optional int32 request_id = 1;
191   optional string description = 2;
192   optional string status = 3;
193   optional bool complete = 4;
194   optional Error error = 5;
197 message TruncateEntriesRequest {
198   required string store = 1;
201 message TruncateEntriesResponse {
202   optional Error error = 1;
205 message AddStoreRequest {
206   required string storeDefinition = 1;
209 message AddStoreResponse {
210   optional Error error = 1;
213 message DeleteStoreRequest {
214   required string storeName = 1;
217 message DeleteStoreResponse {
218   optional Error error = 1;
221 message FetchStoreRequest {
222   required string store_name = 1;
223   required string store_dir = 2;
224   optional int64 push_version = 3; 
227 message SwapStoreRequest {
228   required string store_name = 1;
229   required string store_dir = 2;
232 message SwapStoreResponse {
233   optional Error error = 1; 
234   optional string previous_store_dir = 2;
237 message RollbackStoreRequest {
238   required string store_name = 1;
239   required int64 push_version = 2; 
242 message RollbackStoreResponse {
243   optional Error error = 1;
246 message RepairJobRequest {
247   optional string store_name = 1;
250 message RepairJobResponse {
251   optional Error error = 1;
254 message PruneJobRequest {
255   optional string store_name = 1;
258 message PruneJobResponse {
259   optional Error error = 1;
262 message SlopPurgeJobRequest {
263   repeated int32 filter_node_ids = 1;
264   optional int32 filter_zone_id = 2;
265   repeated string filter_store_names = 3;
268 message SlopPurgeJobResponse {
269   optional Error error = 1;
273 message ROStoreVersionDirMap {
274  required string store_name = 1;
275  required string store_dir = 2;
278 message GetROMaxVersionDirRequest {
279   repeated string store_name = 1;
282 message GetROMaxVersionDirResponse {
283   repeated ROStoreVersionDirMap ro_store_versions = 1;
284   optional Error error = 2;
287 message GetROCurrentVersionDirRequest {
288   repeated string store_name = 1;
291 message GetROCurrentVersionDirResponse {
292   repeated ROStoreVersionDirMap ro_store_versions = 1;
293   optional Error error = 2;
296 message GetROStorageFormatRequest {
297   repeated string store_name = 1;
300 message GetROStorageFormatResponse {
301   repeated ROStoreVersionDirMap ro_store_versions = 1;
302   optional Error error = 2;
305 message FailedFetchStoreRequest {
306   required string store_name = 1;
307   required string store_dir = 2;
310 message FailedFetchStoreResponse {
311   optional Error error = 1;
314 message RebalanceStateChangeRequest {
315   repeated RebalanceTaskInfoMap rebalance_task_list = 1;
316   required string cluster_string = 2;
317   required string stores_string = 3;
318   required bool swap_ro = 4;
319   required bool change_cluster_metadata = 5;
320   required bool change_rebalance_state = 6;
321   required bool rollback = 7;
324 message RebalanceStateChangeResponse {
325   optional Error error = 1;
328 message DeleteStoreRebalanceStateRequest {
329   required string store_name = 1;
330   required int32 node_id = 2; 
333 message DeleteStoreRebalanceStateResponse {
334   optional Error error = 1;
337 message NativeBackupRequest {
338   required string store_name = 1;
339   required string backup_dir = 2;
340   required bool   verify_files = 3;
341   required bool   incremental = 4;
344 message ReserveMemoryRequest {
345   required string store_name = 1;
346   required int64  size_in_mb = 2;
349 message ReserveMemoryResponse {
350   optional Error error = 1;
353 enum AdminRequestType {
354   GET_METADATA = 0;
355   UPDATE_METADATA = 1;
356   UPDATE_PARTITION_ENTRIES = 2;
357   FETCH_PARTITION_ENTRIES = 3;
358   DELETE_PARTITION_ENTRIES = 4;
359   INITIATE_FETCH_AND_UPDATE = 5;
360   ASYNC_OPERATION_STATUS = 6;
361   INITIATE_REBALANCE_NODE = 7;
362   ASYNC_OPERATION_STOP = 8;
363   ASYNC_OPERATION_LIST = 9;
364   TRUNCATE_ENTRIES = 10;
365   ADD_STORE = 11;
366   DELETE_STORE = 12;
367   FETCH_STORE = 13;
368   SWAP_STORE = 14;
369   ROLLBACK_STORE = 15;
370   GET_RO_MAX_VERSION_DIR = 16;
371   GET_RO_CURRENT_VERSION_DIR = 17;
372   FETCH_PARTITION_FILES = 18;
373   UPDATE_SLOP_ENTRIES = 20;
374   FAILED_FETCH_STORE = 22;
375   GET_RO_STORAGE_FORMAT = 23;
376   REBALANCE_STATE_CHANGE = 24;
377   REPAIR_JOB = 25;
378   // INITIATE_REBALANCE_NODE_ON_DONOR = 26;
379   DELETE_STORE_REBALANCE_STATE = 27;
380   NATIVE_BACKUP = 28;
381   RESERVE_MEMORY = 29;
382   PRUNE_JOB = 30;
383   SLOP_PURGE_JOB = 31;
384   UPDATE_METADATA_PAIR = 32;
385   UPDATE_STORE_DEFINITIONS = 33;
388 message VoldemortAdminRequest {
389   required AdminRequestType type = 1;
390   optional GetMetadataRequest get_metadata = 2;
391   optional UpdateMetadataRequest update_metadata = 3;
392   optional UpdatePartitionEntriesRequest update_partition_entries = 4;
393   optional FetchPartitionEntriesRequest fetch_partition_entries = 5;
394   optional DeletePartitionEntriesRequest delete_partition_entries = 6;
395   optional InitiateFetchAndUpdateRequest initiate_fetch_and_update = 7;
396   optional AsyncOperationStatusRequest async_operation_status = 8;
397   optional InitiateRebalanceNodeRequest initiate_rebalance_node = 9;
398   optional AsyncOperationStopRequest async_operation_stop = 10;
399   optional AsyncOperationListRequest async_operation_list = 11;
400   optional TruncateEntriesRequest truncate_entries = 12;
401   optional AddStoreRequest add_store = 13;
402   optional DeleteStoreRequest delete_store = 14;
403   optional FetchStoreRequest fetch_store = 15;
404   optional SwapStoreRequest swap_store = 16;
405   optional RollbackStoreRequest rollback_store = 17;
406   optional GetROMaxVersionDirRequest get_ro_max_version_dir = 18;
407   optional GetROCurrentVersionDirRequest get_ro_current_version_dir = 19;
408   optional FetchPartitionFilesRequest fetch_partition_files = 20;
409   optional UpdateSlopEntriesRequest update_slop_entries = 22;
410   optional FailedFetchStoreRequest failed_fetch_store = 24;
411   optional GetROStorageFormatRequest get_ro_storage_format = 25;
412   optional RebalanceStateChangeRequest rebalance_state_change = 26;
413   optional RepairJobRequest repair_job = 27;  
414   // optional InitiateRebalanceNodeOnDonorRequest initiate_rebalance_node_on_donor = 28;
415   optional DeleteStoreRebalanceStateRequest delete_store_rebalance_state = 29;
416   optional NativeBackupRequest native_backup = 30;
417   optional ReserveMemoryRequest reserve_memory = 31;
418   optional PruneJobRequest prune_job = 32;
419   optional SlopPurgeJobRequest slop_purge_job = 33;
420   optional UpdateMetadataPairRequest update_metadata_pair = 34;
421   optional UpdateStoreDefinitions update_store_definitions = 35;