Add volume server RPCs to read and update state flags. (#8186)

* Boostrap persistent state for volume servers.

This PR implements logic load/save persistent state information for storages
associated with volume servers, and reporting state changes back to masters
via heartbeat messages.

More work ensues!

See https://github.com/seaweedfs/seaweedfs/issues/7977 for details.

* Add volume server RPCs to read and update state flags.
This commit is contained in:
Lisandro Pin
2026-02-03 01:22:17 +01:00
committed by GitHub
parent 9638d37fe2
commit 345ac950b6
5 changed files with 790 additions and 463 deletions

View File

@@ -0,0 +1,26 @@
package weed_server
import (
"context"
"github.com/seaweedfs/seaweedfs/weed/pb/volume_server_pb"
)
// 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,
}
return resp, nil
}
// 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)
resp := &volume_server_pb.SetStateResponse{
State: vs.store.State.Pb,
}
return resp, err
}