resourcemanager

package
v0.1.32 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2020 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const NoopResourceManagerID = "noopresourcemanager"
View Source
const RedisSetKeyPrefix = "redisresourcemanager"

This is the key that will point to the Redis Set. https://redis.io/commands#set

Variables

This section is empty.

Functions

func GetTaskResourceManager

func GetTaskResourceManager(r pluginCore.ResourceManager, resourceNamespacePrefix pluginCore.ResourceNamespace, allocationTokenPrefix TokenPrefix) pluginCore.ResourceManager

Types

type Builder

type Builder interface {
	GetID() string
	GetResourceRegistrar(namespacePrefix pluginCore.ResourceNamespace) pluginCore.ResourceRegistrar
	BuildResourceManager(ctx context.Context) (pluginCore.ResourceManager, error)
}

func GetResourceManagerBuilderByType

func GetResourceManagerBuilderByType(ctx context.Context, managerType rmConfig.Type, scope promutils.Scope) (
	Builder, error)

type Metrics

type Metrics interface {
	GetScope() promutils.Scope
}

type NoopResourceManager

type NoopResourceManager struct {
}

func (*NoopResourceManager) AllocateResource

func (*NoopResourceManager) AllocateResource(ctx context.Context, namespace pluginCore.ResourceNamespace, allocationToken string) (
	pluginCore.AllocationStatus, error)

func (*NoopResourceManager) GetID added in v0.1.28

func (*NoopResourceManager) GetID() string

func (*NoopResourceManager) ReleaseResource

func (*NoopResourceManager) ReleaseResource(ctx context.Context, namespace pluginCore.ResourceNamespace, allocationToken string) error

type NoopResourceManagerBuilder

type NoopResourceManagerBuilder struct {
}

func (*NoopResourceManagerBuilder) BuildResourceManager

func (*NoopResourceManagerBuilder) GetID added in v0.1.28

func (*NoopResourceManagerBuilder) GetResourceRegistrar added in v0.1.28

func (r *NoopResourceManagerBuilder) GetResourceRegistrar(namespacePrefix pluginCore.ResourceNamespace) pluginCore.ResourceRegistrar

func (*NoopResourceManagerBuilder) RegisterResourceQuota

func (r *NoopResourceManagerBuilder) RegisterResourceQuota(ctx context.Context, namespace pluginCore.ResourceNamespace, quota int) error

type Proxy

type Proxy struct {
	pluginCore.ResourceManager
	ResourceNamespacePrefix pluginCore.ResourceNamespace
	TokenPrefix             TokenPrefix
}

A proxy will be created for each TaskExecutionContext. The Proxy of an execution contains the resource namespace prefix (e.g., "qubole-hive-executor" for a hive task) and the token prefix (e.g., ex:<project>:<domain>:<exec_id>) of that execution. The plugins will only have access to a Proxy but not directly the underlying resource manager. The Proxy will prepend proper prefixes for the resource namespace and the allocation token.

func (Proxy) AllocateResource

func (p Proxy) AllocateResource(ctx context.Context, namespace pluginCore.ResourceNamespace,
	allocationToken string) (pluginCore.AllocationStatus, error)

func (Proxy) ReleaseResource

func (p Proxy) ReleaseResource(ctx context.Context, namespace pluginCore.ResourceNamespace,
	allocationToken string) error

type Redis added in v0.1.28

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

func (*Redis) Ping added in v0.1.28

func (r *Redis) Ping() *redis.StatusCmd

func (*Redis) SAdd added in v0.1.28

func (r *Redis) SAdd(key string, member interface{}) *redis.IntCmd

func (*Redis) SCard added in v0.1.28

func (r *Redis) SCard(key string) *redis.IntCmd

func (*Redis) SIsMember added in v0.1.28

func (r *Redis) SIsMember(key string, member interface{}) *redis.BoolCmd

func (*Redis) SRem added in v0.1.28

func (r *Redis) SRem(key string, member interface{}) *redis.IntCmd

type RedisClient added in v0.1.28

type RedisClient interface {
	// A pass-through method. Getting the cardinality of the Redis set
	SCard(string) *redis.IntCmd
	// A pass-through method. Checking if an entity is a member of the set specified by the key
	SIsMember(string, interface{}) *redis.BoolCmd
	// A pass-through method. Adding an entity to the set specified by the key
	SAdd(string, interface{}) *redis.IntCmd
	// A pass-through method. Removing an entity from the set specified by the key
	SRem(string, interface{}) *redis.IntCmd
	// A pass-through method. Pinging the Redis client
	Ping() *redis.StatusCmd
}

func NewRedisClient

func NewRedisClient(ctx context.Context, config config.RedisConfig) (RedisClient, error)

type RedisResourceManager

type RedisResourceManager struct {
	MetricsScope promutils.Scope
	// contains filtered or unexported fields
}

func (*RedisResourceManager) AllocateResource

func (r *RedisResourceManager) AllocateResource(ctx context.Context, namespace pluginCore.ResourceNamespace, allocationToken string) (
	pluginCore.AllocationStatus, error)

func (*RedisResourceManager) GetID added in v0.1.28

func (r *RedisResourceManager) GetID() string

func (*RedisResourceManager) ReleaseResource

func (r *RedisResourceManager) ReleaseResource(ctx context.Context, namespace pluginCore.ResourceNamespace, allocationToken string) error

type RedisResourceManagerBuilder

type RedisResourceManagerBuilder struct {
	MetricsScope promutils.Scope
	// contains filtered or unexported fields
}

func NewRedisResourceManagerBuilder

func NewRedisResourceManagerBuilder(_ context.Context, client RedisClient, scope promutils.Scope) (*RedisResourceManagerBuilder, error)

func (*RedisResourceManagerBuilder) BuildResourceManager

func (*RedisResourceManagerBuilder) GetID added in v0.1.28

func (*RedisResourceManagerBuilder) GetResourceRegistrar added in v0.1.28

func (r *RedisResourceManagerBuilder) GetResourceRegistrar(namespacePrefix pluginCore.ResourceNamespace) pluginCore.ResourceRegistrar

func (*RedisResourceManagerBuilder) RegisterResourceQuota

func (r *RedisResourceManagerBuilder) RegisterResourceQuota(ctx context.Context, namespace pluginCore.ResourceNamespace, quota int) error

type RedisResourceManagerMetrics

type RedisResourceManagerMetrics struct {
	Scope                     promutils.Scope
	RedisSizeCheckTime        promutils.StopWatch
	AllocatedTokensGauge      prometheus.Gauge
	ApproximateBackedUpLength prometheus.Gauge
}

func NewRedisResourceManagerMetrics

func NewRedisResourceManagerMetrics(scope promutils.Scope) *RedisResourceManagerMetrics

func (RedisResourceManagerMetrics) GetScope

type Resource

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

This struct is designed to serve as the identifier of an user of resource manager

type ResourceRegistrarProxy

type ResourceRegistrarProxy struct {
	pluginCore.ResourceRegistrar
	ResourceNamespacePrefix pluginCore.ResourceNamespace
}

The Proxy will prepend a proper prefix for the resource namespace.

func (ResourceRegistrarProxy) RegisterResourceQuota

func (p ResourceRegistrarProxy) RegisterResourceQuota(ctx context.Context, namespace pluginCore.ResourceNamespace, quota int) error

type TokenPrefix added in v0.1.23

type TokenPrefix string

func ComposeTokenPrefix added in v0.1.23

func ComposeTokenPrefix(id *core.TaskExecutionIdentifier) TokenPrefix

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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