Documentation ¶
Index ¶
- Variables
- type Buffer
- func (buf *Buffer) AssignToBlock(block types.Block) error
- func (buf *Buffer) Block() types.Block
- func (buf *Buffer) Content() *types.Page
- func (buf *Buffer) Flush() error
- func (buf *Buffer) IsPinned() bool
- func (buf *Buffer) LSN() types.LSN
- func (buf *Buffer) ModifyingTX() types.TRX
- func (buf *Buffer) Pin()
- func (buf *Buffer) Pins() int
- func (buf *Buffer) SetModified(txnum types.TRX, lsn types.LSN)
- func (buf *Buffer) Unpin()
- type BuffersPool
- func (bp *BuffersPool) AssignBufferToBlock(buf *Buffer, block types.Block) error
- func (bp *BuffersPool) Buffers() []*Buffer
- func (bp *BuffersPool) ChooseUnpinnedBuffer() *Buffer
- func (bp *BuffersPool) FindExistingBuffer(block types.Block) *Buffer
- func (bp *BuffersPool) FlushAll(txnum types.TRX) error
- type Manager
- type ManagerOpt
Constants ¶
This section is empty.
Variables ¶
var ErrBuffers = errors.New("buffers error")
ErrBuffers базовая ошибка buffers
var ErrFailedToAssignBlockToBuffer = errors.Wrap(ErrBuffers, "failed to assign a block to buffer")
ErrFailedToAssignBlockToBuffer — ошибка при связывании буыера с блоком
var ErrNoAvailableBuffers = errors.Wrap(ErrBuffers, "no available buffers")
ErrNoAvailableBuffers — нет свободных буферов в памяти
Functions ¶
This section is empty.
Types ¶
type Buffer ¶
type Buffer struct {
// contains filtered or unexported fields
}
Buffer — страница в пуле буферов
func (*Buffer) AssignToBlock ¶
AssignToBlock cвязывает страницу буфера со странице на диске
func (*Buffer) ModifyingTX ¶
ModifyingTX возвращает указатель транзакции
func (*Buffer) Pin ¶
func (buf *Buffer) Pin()
Pin закрепляет страницу в памяти и увеличивает счетчик закрпелений
func (*Buffer) SetModified ¶
SetModified устанавливает указатели транзакции и лога
type BuffersPool ¶
type BuffersPool struct {
// contains filtered or unexported fields
}
func NewBuffersPool ¶
func NewBuffersPool(bLen int, nbf newBufferFunc) *BuffersPool
NewBuffersPool создает новый пул буферов
func (*BuffersPool) AssignBufferToBlock ¶
func (bp *BuffersPool) AssignBufferToBlock(buf *Buffer, block types.Block) error
AssignBufferToBlock связывает буфер с блоком на диске
func (*BuffersPool) Buffers ¶
func (bp *BuffersPool) Buffers() []*Buffer
Buffers возвращает массив буферов в виде слайса
func (*BuffersPool) ChooseUnpinnedBuffer ¶
func (bp *BuffersPool) ChooseUnpinnedBuffer() *Buffer
ChooseUnpinnedBuffer ищет незакрепленные буферы в памяти
func (*BuffersPool) FindExistingBuffer ¶
func (bp *BuffersPool) FindExistingBuffer(block types.Block) *Buffer
FindExistingBuffer ищет существующий буфер, соотоветсвующий блоку
type Manager ¶
type Manager struct { Len int PinLockTimeout time.Duration // contains filtered or unexported fields }
Manager менеджер буферов в памяти
func NewManager ¶
NewManager создает новый менеджер пулов
func (*Manager) SetMaxPinLockTime ¶
SetMaxPinLockTime Задает максимальное время ожидания освобождения буферов
func (*Manager) StorageManager ¶
StorageManager возвращает менеджер хранилища
type ManagerOpt ¶
type ManagerOpt func(*Manager)
func WithPinLockTimeout ¶
func WithPinLockTimeout(pinLockTimeout time.Duration) ManagerOpt