Files
orion_greptime_proto/proto/greptime/v1/meta/lock.proto
T

44 lines
1.0 KiB
Protocol Buffer

syntax = "proto3";
package greptime.v1.meta;
import "greptime/v1/meta/common.proto";
service Lock {
// Lock acquires a distributed shared lock on a given named lock. On success, it
// will return a unique key that exists so long as the lock is held by the caller.
rpc Lock(LockRequest) returns (LockResponse);
// Unlock takes a key returned by Lock and releases the hold on lock.
rpc Unlock(UnlockRequest) returns (UnlockResponse);
}
message LockRequest {
RequestHeader header = 1;
// Name is the identifier for the distributed shared lock to be acquired.
bytes name = 2;
// If the expiration time is exceeded and currently holds the lock, the lock is
// automatically released.
int64 expire_secs = 3;
}
message LockResponse {
ResponseHeader header = 1;
// Key will exist as long as lock is held by the caller.
bytes key = 2;
}
message UnlockRequest {
RequestHeader header = 1;
// key is the lock ownership key granted by Lock.
bytes key = 2;
}
message UnlockResponse {
ResponseHeader header = 1;
}