Add a version token on RPCs to read/update volume server states. (#8191)
* Add a version token on `GetState()`/`SetState()` RPCs for volume server states. * Make state version a property ov `VolumeServerState` instead of an in-memory counter. Also extend state atomicity to reads, instead of just writes.
This commit is contained in:
@@ -9,7 +9,7 @@ import (
|
||||
// GetState returns a volume server's state flags.
|
||||
func (vs *VolumeServer) GetState(ctx context.Context, req *volume_server_pb.GetStateRequest) (*volume_server_pb.GetStateResponse, error) {
|
||||
resp := &volume_server_pb.GetStateResponse{
|
||||
State: vs.store.State.Pb,
|
||||
State: vs.store.State.Proto(),
|
||||
}
|
||||
|
||||
return resp, nil
|
||||
@@ -17,9 +17,9 @@ func (vs *VolumeServer) GetState(ctx context.Context, req *volume_server_pb.GetS
|
||||
|
||||
// SetState updates state flags for volume servers.
|
||||
func (vs *VolumeServer) SetState(ctx context.Context, req *volume_server_pb.SetStateRequest) (*volume_server_pb.SetStateResponse, error) {
|
||||
err := vs.store.State.Update(req.State)
|
||||
err := vs.store.State.Update(req.GetState())
|
||||
resp := &volume_server_pb.SetStateResponse{
|
||||
State: vs.store.State.Pb,
|
||||
State: vs.store.State.Proto(),
|
||||
}
|
||||
|
||||
return resp, err
|
||||
|
||||
Reference in New Issue
Block a user