ikv.tikv-client.2.4.4-scala_2.11-RC1.source-code.import_kvpb.proto Maven / Gradle / Ivy
syntax = "proto3";
package import_kvpb;
import "import_sstpb.proto";
import "gogoproto/gogo.proto";
import "rustproto.proto";
option (gogoproto.sizer_all) = true;
option (gogoproto.marshaler_all) = true;
option (gogoproto.unmarshaler_all) = true;
option (rustproto.lite_runtime_all) = true;
option java_package = "org.tikv.kvproto";
// ImportKV provides a service to import key-value pairs to TiKV.
//
// In order to import key-value pairs to TiKV, the user should:
// 1. Open an engine identified by an UUID.
// 2. Open write streams to write key-value batches to the opened engine.
// Different streams/clients can write to the same engine concurrently.
// 3. Close the engine after all write batches have been finished. An
// engine can only be closed when all write streams are closed. An
// engine can only be closed once, and it can not be opened again
// once it is closed.
// 4. Import the data in the engine to the target cluster. Note that
// the import process is not atomic, it requires the data to be
// idempotent on retry. An engine can only be imported after it is
// closed. An engine can be imported multiple times, but can not be
// imported concurrently.
// 5. Clean up the engine after it has been imported. Delete all data
// in the engine. An engine can not be cleaned up when it is
// writing or importing.
service ImportKV {
// Switch the target cluster to normal/import mode.
rpc SwitchMode(SwitchModeRequest) returns (SwitchModeResponse) {}
// Open an engine.
rpc OpenEngine(OpenEngineRequest) returns (OpenEngineResponse) {}
// Open a write stream to the engine.
rpc WriteEngine(stream WriteEngineRequest) returns (WriteEngineResponse) {}
// Write to engine, single message version
rpc WriteEngineV3(WriteEngineV3Request) returns (WriteEngineResponse) {}
// Close the engine.
rpc CloseEngine(CloseEngineRequest) returns (CloseEngineResponse) {}
// Import the engine to the target cluster.
rpc ImportEngine(ImportEngineRequest) returns (ImportEngineResponse) {}
// Clean up the engine.
rpc CleanupEngine(CleanupEngineRequest) returns (CleanupEngineResponse) {}
// Compact the target cluster for better performance.
rpc CompactCluster(CompactClusterRequest) returns (CompactClusterResponse) {}
// Get current version and commit hash
rpc GetVersion(GetVersionRequest) returns (GetVersionResponse) {}
// Get importer metrics
rpc GetMetrics(GetMetricsRequest) returns (GetMetricsResponse) {}
}
message SwitchModeRequest {
string pd_addr = 1;
import_sstpb.SwitchModeRequest request = 2;
}
message SwitchModeResponse {
}
message OpenEngineRequest {
bytes uuid = 1;
bytes key_prefix = 2;
}
message OpenEngineResponse {
}
message WriteHead {
bytes uuid = 1;
}
message Mutation {
enum OP {
Put = 0;
}
OP op = 1;
bytes key = 2;
bytes value = 3;
}
message WriteBatch {
uint64 commit_ts = 1;
repeated Mutation mutations = 2;
}
message WriteEngineRequest {
oneof chunk {
WriteHead head = 1;
WriteBatch batch = 2;
}
}
message KVPair {
bytes key = 1;
bytes value = 2;
}
message WriteEngineV3Request {
bytes uuid = 1;
uint64 commit_ts = 2;
repeated KVPair pairs = 3;
}
message WriteEngineResponse {
Error error = 1;
}
message CloseEngineRequest {
bytes uuid = 1;
}
message CloseEngineResponse {
Error error = 1;
}
message ImportEngineRequest {
bytes uuid = 1;
string pd_addr = 2;
}
message ImportEngineResponse {
}
message CleanupEngineRequest {
bytes uuid = 1;
}
message CleanupEngineResponse {
}
message CompactClusterRequest {
string pd_addr = 1;
import_sstpb.CompactRequest request = 2;
}
message CompactClusterResponse {
}
message GetVersionRequest {
}
message GetVersionResponse {
string version = 1;
string commit = 2;
}
message GetMetricsRequest {
}
message GetMetricsResponse {
string prometheus = 1;
}
message Error {
message EngineNotFound {
bytes uuid = 1;
}
// This can happen if the client hasn't opened the engine, or the server
// restarts while the client is writing or closing. An unclosed engine will
// be removed on server restart, so the client should not continue but
// restart the previous job in that case.
EngineNotFound engine_not_found = 1;
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy