scheduling

package
v1.0.0-percom23 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2023 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DROP                  action = 0
	EXEC_LOCAL                   = 1
	EXEC_REMOTE                  = 2
	BEST_EFFORT_EXECUTION        = 3
)
View Source
const (
	SCHED_DROP   schedulingDecision = 0
	SCHED_REMOTE                    = 1
	SCHED_LOCAL                     = 2
	SCHED_BASIC                     = 3
)
View Source
const HANDLER_DIR = "/app"
View Source
const SCHED_ACTION_OFFLOAD = "O"

Variables

This section is empty.

Functions

func Execute

func Execute(contID container.ContainerID, r *scheduledRequest) error

Execute serves a request on the specified container.

func Offload

func Offload(r *function.Request, serverUrl string) error

func OffloadAsync

func OffloadAsync(r *function.Request, serverUrl string) error

func Run

func Run(p Policy)

func SubmitAsyncRequest

func SubmitAsyncRequest(r *function.Request)

SubmitAsyncRequest submits a newly arrived async request for scheduling and execution

func SubmitRequest

func SubmitRequest(r *function.Request) error

SubmitRequest submits a newly arrived request for scheduling and execution

Types

type CloudEdgePolicy

type CloudEdgePolicy struct{}

CloudEdgePolicy supports only Edge-Cloud Offloading

func (*CloudEdgePolicy) Init

func (p *CloudEdgePolicy) Init()

func (*CloudEdgePolicy) OnArrival

func (p *CloudEdgePolicy) OnArrival(r *scheduledRequest)

func (*CloudEdgePolicy) OnCompletion

func (p *CloudEdgePolicy) OnCompletion(r *scheduledRequest)

type CloudOnlyPolicy

type CloudOnlyPolicy struct{}

func (*CloudOnlyPolicy) Init

func (p *CloudOnlyPolicy) Init()

func (*CloudOnlyPolicy) OnArrival

func (p *CloudOnlyPolicy) OnArrival(r *scheduledRequest)

func (*CloudOnlyPolicy) OnCompletion

func (p *CloudOnlyPolicy) OnCompletion(r *scheduledRequest)

type Custom1Policy

type Custom1Policy struct {
}

func (*Custom1Policy) Init

func (p *Custom1Policy) Init()

func (*Custom1Policy) OnArrival

func (p *Custom1Policy) OnArrival(r *scheduledRequest)

func (*Custom1Policy) OnCompletion

func (p *Custom1Policy) OnCompletion(r *scheduledRequest)

type DefaultLocalPolicy

type DefaultLocalPolicy struct {
	// contains filtered or unexported fields
}

func (*DefaultLocalPolicy) Init

func (p *DefaultLocalPolicy) Init()

func (*DefaultLocalPolicy) OnArrival

func (p *DefaultLocalPolicy) OnArrival(r *scheduledRequest)

func (*DefaultLocalPolicy) OnCompletion

func (p *DefaultLocalPolicy) OnCompletion(completed *scheduledRequest)

type EdgePolicy

type EdgePolicy struct{}

EdgePolicy supports only Edge-Edge offloading

func (*EdgePolicy) Init

func (p *EdgePolicy) Init()

func (*EdgePolicy) OnArrival

func (p *EdgePolicy) OnArrival(r *scheduledRequest)

func (*EdgePolicy) OnCompletion

func (p *EdgePolicy) OnCompletion(r *scheduledRequest)

type FIFOQueue

type FIFOQueue struct {
	sync.Mutex
	// contains filtered or unexported fields
}

FIFOQueue defines a circular queue

func NewFIFOQueue

func NewFIFOQueue(n int) *FIFOQueue

NewFIFOQueue creates a queue

func (*FIFOQueue) Dequeue

func (q *FIFOQueue) Dequeue() *scheduledRequest

Dequeue fetches a element from queue

func (*FIFOQueue) Enqueue

func (q *FIFOQueue) Enqueue(v *scheduledRequest) bool

Enqueue pushes an element to the back

func (*FIFOQueue) Front

func (q *FIFOQueue) Front() *scheduledRequest

func (*FIFOQueue) IsEmpty

func (q *FIFOQueue) IsEmpty() bool

IsEmpty returns true if queue is empty

func (*FIFOQueue) IsFull

func (q *FIFOQueue) IsFull() bool

IsFull returns true if queue is full

func (*FIFOQueue) Len

func (q *FIFOQueue) Len() int

Returns the current length of the queue

type Policy

type Policy interface {
	Init()
	OnCompletion(request *scheduledRequest)
	OnArrival(request *scheduledRequest)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL