Documentation ¶
Overview ¶
Package impl - Contains implementations of various buffer types.
Index ¶
- Variables
- type Buffer
- type CachedMmap
- type Memory
- type MemoryConfig
- type MmapBuffer
- type MmapBufferConfig
- type MmapCache
- func (f *MmapCache) Delete(index int) error
- func (f *MmapCache) EnsureCached(index int) error
- func (f *MmapCache) Get(index int) []byte
- func (f *MmapCache) GetTracker() []byte
- func (f *MmapCache) IsCached(index int) bool
- func (f *MmapCache) Remove(index int) error
- func (f *MmapCache) RemoveAll() error
- type MmapCacheConfig
Constants ¶
This section is empty.
Variables ¶
var ( // ErrWrongTrackerLength - The length of a read tracker was not correct. ErrWrongTrackerLength = errors.New("tracker was unexpected length") // ErrNotEnoughSpace - The target disk lacked the space needed for a new file. ErrNotEnoughSpace = errors.New("target disk is at capacity") )
Functions ¶
This section is empty.
Types ¶
type Buffer ¶
type Buffer interface { // ShiftMessage - Remove the oldest message from the stack. Returns the // backlog in bytes. ShiftMessage() (int, error) // NextMessage - Read the oldest message, the message is preserved until // ShiftMessage is called. NextMessage() (types.Message, error) // PushMessage - Add a new message to the stack. Returns the backlog in // bytes. PushMessage(types.Message) (int, error) // CloseOnceEmpty - Close the Buffer once the buffer has been emptied, this // is a way for a writer to signal to a reader that it is finished writing // messages, and therefore the reader can close once it is caught up. This // call blocks until the close is completed. CloseOnceEmpty() // Close - Close the Buffer so that blocked readers or writers become // unblocked. Close() }
Buffer - Represents a method of storing messages.
type CachedMmap ¶
type CachedMmap struct {
// contains filtered or unexported fields
}
CachedMmap - A struct containing a cached Mmap file and the file handler.
type Memory ¶
type Memory struct {
// contains filtered or unexported fields
}
Memory - A purely memory based ring buffer. This buffer blocks when the buffer is full.
func NewMemory ¶
func NewMemory(config MemoryConfig) *Memory
NewMemory - Creates a new memory based ring buffer.
func (*Memory) Close ¶
func (m *Memory) Close()
Close - Unblocks any blocked calls and prevents further writing to the block.
func (*Memory) CloseOnceEmpty ¶
func (m *Memory) CloseOnceEmpty()
CloseOnceEmpty - Closes the memory buffer once the backlog reaches 0.
func (*Memory) NextMessage ¶
NextMessage - Reads the next message, this call blocks until there's something to read.
func (*Memory) PushMessage ¶
PushMessage - Pushes a new message onto the block, returns the backlog count.
func (*Memory) ShiftMessage ¶
ShiftMessage - Removes the last message from the block. Returns the backlog count.
type MemoryConfig ¶
type MemoryConfig struct {
Limit int `json:"limit" yaml:"limit"`
}
MemoryConfig - Config values for a purely memory based ring buffer type.
func NewMemoryConfig ¶
func NewMemoryConfig() MemoryConfig
NewMemoryConfig - Create a new MemoryConfig with default values.
type MmapBuffer ¶
type MmapBuffer struct {
// contains filtered or unexported fields
}
MmapBuffer - A buffer implemented around rotated memory mapped files.
func NewMmapBuffer ¶
func NewMmapBuffer(config MmapBufferConfig, log log.Modular, stats metrics.Type) (*MmapBuffer, error)
NewMmapBuffer - Creates a memory-map based buffer.
func (*MmapBuffer) Close ¶
func (f *MmapBuffer) Close()
Close - Unblocks any blocked calls and prevents further writing to the block.
func (*MmapBuffer) CloseOnceEmpty ¶
func (f *MmapBuffer) CloseOnceEmpty()
CloseOnceEmpty - Closes the mmap buffer once the backlog reaches 0.
func (*MmapBuffer) NextMessage ¶
func (f *MmapBuffer) NextMessage() (types.Message, error)
NextMessage - Reads the next message, blocks until there's something to read.
func (*MmapBuffer) PushMessage ¶
func (f *MmapBuffer) PushMessage(msg types.Message) (int, error)
PushMessage - Pushes a new message, returns the backlog count.
func (*MmapBuffer) ShiftMessage ¶
func (f *MmapBuffer) ShiftMessage() (int, error)
ShiftMessage - Removes the last message. Returns the backlog count.
type MmapBufferConfig ¶
type MmapBufferConfig MmapCacheConfig
MmapBufferConfig - Config options for a memory-map based buffer reader.
func NewMmapBufferConfig ¶
func NewMmapBufferConfig() MmapBufferConfig
NewMmapBufferConfig - Create a MmapBufferConfig oject with default values.
type MmapCache ¶
MmapCache - Keeps track of any Mmap files cached in memory and cleans up resources as they are unclaimed. This type works similarly to sync.Cond, where if you wish to use it you need to lock it.
func NewMmapCache ¶
NewMmapCache - Creates a cache for managing open mmap files.
func (*MmapCache) EnsureCached ¶
EnsureCached - Check that a particular index is cached, and if not then read the index, this call blocks until either the index is successfully cached or an error occurs.
func (*MmapCache) GetTracker ¶
GetTracker - Returns the []byte from the tracker file memory mapping.
func (*MmapCache) IsCached ¶
IsCached - Returns a bool indicating whether the current memory mapped file index is cached.
type MmapCacheConfig ¶
type MmapCacheConfig struct { Path string `json:"directory" yaml:"directory"` FileSize int `json:"file_size" yaml:"file_size"` RetryPeriodMS int `json:"retry_period_ms" yaml:"retry_period_ms"` CleanUp bool `json:"clean_up" yaml:"clean_up"` ReservedDiskSpace uint64 `json:"reserved_disk_space" yaml:"reserved_disk_space"` }
MmapCacheConfig - Config options for the MmapCache type.
func NewMmapCacheConfig ¶
func NewMmapCacheConfig() MmapCacheConfig
NewMmapCacheConfig - Creates a new MmapCacheConfig oject with default values.