Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrClosed error of client closed ErrClosed = errors.New("client is closed") // ErrTimeout timeout ErrTimeout = errors.New("rpc timeout") )
Functions ¶
Types ¶
type Client ¶
type Client interface { Close() error AllocID() (uint64, error) PutContainer(container metadata.Container) error GetContainer(containerID uint64) (metadata.Container, error) ResourceHeartbeat(meta metadata.Resource, hb rpcpb.ResourceHeartbeatReq) error ContainerHeartbeat(hb rpcpb.ContainerHeartbeatReq) (rpcpb.ContainerHeartbeatRsp, error) AskSplit(res metadata.Resource) (rpcpb.SplitID, error) ReportSplit(left, right metadata.Resource) error AskBatchSplit(res metadata.Resource, count uint32) ([]rpcpb.SplitID, error) ReportBatchSplit(results ...metadata.Resource) error NewWatcher(flag uint32) (Watcher, error) GetResourceHeartbeatRspNotifier() (chan rpcpb.ResourceHeartbeatRsp, error) // AsyncAddResources add resources asynchronously. The operation add new resources meta on the // prophet leader cache and embed etcd. And porphet leader has a background goroutine to notify // all related containers to create resource replica peer at local. AsyncAddResources(resources ...metadata.Resource) error // AsyncAddResourcesWithLeastPeers same of `AsyncAddResources`, but if the number of peers successfully // allocated exceed the `leastPeers`, no error will be returned. AsyncAddResourcesWithLeastPeers(resources []metadata.Resource, leastPeers []int) error // AsyncRemoveResources remove resource asynchronously. The operation only update the resource state // on the prophet leader cache and embed etcd. The resource actual destory triggered in three ways as below: // a) Each cube node starts a backgroud goroutine to check all the resources state, and resource will // destoryed if encounter removed state. // b) Resource heartbeat received a DestoryDirectly schedule command. // c) If received a resource removed event. AsyncRemoveResources(ids ...uint64) error // CheckResourceState returns resources state CheckResourceState(resources *roaring64.Bitmap) (rpcpb.CheckResourceStateRsp, error) // PutPlacementRule put placement rule PutPlacementRule(rule rpcpb.PlacementRule) error // GetAppliedRules returns applied rules of the resource GetAppliedRules(id uint64) ([]rpcpb.PlacementRule, error) // CreateJob create job CreateJob(metapb.Job) error // RemoveJob remove job RemoveJob(metapb.Job) error // ExecuteJob execute on job and returns the execute result ExecuteJob(metapb.Job, []byte) ([]byte, error) }
Client prophet client
type Option ¶
type Option func(*options)
Option client option
func WithLeaderGetter ¶
WithLeaderGetter set a func to get a leader
func WithRPCTimeout ¶
WithRPCTimeout set rpc timeout
type Prophet ¶
type Prophet interface { // Start start the prophet instance, this will start the lead election, heartbeat loop and listen requests Start() // Stop stop the prophet instance Stop() // GetStorage returns the storage GetStorage() storage.Storage // GetClient returns the prophet client GetClient() Client // GetLeader returns leader GetLeader() *metapb.Member // GetMember returns self GetMember() *member.Member // GetConfig returns cfg GetConfig() *config.Config // GetClusterID return cluster id GetClusterID() uint64 // GetBasicCluster returns basic cluster GetBasicCluster() *core.BasicCluster }
Prophet is the distributed scheduler and coordinator
type Watcher ¶
type Watcher interface { // GetNotify returns event notify channel GetNotify() chan rpcpb.EventNotify // Close close watcher Close() }
Watcher watcher
Source Files
¶
Click to show internal directories.
Click to hide internal directories.