2020-07-27 12:15:48 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
package remote;
|
|
|
|
|
|
|
|
option go_package = "./remote;remote";
|
|
|
|
option java_multiple_files = true;
|
|
|
|
option java_package = "io.turbo-geth.db";
|
|
|
|
option java_outer_classname = "KV";
|
|
|
|
|
2020-07-29 04:31:46 +00:00
|
|
|
// Provides methods to access key-value data
|
2020-07-27 12:15:48 +00:00
|
|
|
service KV {
|
|
|
|
// open a cursor on given position of given bucket
|
|
|
|
// if streaming requested - streams all data: stops if client's buffer is full, resumes when client read enough from buffer
|
|
|
|
// if streaming not requested - streams next data only when clients sends message to bi-directional channel
|
|
|
|
// no full consistency guarantee - server implementation can close/open underlying db transaction at any time
|
|
|
|
rpc Seek(stream SeekRequest) returns (stream Pair);
|
|
|
|
}
|
|
|
|
|
2020-10-10 12:24:56 +00:00
|
|
|
service KV2 {
|
|
|
|
rpc Tx(stream Cursor) returns (stream Pair2);
|
|
|
|
}
|
|
|
|
|
2020-07-27 12:15:48 +00:00
|
|
|
message SeekRequest {
|
2020-08-10 23:55:32 +00:00
|
|
|
string bucketName = 1;
|
2020-07-27 12:15:48 +00:00
|
|
|
bytes seekKey = 2; // streaming start from this key
|
|
|
|
bytes prefix = 3; // streaming stops when see first key without given prefix
|
|
|
|
bool startSreaming = 4;
|
2020-09-28 17:18:36 +00:00
|
|
|
bytes seekValue = 5; // streaming start from this value (DupSort)
|
2020-07-27 12:15:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message Pair {
|
|
|
|
bytes key = 1;
|
|
|
|
bytes value = 2;
|
|
|
|
}
|
|
|
|
|
2020-10-10 12:24:56 +00:00
|
|
|
enum Op {
|
|
|
|
FIRST = 0;
|
|
|
|
FIRST_DUP = 1;
|
|
|
|
SEEK = 2;
|
|
|
|
SEEK_BOTH = 3;
|
|
|
|
CURRENT = 4;
|
|
|
|
GET_MULTIPLE = 5;
|
|
|
|
LAST = 6;
|
|
|
|
LAST_DUP = 7;
|
|
|
|
NEXT = 8;
|
|
|
|
NEXT_DUP = 9;
|
|
|
|
NEXT_MULTIPLE = 10;
|
|
|
|
NEXT_NO_DUP = 11;
|
|
|
|
PREV = 12;
|
|
|
|
PREV_DUP = 13;
|
|
|
|
PREV_NO_DUP = 14;
|
|
|
|
SEEK_EXACT = 15;
|
|
|
|
SEEK_BOTH_EXACT = 16;
|
|
|
|
|
|
|
|
OPEN = 30;
|
|
|
|
CLOSE = 31;
|
|
|
|
}
|
|
|
|
|
|
|
|
message Cursor {
|
|
|
|
Op op = 1;
|
|
|
|
string bucketName = 2;
|
|
|
|
uint32 cursor = 3;
|
|
|
|
bytes k = 4;
|
|
|
|
bytes v = 5;
|
|
|
|
}
|
|
|
|
|
|
|
|
message Pair2 {
|
|
|
|
bytes k = 1;
|
|
|
|
bytes v = 2;
|
|
|
|
uint32 cursorID = 3;
|
2020-07-27 12:15:48 +00:00
|
|
|
}
|