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
10 * http://www.apache.org/licenses/LICENSE-2.0
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.
20 // This file contains protocol buffers that are shared throughout HBase
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;
33 required bytes namespace = 1;
34 required bytes qualifier = 2;
39 * Inspired by the rest 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 */
50 // Table's current state
57 // This is the table's state.
58 required State state = 1;
62 * Column Family Schema
63 * Inspired by the rest ColumSchemaMessage
65 message ColumnFamilySchema {
66 required bytes name = 1;
67 repeated BytesBytesPair attributes = 2;
68 repeated NameStringPair configuration = 3;
72 * Protocol buffer version of HRegionInfo.
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;
86 * Protocol buffer for favored nodes
88 message FavoredNodes {
89 repeated ServerName favored_node = 1;
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
98 message RegionSpecifier {
99 required RegionSpecifierType type = 1;
100 required bytes value = 2;
102 enum RegionSpecifierType {
103 // <tablename>,<startkey>,<regionId>.<encodedName>
106 // hash of <tablename>,<startkey>,<regionId>
107 ENCODED_REGION_NAME = 2;
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
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 */
139 GREATER_OR_EQUAL = 4;
145 * Protocol buffer version of 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
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;
205 required int64 long_msg = 1;
209 required double double_msg = 1;
212 message BigDecimalMsg {
213 required bytes bigdecimal_msg = 1;
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
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;