Documentation
¶
Index ¶
- Constants
- Variables
- func MockBufMgr(capacity uint64) mgrif.IBufferManager
- func NewBufferManager(dir string, capacity uint64, evict_ctx ...interface{}) mgrif.IBufferManager
- type BufferManager
- func (mgr *BufferManager) CreateNode(vf common.IVFile, useCompress bool, constructor buf.MemoryNodeConstructor) mgrif.INode
- func (mgr *BufferManager) GetNextID() uint64
- func (mgr *BufferManager) GetNextTransientID() uint64
- func (mgr *BufferManager) NodeCount() int
- func (mgr *BufferManager) Pin(handle nif.INodeHandle) nif.IBufferHandle
- func (mgr *BufferManager) RegisterMemory(vf common.IVFile, spillable bool, constructor buf.MemoryNodeConstructor) nif.INodeHandle
- func (mgr *BufferManager) RegisterNode(vf common.IVFile, useCompress bool, node_id uint64, ...) nif.INodeHandle
- func (mgr *BufferManager) RegisterSpillableNode(vf common.IVFile, node_id uint64, constructor buf.MemoryNodeConstructor) nif.INodeHandle
- func (mgr *BufferManager) String() string
- func (mgr *BufferManager) Unpin(handle nif.INodeHandle)
- func (mgr *BufferManager) UnregisterNode(h nif.INodeHandle)
- type EvictNode
- type IEvictHandle
- type IEvictHolder
- type Node
- type SimpleEvictHolder
- type SimpleEvictHolderCtx
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) Unloadable ¶
func (node *EvictNode) Unloadable(h IEvictHandle) bool
type IEvictHandle ¶
type IEvictHolder ¶
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) GetBufferHandle ¶
func (n *Node) GetBufferHandle() nif.IBufferHandle
func (*Node) GetManagedNode ¶
func (n *Node) GetManagedNode() bmgrif.MangaedNode
type SimpleEvictHolder ¶
func (*SimpleEvictHolder) Dequeue ¶
func (holder *SimpleEvictHolder) Dequeue() *EvictNode
func (*SimpleEvictHolder) Enqueue ¶
func (holder *SimpleEvictHolder) Enqueue(node *EvictNode)
type SimpleEvictHolderCtx ¶
type SimpleEvictHolderCtx struct {
QCapacity uint64
}
Click to show internal directories.
Click to hide internal directories.