You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
5.1 KiB
173 lines
5.1 KiB
/** |
|
* Licensed to the Apache Software Foundation (ASF) under one |
|
* or more contributor license agreements. See the NOTICE file |
|
* distributed with this work for additional information |
|
* regarding copyright ownership. The ASF licenses this file |
|
* to you under the Apache License, Version 2.0 (the |
|
* "License"); you may not use this file except in compliance |
|
* with the License. You may obtain a copy of the License at |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, software |
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
* See the License for the specific language governing permissions and |
|
* limitations under the License. |
|
*/ |
|
package pb; |
|
|
|
option java_package = "org.apache.hadoop.hbase.protobuf.generated"; |
|
option java_outer_classname = "WALProtos"; |
|
option java_generic_services = false; |
|
option java_generate_equals_and_hash = true; |
|
option optimize_for = SPEED; |
|
|
|
import "HBase.proto"; |
|
import "Client.proto"; |
|
|
|
message WALHeader { |
|
optional bool has_compression = 1; |
|
optional bytes encryption_key = 2; |
|
optional bool has_tag_compression = 3; |
|
optional string writer_cls_name = 4; |
|
optional string cell_codec_cls_name = 5; |
|
} |
|
|
|
/* |
|
* Protocol buffer version of WALKey; see WALKey comment, not really a key but WALEdit header |
|
* for some KVs |
|
*/ |
|
message WALKey { |
|
required bytes encoded_region_name = 1; |
|
required bytes table_name = 2; |
|
required uint64 log_sequence_number = 3; |
|
required uint64 write_time = 4; |
|
/* |
|
This parameter is deprecated in favor of clusters which |
|
contains the list of clusters that have consumed the change. |
|
It is retained so that the log created by earlier releases (0.94) |
|
can be read by the newer releases. |
|
*/ |
|
optional UUID cluster_id = 5 [deprecated=true]; |
|
|
|
repeated FamilyScope scopes = 6; |
|
optional uint32 following_kv_count = 7; |
|
|
|
/* |
|
This field contains the list of clusters that have |
|
consumed the change |
|
*/ |
|
repeated UUID cluster_ids = 8; |
|
|
|
optional uint64 nonceGroup = 9; |
|
optional uint64 nonce = 10; |
|
optional uint64 orig_sequence_number = 11; |
|
|
|
/* |
|
optional CustomEntryType custom_entry_type = 9; |
|
|
|
enum CustomEntryType { |
|
COMPACTION = 0; |
|
} |
|
*/ |
|
} |
|
|
|
enum ScopeType { |
|
REPLICATION_SCOPE_LOCAL = 0; |
|
REPLICATION_SCOPE_GLOBAL = 1; |
|
} |
|
|
|
message FamilyScope { |
|
required bytes family = 1; |
|
required ScopeType scope_type = 2; |
|
} |
|
|
|
/** |
|
* Custom WAL entries |
|
*/ |
|
|
|
/** |
|
* Special WAL entry to hold all related to a compaction. |
|
* Written to WAL before completing compaction. There is |
|
* sufficient info in the below message to complete later |
|
* the * compaction should we fail the WAL write. |
|
*/ |
|
message CompactionDescriptor { |
|
required bytes table_name = 1; // TODO: WALKey already stores these, might remove |
|
required bytes encoded_region_name = 2; |
|
required bytes family_name = 3; |
|
repeated string compaction_input = 4; // relative to store dir |
|
repeated string compaction_output = 5; |
|
required string store_home_dir = 6; // relative to region dir |
|
optional bytes region_name = 7; // full region name |
|
} |
|
|
|
/** |
|
* Special WAL entry to hold all related to a flush. |
|
*/ |
|
message FlushDescriptor { |
|
enum FlushAction { |
|
START_FLUSH = 0; |
|
COMMIT_FLUSH = 1; |
|
ABORT_FLUSH = 2; |
|
CANNOT_FLUSH = 3; // marker for indicating that a flush has been requested but cannot complete |
|
} |
|
|
|
message StoreFlushDescriptor { |
|
required bytes family_name = 1; |
|
required string store_home_dir = 2; //relative to region dir |
|
repeated string flush_output = 3; // relative to store dir (if this is a COMMIT_FLUSH) |
|
} |
|
|
|
required FlushAction action = 1; |
|
required bytes table_name = 2; |
|
required bytes encoded_region_name = 3; |
|
optional uint64 flush_sequence_number = 4; |
|
repeated StoreFlushDescriptor store_flushes = 5; |
|
optional bytes region_name = 6; // full region name |
|
} |
|
|
|
message StoreDescriptor { |
|
required bytes family_name = 1; |
|
required string store_home_dir = 2; //relative to region dir |
|
repeated string store_file = 3; // relative to store dir |
|
optional uint64 store_file_size_bytes = 4; // size of store file |
|
} |
|
|
|
/** |
|
* Special WAL entry used for writing bulk load events to WAL |
|
*/ |
|
message BulkLoadDescriptor { |
|
required TableName table_name = 1; |
|
required bytes encoded_region_name = 2; |
|
repeated StoreDescriptor stores = 3; |
|
required int64 bulkload_seq_num = 4; |
|
} |
|
|
|
/** |
|
* Special WAL entry to hold all related to a region event (open/close). |
|
*/ |
|
message RegionEventDescriptor { |
|
enum EventType { |
|
REGION_OPEN = 0; |
|
REGION_CLOSE = 1; |
|
} |
|
|
|
required EventType event_type = 1; |
|
required bytes table_name = 2; |
|
required bytes encoded_region_name = 3; |
|
optional uint64 log_sequence_number = 4; |
|
repeated StoreDescriptor stores = 5; |
|
optional ServerName server = 6; // Server who opened the region |
|
optional bytes region_name = 7; // full region name |
|
} |
|
|
|
/** |
|
* A trailer that is appended to the end of a properly closed WAL file. |
|
* If missing, this is either a legacy or a corrupted WAL file. |
|
* N.B. This trailer currently doesn't contain any information and we |
|
* purposefully don't expose it in the WAL APIs. It's for future growth. |
|
*/ |
|
message WALTrailer { |
|
}
|
|
|