implement through workers
This commit is contained in:
parent
39385bc8b2
commit
46524832de
13 changed files with 2213 additions and 91 deletions
65
raylet_grpc.go
Normal file
65
raylet_grpc.go
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/barakmich/go_raylet/ray_rpc"
|
||||
)
|
||||
|
||||
type Raylet struct {
|
||||
Objects ObjectStore
|
||||
Workers WorkerPool
|
||||
}
|
||||
|
||||
func (r *Raylet) GetObject(_ context.Context, req *ray_rpc.GetRequest) (*ray_rpc.GetResponse, error) {
|
||||
data, err := GetObject(r.Objects, deserializeObjectID(req.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &ray_rpc.GetResponse{
|
||||
Valid: true,
|
||||
Data: data,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (r *Raylet) PutObject(_ context.Context, req *ray_rpc.PutRequest) (*ray_rpc.PutResponse, error) {
|
||||
id := r.Objects.MakeID()
|
||||
err := r.Objects.PutObject(&Object{id, req.Data})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &ray_rpc.PutResponse{
|
||||
Id: serializeObjectID(id),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (r *Raylet) WaitObject(_ context.Context, _ *ray_rpc.WaitRequest) (*ray_rpc.WaitResponse, error) {
|
||||
panic("not implemented") // TODO: Implement
|
||||
}
|
||||
|
||||
func (r *Raylet) Schedule(_ context.Context, task *ray_rpc.ClientTask) (*ray_rpc.ClientTaskTicket, error) {
|
||||
id := r.Objects.MakeID()
|
||||
ticket := &ray_rpc.ClientTaskTicket{serializeObjectID(id)}
|
||||
work := &ray_rpc.Work{}
|
||||
work.Task = task
|
||||
work.Ticket = ticket
|
||||
err := r.Workers.Schedule(work)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ticket, nil
|
||||
}
|
||||
|
||||
func (r *Raylet) Workstream(conn WorkstreamConnection) error {
|
||||
return r.Workers.Workstream(conn)
|
||||
}
|
||||
|
||||
//func (r *Raylet) Workstream()
|
||||
|
||||
func NewMemRaylet() *Raylet {
|
||||
store := NewMemObjectStore()
|
||||
return &Raylet{
|
||||
Objects: store,
|
||||
Workers: NewRoundRobinWorkerPool(store),
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue