Rewrite the store interface (#1335)
* WIP store rewrite * Fix memory store tests * Store hard expiry times rather than duration! * Clarify memory test * Add limit to store interface * Implement suffix option * Don't return nils from noop store * Fix syncmap * Start fixing store service * wip service and cache * Use _ for special characters in cockroachdb namespace * Improve cockroach namespace comment * Use service name as default store namespace * Fixes * Implement Store Scope * Start fixing etcd * implement read and write with expiry and prefix * Fix etcd tests * Fix cockroach store * Fix cloudflare interface * Fix certmagic / cloudflare store * comment lint * cache isn't implemented yet * Only prepare DB staements once Co-authored-by: Ben Toogood <ben@micro.mu> Co-authored-by: ben-toogood <bentoogood@gmail.com>
This commit is contained in:
@@ -3,10 +3,10 @@ syntax = "proto3";
|
||||
package go.micro.store;
|
||||
|
||||
service Store {
|
||||
rpc List(ListRequest) returns (stream ListResponse) {};
|
||||
rpc Read(ReadRequest) returns (ReadResponse) {};
|
||||
rpc Write(WriteRequest) returns (WriteResponse) {};
|
||||
rpc Delete(DeleteRequest) returns (DeleteResponse) {};
|
||||
rpc List(ListRequest) returns (stream ListResponse) {};
|
||||
}
|
||||
|
||||
message Record {
|
||||
@@ -14,16 +14,19 @@ message Record {
|
||||
string key = 1;
|
||||
// value in the record
|
||||
bytes value = 2;
|
||||
// timestamp in unix seconds
|
||||
// time.Duration (signed int64 nanoseconds)
|
||||
int64 expiry = 3;
|
||||
}
|
||||
|
||||
message ReadOptions {
|
||||
bool prefix = 1;
|
||||
bool prefix = 1;
|
||||
bool suffix = 2;
|
||||
uint64 limit = 3;
|
||||
uint64 offset = 4;
|
||||
}
|
||||
|
||||
message ReadRequest {
|
||||
string key = 1;
|
||||
string key = 1;
|
||||
ReadOptions options = 2;
|
||||
}
|
||||
|
||||
@@ -31,20 +34,41 @@ message ReadResponse {
|
||||
repeated Record records = 1;
|
||||
}
|
||||
|
||||
message WriteOptions {
|
||||
// time.Time
|
||||
int64 expiry = 1;
|
||||
// time.Duration
|
||||
int64 ttl = 2;
|
||||
}
|
||||
|
||||
message WriteRequest {
|
||||
Record record = 1;
|
||||
Record record = 1;
|
||||
WriteOptions options = 2;
|
||||
}
|
||||
|
||||
message WriteResponse {}
|
||||
|
||||
message DeleteOptions {}
|
||||
|
||||
message DeleteRequest {
|
||||
string key = 1;
|
||||
string key = 1;
|
||||
DeleteOptions options = 2;
|
||||
}
|
||||
|
||||
message DeleteResponse {}
|
||||
|
||||
message ListRequest {}
|
||||
message ListOptions {
|
||||
string prefix = 1;
|
||||
string suffix = 2;
|
||||
uint64 limit = 3;
|
||||
uint64 offset = 4;
|
||||
}
|
||||
|
||||
message ListRequest {
|
||||
ListOptions options = 1;
|
||||
}
|
||||
|
||||
message ListResponse {
|
||||
repeated Record records = 1;
|
||||
reserved 1; //repeated Record records = 1;
|
||||
repeated string keys = 2;
|
||||
}
|
||||
|
Reference in New Issue
Block a user