manager

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: May 5, 2022 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EVICT_HOLDER_CAPACITY uint64 = 100000
)

Variables

View Source
var (
	MockVFile = mockVFile{}
)
View Source
var (
	TRANSIENT_START_ID = ^(uint64(0)) / 2
)

Functions

func MockBufMgr

func MockBufMgr(capacity uint64) mgrif.IBufferManager

func NewBufferManager

func NewBufferManager(dir string, capacity uint64, evict_ctx ...interface{}) mgrif.IBufferManager

Types

type BufferManager

type BufferManager struct {
	buf.IMemoryPool
	sync.RWMutex
	Nodes           map[uint64]iface.INodeHandle // Manager is not responsible to Close handle
	EvictHolder     IEvictHolder
	NextID          uint64
	NextTransientID uint64
	EvictTimes      int64
	LoadTimes       int64
	UnregisterTimes int64
	Dir             []byte
}

func (*BufferManager) CreateNode

func (mgr *BufferManager) CreateNode(vf common.IVFile, useCompress bool, constructor buf.MemoryNodeConstructor) mgrif.INode

func (*BufferManager) GetNextID

func (mgr *BufferManager) GetNextID() uint64

func (*BufferManager) GetNextTransientID

func (mgr *BufferManager) GetNextTransientID() uint64

func (*BufferManager) NodeCount

func (mgr *BufferManager) NodeCount() int

func (*BufferManager) Pin

func (mgr *BufferManager) Pin(handle nif.INodeHandle) nif.IBufferHandle

func (*BufferManager) RegisterMemory

func (mgr *BufferManager) RegisterMemory(vf common.IVFile, spillable bool, constructor buf.MemoryNodeConstructor) nif.INodeHandle

func (*BufferManager) RegisterNode

func (mgr *BufferManager) RegisterNode(vf common.IVFile, useCompress bool, node_id uint64, constructor buf.MemoryNodeConstructor) nif.INodeHandle

func (*BufferManager) RegisterSpillableNode

func (mgr *BufferManager) RegisterSpillableNode(vf common.IVFile, node_id uint64, constructor buf.MemoryNodeConstructor) nif.INodeHandle

func (*BufferManager) String

func (mgr *BufferManager) String() string

func (*BufferManager) Unpin

func (mgr *BufferManager) Unpin(handle nif.INodeHandle)

func (*BufferManager) UnregisterNode

func (mgr *BufferManager) UnregisterNode(h nif.INodeHandle)

type EvictNode

type EvictNode struct {
	Handle IEvictHandle
	Iter   uint64
}

func (*EvictNode) String

func (node *EvictNode) String() string

func (*EvictNode) Unloadable

func (node *EvictNode) Unloadable(h IEvictHandle) bool

type IEvictHandle

type IEvictHandle interface {
	sync.Locker
	IsClosed() bool
	Unload()
	Unloadable() bool
	Iteration() uint64
}

type IEvictHolder

type IEvictHolder interface {
	sync.Locker
	Enqueue(n *EvictNode)
	Dequeue() *EvictNode
}

func NewSimpleEvictHolder

func NewSimpleEvictHolder(ctx ...interface{}) IEvictHolder

type Node

type Node struct {
	Constructor buf.MemoryNodeConstructor
	BufMgr      bmgrif.IBufferManager
	BufNode     nif.INodeHandle
	VFile       common.IVFile
}

func (*Node) Close

func (n *Node) Close() error

func (*Node) GetBufferHandle

func (n *Node) GetBufferHandle() nif.IBufferHandle

func (*Node) GetManagedNode

func (n *Node) GetManagedNode() bmgrif.MangaedNode

type SimpleEvictHolder

type SimpleEvictHolder struct {
	Queue *sq.EsQueue
	sync.Mutex
}

func (*SimpleEvictHolder) Dequeue

func (holder *SimpleEvictHolder) Dequeue() *EvictNode

func (*SimpleEvictHolder) Enqueue

func (holder *SimpleEvictHolder) Enqueue(node *EvictNode)

type SimpleEvictHolderCtx

type SimpleEvictHolderCtx struct {
	QCapacity uint64
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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