HBASE-26921 Rewrite the counting cells part in TestMultiVersions (#4316)
[hbase.git] / hbase-protocol-shaded / src / main / protobuf / Backup.proto
blobafe43122f84827c94019473d749f83cd44c9a40a
1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements.  See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership.  The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License.  You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless optional by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 syntax = "proto2";
19 // This file contains Backup manifest
20 package hbase.pb;
22 option java_package = "org.apache.hadoop.hbase.shaded.protobuf.generated";
23 option java_outer_classname = "BackupProtos";
24 option java_generic_services = true;
25 option java_generate_equals_and_hash = true;
26 option optimize_for = SPEED;
28 import "HBase.proto";
30 /**
31  * Backup type enum: FULL or INCREMENTAL
32  */
34 enum BackupType {
35   FULL = 0;
36   INCREMENTAL = 1;
38 /**
39  * ServerTimestamp keeps last WAL roll time per Region Server
40  */
41 message ServerTimestamp {
42   optional ServerName server_name = 1;
43   optional uint64 timestamp = 2;
46 /**
47  *  TableServerTimestamp keeps last WAL roll time per Region Server & Table
48  *  Each table have different last WAL roll time stamps across cluster, on every RS
49  */
50 message TableServerTimestamp {
51   optional TableName table_name = 1;
52   repeated ServerTimestamp server_timestamp = 2;
55 /**
56  * Structure keeps relevant info for backup restore session
57  */
58 message BackupImage {
59   optional string backup_id = 1;
60   optional BackupType backup_type = 2;
61   optional string backup_root_dir = 3;
62   repeated TableName table_list = 4;
63   optional uint64 start_ts = 5;
64   optional uint64 complete_ts = 6;
65   repeated BackupImage ancestors = 7;
66   repeated TableServerTimestamp tst_map = 8;
70 /**
71  * Internal structure used during backup
72  */
73 message BackupTableInfo {
74   optional TableName table_name = 1;
75   optional string snapshot_name = 2;
78 /**
79  * Backup session information
80  */
81 message BackupInfo {
82   optional string backup_id = 1;
83   optional BackupType backup_type = 2;
84   optional string backup_root_dir = 3;
85   optional BackupState backup_state = 4;
86   optional BackupPhase backup_phase = 5;
87   optional string failed_message = 6;
88   repeated BackupTableInfo backup_table_info = 7;
89   optional uint64  start_ts = 8;
90   optional uint64  complete_ts = 9;
91   optional uint32 progress = 10;
92   optional uint32 workers_number = 11;
93   optional uint64 bandwidth = 12;
94   map<string, RSTimestampMap> table_set_timestamp = 13;
96   message RSTimestampMap {
97     map<string, uint64> rs_timestamp = 1;
98   }
99   /**
100    * Backup session states
101    */
102   enum BackupState {
103     RUNNING = 0;
104     COMPLETE = 1;
105     FAILED = 2;
106     CANCELLED = 3;
107   }
109   /**
110    * Phases of a backup session in RUNNING state
111    *
112    */
113   enum BackupPhase {
114     REQUEST = 0;
115     SNAPSHOT = 1;
116     PREPARE_INCREMENTAL = 2;
117     SNAPSHOTCOPY = 3;
118     INCREMENTAL_COPY = 4;
119     STORE_MANIFEST = 5;
120   }