HBASE-23313 [hbck2] setRegionState should update Master in-memory sta… (#864)
[hbase.git] / hbase-protocol-shaded / src / main / protobuf / HBase.proto
blobcf577e93ef76902fb0214599e04a18d91b2d88d7
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 required 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";
20 // This file contains protocol buffers that are shared throughout HBase
21 package hbase.pb;
23 option java_package = "org.apache.hadoop.hbase.shaded.protobuf.generated";
24 option java_outer_classname = "HBaseProtos";
25 option java_generate_equals_and_hash = true;
26 option optimize_for = SPEED;
29 /**
30  * Table Name
31  */
32 message TableName {
33   required bytes namespace = 1;
34   required bytes qualifier = 2;
37 /**
38  * Table Schema
39  * Inspired by the rest TableSchema
40  */
41 message TableSchema {
42   optional TableName table_name = 1;
43   repeated BytesBytesPair attributes = 2;
44   repeated ColumnFamilySchema column_families = 3;
45   repeated NameStringPair configuration = 4;
48 /** Denotes state of the table */
49 message TableState {
50   // Table's current state
51   enum State {
52     ENABLED = 0;
53     DISABLED = 1;
54     DISABLING = 2;
55     ENABLING = 3;
56   }
57   // This is the table's state.
58   required State state = 1;
61 /**
62  * Column Family Schema
63  * Inspired by the rest ColumSchemaMessage
64  */
65 message ColumnFamilySchema {
66   required bytes name = 1;
67   repeated BytesBytesPair attributes = 2;
68   repeated NameStringPair configuration = 3;
71 /**
72  * Protocol buffer version of HRegionInfo.
73  */
74 message RegionInfo {
75   required uint64 region_id = 1;
76   required TableName table_name = 2;
77   optional bytes start_key = 3;
78   optional bytes end_key = 4;
79   optional bool offline = 5;
80   optional bool split = 6;
81   optional int32 replica_id = 7 [default = 0];
82   optional string region_encoded_name = 8;
85 /**
86  * Protocol buffer for favored nodes
87  */
88 message FavoredNodes {
89   repeated ServerName favored_node = 1;
92 /**
93  * Container protocol buffer to specify a region.
94  * You can specify region by region name, or the hash
95  * of the region name, which is known as encoded
96  * region name.
97  */
98 message RegionSpecifier {
99   required RegionSpecifierType type = 1;
100   required bytes value = 2;
102   enum RegionSpecifierType {
103     // <tablename>,<startkey>,<regionId>.<encodedName>
104     REGION_NAME = 1;
106     // hash of <tablename>,<startkey>,<regionId>
107     ENCODED_REGION_NAME = 2;
108   }
112  * A range of time. Both from and to are Java time
113  * stamp in milliseconds. If you don't specify a time
114  * range, it means all time.  By default, if not
115  * specified, from = 0, and to = Long.MAX_VALUE
116  */
117 message TimeRange {
118   optional uint64 from = 1;
119   optional uint64 to = 2;
122 message TimeRangeTracker {
123   optional uint64 from = 1;
124   optional uint64 to = 2;
127 /* ColumnFamily Specific TimeRange */
128 message ColumnFamilyTimeRange {
129   required bytes column_family = 1;
130   required TimeRange time_range = 2;
133 /* Comparison operators */
134 enum CompareType {
135   LESS = 0;
136   LESS_OR_EQUAL = 1;
137   EQUAL = 2;
138   NOT_EQUAL = 3;
139   GREATER_OR_EQUAL = 4;
140   GREATER = 5;
141   NO_OP = 6;
145  * Protocol buffer version of ServerName
146  */
147 message ServerName {
148   required string host_name = 1;
149   optional uint32 port = 2;
150   optional uint64 start_code = 3;
153 // Comment data structures
155 message Coprocessor {
156   required string name = 1;
159 message NameStringPair {
160   required string name = 1;
161   required string value = 2;
164 message NameBytesPair {
165   required string name = 1;
166   optional bytes value = 2;
169 message BytesBytesPair {
170   required bytes first = 1;
171   required bytes second = 2;
174 message NameInt64Pair {
175   optional string name = 1;
176   optional int64 value = 2;
182  * Description of the distributed procedure to take
183  */
184 message ProcedureDescription {
185   required string signature = 1; // the unique signature of the procedure
186   optional string instance = 2; // the procedure instance name
187   optional int64 creation_time = 3 [default = 0];
188   repeated NameStringPair configuration = 4;
191 message EmptyMsg {
194 enum TimeUnit {
195   NANOSECONDS = 1;
196   MICROSECONDS = 2;
197   MILLISECONDS = 3;
198   SECONDS = 4;
199   MINUTES = 5;
200   HOURS = 6;
201   DAYS = 7;
204 message LongMsg {
205   required int64 long_msg = 1;
208 message DoubleMsg {
209   required double double_msg = 1;
212 message BigDecimalMsg {
213   required bytes bigdecimal_msg = 1;
216 message UUID {
217   required uint64 least_sig_bits = 1;
218   required uint64 most_sig_bits = 2;
221 message NamespaceDescriptor {
222   required bytes name = 1;
223   repeated NameStringPair configuration = 2;
226 // Rpc client version info proto. Included in ConnectionHeader on connection setup
227 message VersionInfo {
228   required string version = 1;
229   required string url = 2;
230   required string revision = 3;
231   required string user = 4;
232   required string date = 5;
233   required string src_checksum = 6;
234   optional uint32 version_major = 7;
235   optional uint32 version_minor = 8;
239  * Description of the region server info
240  */
241 message RegionServerInfo {
242   optional int32 infoPort = 1;
243   optional VersionInfo version_info = 2;
246 message RegionExceptionMessage {
247   required RegionSpecifier region = 1;
248   required NameBytesPair exception = 2;
251 message CacheEvictionStats {
252   optional int64 evicted_blocks = 1;
253   optional int64 bytes_evicted = 2;
254   optional int64 max_cache_size = 3;
255   repeated RegionExceptionMessage exception = 4;
258 message FlushedStoreSequenceId {
259   required bytes family = 1;
260   required uint64 seqId = 2;
263 message FlushedRegionSequenceId {
264   required bytes regionEncodedName = 1;
265   required uint64 seqId = 2;
266   repeated FlushedStoreSequenceId stores = 3;
269 message FlushedSequenceId {
270   repeated FlushedRegionSequenceId regionSequenceId = 1;
273 message RegionLocation {
274   required RegionInfo region_info = 1;
275   optional ServerName server_name = 2;
276   required int64 seq_num = 3;