174 lines
5.1 KiB
Protocol Buffer
174 lines
5.1 KiB
Protocol Buffer
/**
|
|
* 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 {
|
|
}
|