Documentation ¶
Index ¶
- Constants
- Variables
- func Hash(b []byte) uint64
- type Cleaner
- type CleanupPolicy
- type CommitLog
- func (l *CommitLog) Append(b []byte) (offset int64, err error)
- func (l *CommitLog) Close() error
- func (l *CommitLog) Delete() error
- func (l *CommitLog) NewReader(offset int64, maxBytes int32) (io.Reader, error)
- func (l *CommitLog) NewestOffset() int64
- func (l *CommitLog) OldestOffset() int64
- func (l *CommitLog) Read(p []byte) (n int, err error)
- func (l *CommitLog) Segments() []*Segment
- func (l *CommitLog) Truncate(offset int64) error
- type CompactCleaner
- type DeleteCleaner
- type Entry
- type Index
- func (idx *Index) Close() (err error)
- func (idx *Index) Name() string
- func (idx *Index) ReadAt(p []byte, offset int64) (n int, err error)
- func (idx *Index) ReadEntryAtFileOffset(e *Entry, fileOffset int64) (err error)
- func (idx *Index) ReadEntryAtLogOffset(e *Entry, logOffset int64) error
- func (idx *Index) SanityCheck() error
- func (idx *Index) Sync() error
- func (idx *Index) TruncateEntries(number int) error
- func (idx *Index) Write(p []byte) (n int, err error)
- func (idx *Index) WriteAt(p []byte, offset int64) (n int)
- func (idx *Index) WriteEntry(entry Entry) (err error)
- type IndexScanner
- type Message
- type MessageSet
- type Options
- type Reader
- type Segment
- func (s *Segment) BuildIndex() (err error)
- func (s *Segment) Cleaner() (*Segment, error)
- func (s *Segment) Close() error
- func (s *Segment) Delete() error
- func (s *Segment) IsFull() bool
- func (s *Segment) Read(p []byte) (n int, err error)
- func (s *Segment) ReadAt(p []byte, off int64) (n int, err error)
- func (s *Segment) Replace(old *Segment) (err error)
- func (s *Segment) SetupIndex() (err error)
- func (s *Segment) Write(p []byte) (n int, err error)
- type SegmentScanner
Constants ¶
View Source
const ( DeleteCleanupPolicy = "delete" CompactCleanupPolicy = "compact" LogFileSuffix = ".log" IndexFileSuffix = ".index" )
Variables ¶
View Source
var ( ErrSegmentNotFound = errors.New("segment not found") Encoding = binary.BigEndian )
View Source
var (
ErrIndexCorrupt = errors.New("corrupt index file")
)
Functions ¶
Types ¶
type CleanupPolicy ¶
type CleanupPolicy string
type CommitLog ¶
type CommitLog struct { Options // contains filtered or unexported fields }
func (*CommitLog) NewestOffset ¶
func (*CommitLog) OldestOffset ¶
type CompactCleaner ¶
type CompactCleaner struct {
// contains filtered or unexported fields
}
func NewCompactCleaner ¶
func NewCompactCleaner() *CompactCleaner
type DeleteCleaner ¶
type DeleteCleaner struct { Retention struct { Bytes int64 } }
func NewDeleteCleaner ¶
func NewDeleteCleaner(bytes int64) *DeleteCleaner
type Index ¶
type Index struct {
// contains filtered or unexported fields
}
func (*Index) ReadEntryAtFileOffset ¶
ReadEntryAtFileOffset is used to read an Index entry at the given byte offset of the Index file. ReadEntryAtLogOffset is generally more useful for higher level use.
func (*Index) ReadEntryAtLogOffset ¶
ReadEntryAtLogOffset is used to read an Index entry at the given log offset of the Index file.
func (*Index) SanityCheck ¶
func (*Index) TruncateEntries ¶
func (*Index) WriteEntry ¶
type IndexScanner ¶
type IndexScanner struct {
// contains filtered or unexported fields
}
func NewIndexScanner ¶
func NewIndexScanner(idx *Index) *IndexScanner
func (*IndexScanner) Scan ¶
func (s *IndexScanner) Scan() (*Entry, error)
type MessageSet ¶
type MessageSet []byte
func NewMessageSet ¶
func NewMessageSet(offset uint64, msgs ...Message) MessageSet
func (MessageSet) Messages ¶
func (ms MessageSet) Messages() (msgs []Message)
func (MessageSet) Offset ¶
func (ms MessageSet) Offset() int64
func (MessageSet) Payload ¶
func (ms MessageSet) Payload() []byte
func (MessageSet) PutOffset ¶
func (ms MessageSet) PutOffset(offset int64)
func (MessageSet) Size ¶
func (ms MessageSet) Size() int32
type Options ¶
type Options struct { Path string // MaxSegmentBytes is the max number of bytes a segment can contain, once the limit is hit a // new segment will be split off. MaxSegmentBytes int64 MaxLogBytes int64 CleanupPolicy CleanupPolicy }
type Segment ¶
type Segment struct { Index *Index BaseOffset int64 NextOffset int64 Position int64 sync.Mutex // contains filtered or unexported fields }
func NewSegment ¶
func (*Segment) BuildIndex ¶
func (*Segment) SetupIndex ¶
SetupIndex creates and initializes an Index. Initialization is: - Sanity check of the loaded Index - Truncates the Index (clears it) - Reads the log file from the beginning and re-initializes the Index
type SegmentScanner ¶
type SegmentScanner struct {
// contains filtered or unexported fields
}
func NewSegmentScanner ¶
func NewSegmentScanner(segment *Segment) *SegmentScanner
func (*SegmentScanner) Scan ¶
func (s *SegmentScanner) Scan() (ms MessageSet, err error)
Scan should be called repeatedly to iterate over the messages in the segment, it will return io.EOF when there are no more messages.
Click to show internal directories.
Click to hide internal directories.