Documentation ¶
Index ¶
- Constants
- Variables
- func PrometheusCollectors() []prometheus.Collector
- func SegmentFileNames(dir string) ([]string, error)
- type DeleteBucketRangeWALEntry
- func (w *DeleteBucketRangeWALEntry) Encode(b []byte) ([]byte, error)
- func (w *DeleteBucketRangeWALEntry) MarshalBinary() ([]byte, error)
- func (w *DeleteBucketRangeWALEntry) MarshalSize() int
- func (w *DeleteBucketRangeWALEntry) Type() WalEntryType
- func (w *DeleteBucketRangeWALEntry) UnmarshalBinary(b []byte) error
- type Dump
- type DumpReport
- type VerificationSummary
- type Verifier
- type WAL
- func (l *WAL) Close() error
- func (l *WAL) CloseSegment() error
- func (l *WAL) ClosedSegments() ([]string, error)
- func (l *WAL) DeleteBucketRange(orgID, bucketID influxdb.ID, min, max int64, pred []byte) (int, error)
- func (l *WAL) DiskSizeBytes() int64
- func (l *WAL) LastWriteTime() time.Time
- func (l *WAL) Open(ctx context.Context) error
- func (l *WAL) Path() string
- func (l *WAL) Remove(ctx context.Context, files []string) error
- func (l *WAL) SetDefaultMetricLabels(labels prometheus.Labels)
- func (l *WAL) SetEnabled(enabled bool)
- func (l *WAL) WithFsyncDelay(delay time.Duration)
- func (l *WAL) WithLogger(log *zap.Logger)
- func (l *WAL) WriteMulti(ctx context.Context, values map[string][]value.Value) (int, error)
- type WALEntry
- type WALReader
- type WALSegmentReader
- type WALSegmentWriter
- type WalEntryType
- type WriteWALEntry
Constants ¶
const ( // DefaultSegmentSize of 10MB is the size at which segment files will be rolled over. DefaultSegmentSize = 10 * 1024 * 1024 // WALFileExtension is the file extension we expect for wal segments. WALFileExtension = "wal" // WALFilePrefix is the prefix on all wal segment files. WALFilePrefix = "_" )
Variables ¶
var ( // ErrWALClosed is returned when attempting to write to a closed WAL file. ErrWALClosed = fmt.Errorf("WAL closed") // ErrWALCorrupt is returned when reading a corrupt WAL entry. ErrWALCorrupt = fmt.Errorf("corrupted WAL entry") )
Functions ¶
func PrometheusCollectors ¶
func PrometheusCollectors() []prometheus.Collector
PrometheusCollectors returns all the metrics associated with the tsdb package.
func SegmentFileNames ¶
SegmentFileNames will return all files that are WAL segment files in sorted order by ascending ID.
Types ¶
type DeleteBucketRangeWALEntry ¶
type DeleteBucketRangeWALEntry struct { OrgID influxdb.ID BucketID influxdb.ID Min, Max int64 Predicate []byte }
DeleteBucketRangeWALEntry represents the deletion of data in a bucket.
func (*DeleteBucketRangeWALEntry) Encode ¶
func (w *DeleteBucketRangeWALEntry) Encode(b []byte) ([]byte, error)
Encode converts the entry into a byte stream using b if it is large enough. If b is too small, a newly allocated slice is returned.
func (*DeleteBucketRangeWALEntry) MarshalBinary ¶
func (w *DeleteBucketRangeWALEntry) MarshalBinary() ([]byte, error)
MarshalBinary returns a binary representation of the entry in a new byte slice.
func (*DeleteBucketRangeWALEntry) MarshalSize ¶
func (w *DeleteBucketRangeWALEntry) MarshalSize() int
MarshalSize returns the number of bytes the entry takes when marshaled.
func (*DeleteBucketRangeWALEntry) Type ¶
func (w *DeleteBucketRangeWALEntry) Type() WalEntryType
Type returns DeleteBucketRangeWALEntryType.
func (*DeleteBucketRangeWALEntry) UnmarshalBinary ¶
func (w *DeleteBucketRangeWALEntry) UnmarshalBinary(b []byte) error
UnmarshalBinary deserializes the byte slice into w.
type Dump ¶
type Dump struct { // Standard input/output Stderr io.Writer Stdout io.Writer // A list of files to dump FileGlobs []string // Whether or not to check for duplicate/out of order entries FindDuplicates bool }
func (*Dump) Run ¶
func (w *Dump) Run(print bool) ([]*DumpReport, error)
Run executes the dumpwal command, generating a list of DumpReports for each requested file. The `print` flag indicates whether or not the command should log output during execution. If the command is run as a cli, Run(true) should be used, and if the tool is run programmatically, output should likely be suppressed with Run(false).
type DumpReport ¶
type DumpReport struct { // The file this report corresponds to File string // Any keys found to be duplicated/out of order DuplicateKeys []string // A list of all the write wal entries from this file Writes []*WriteWALEntry // A list of all the delete wal entries from this file Deletes []*DeleteBucketRangeWALEntry }
type VerificationSummary ¶
type WAL ¶
type WAL struct { // SegmentSize is the file size at which a segment file will be rotated SegmentSize int // contains filtered or unexported fields }
WAL represents the write-ahead log used for writing TSM files.
func (*WAL) Close ¶
Close will finish any flush that is currently in progress and close file handles.
func (*WAL) CloseSegment ¶
CloseSegment closes the current segment if it is non-empty and opens a new one.
func (*WAL) ClosedSegments ¶
ClosedSegments returns a slice of the names of the closed segment files.
func (*WAL) DeleteBucketRange ¶
func (l *WAL) DeleteBucketRange(orgID, bucketID influxdb.ID, min, max int64, pred []byte) (int, error)
DeleteBucketRange deletes the data inside of the bucket between the two times, returning the segment ID for the operation.
func (*WAL) DiskSizeBytes ¶
DiskSizeBytes returns the on-disk size of the WAL.
func (*WAL) LastWriteTime ¶
LastWriteTime is the last time anything was written to the WAL.
func (*WAL) Open ¶
Open opens and initializes the Log. Open can recover from previous unclosed shutdowns.
func (*WAL) Remove ¶
Remove deletes the given segment file paths from disk and cleans up any associated objects.
func (*WAL) SetDefaultMetricLabels ¶
func (l *WAL) SetDefaultMetricLabels(labels prometheus.Labels)
SetDefaultMetricLabels sets the default labels for metrics on the engine. It must be called before the Engine is opened.
func (*WAL) SetEnabled ¶
SetEnabled sets if the WAL is enabled and should be called before the WAL is opened.
func (*WAL) WithFsyncDelay ¶
WithFsyncDelay sets the fsync delay and should be called before the WAL is opened.
func (*WAL) WithLogger ¶
WithLogger sets the WAL's logger.
func (*WAL) WriteMulti ¶
WriteMulti writes the given values to the WAL. It returns the WAL segment ID to which the points were written. If an error is returned the segment ID should be ignored. If the WAL is disabled, -1 and nil is returned.
type WALEntry ¶
type WALEntry interface { Type() WalEntryType Encode(dst []byte) ([]byte, error) MarshalBinary() ([]byte, error) UnmarshalBinary(b []byte) error MarshalSize() int }
WALEntry is record stored in each WAL segment. Each entry has a type and an opaque, type dependent byte slice data attribute.
type WALReader ¶
type WALReader struct {
// contains filtered or unexported fields
}
WALReader helps one read out the WAL into entries.
func NewWALReader ¶
NewWALReader constructs a WALReader over the given set of files.
func (*WALReader) Read ¶
Read calls the callback with every entry in the WAL files. If, during reading of a segment file, corruption is encountered, that segment file is truncated up to and including the last valid byte, and processing continues with the next segment file.
func (*WALReader) WithLogger ¶
WithLogger sets the logger for the WALReader.
type WALSegmentReader ¶
type WALSegmentReader struct {
// contains filtered or unexported fields
}
WALSegmentReader reads WAL segments.
func NewWALSegmentReader ¶
func NewWALSegmentReader(r io.ReadCloser) *WALSegmentReader
NewWALSegmentReader returns a new WALSegmentReader reading from r.
func (*WALSegmentReader) Close ¶
func (r *WALSegmentReader) Close() error
Close closes the underlying io.Reader.
func (*WALSegmentReader) Count ¶
func (r *WALSegmentReader) Count() int64
Count returns the total number of bytes read successfully from the segment, as of the last call to Read(). The segment is guaranteed to be valid up to and including this number of bytes.
func (*WALSegmentReader) Error ¶
func (r *WALSegmentReader) Error() error
Error returns the last error encountered by the reader.
func (*WALSegmentReader) Next ¶
func (r *WALSegmentReader) Next() bool
Next indicates if there is a value to read.
func (*WALSegmentReader) Read ¶
func (r *WALSegmentReader) Read() (WALEntry, error)
Read returns the next entry in the reader.
func (*WALSegmentReader) Reset ¶
func (r *WALSegmentReader) Reset(rc io.ReadCloser)
type WALSegmentWriter ¶
type WALSegmentWriter struct {
// contains filtered or unexported fields
}
WALSegmentWriter writes WAL segments.
func NewWALSegmentWriter ¶
func NewWALSegmentWriter(w io.WriteCloser) *WALSegmentWriter
NewWALSegmentWriter returns a new WALSegmentWriter writing to w.
func (*WALSegmentWriter) Flush ¶
func (w *WALSegmentWriter) Flush() error
func (*WALSegmentWriter) Write ¶
func (w *WALSegmentWriter) Write(entryType WalEntryType, compressed []byte) error
Write writes entryType and the buffer containing compressed entry data.
type WalEntryType ¶
type WalEntryType byte
WalEntryType is a byte written to a wal segment file that indicates what the following compressed block contains.
const ( // WriteWALEntryType indicates a write entry. WriteWALEntryType WalEntryType = 0x01 // DeleteBucketRangeWALEntryType indicates a delete bucket range entry. DeleteBucketRangeWALEntryType WalEntryType = 0x04 )
type WriteWALEntry ¶
type WriteWALEntry struct { Values map[string][]value.Value // contains filtered or unexported fields }
WriteWALEntry represents a write of points.
func (*WriteWALEntry) Encode ¶
func (w *WriteWALEntry) Encode(dst []byte) ([]byte, error)
Encode converts the WriteWALEntry into a byte stream using dst if it is large enough. If dst is too small, the slice will be grown to fit the encoded entry.
func (*WriteWALEntry) MarshalBinary ¶
func (w *WriteWALEntry) MarshalBinary() ([]byte, error)
MarshalBinary returns a binary representation of the entry in a new byte slice.
func (*WriteWALEntry) MarshalSize ¶
func (w *WriteWALEntry) MarshalSize() int
MarshalSize returns the number of bytes the entry takes when marshaled.
func (*WriteWALEntry) Type ¶
func (w *WriteWALEntry) Type() WalEntryType
Type returns WriteWALEntryType.
func (*WriteWALEntry) UnmarshalBinary ¶
func (w *WriteWALEntry) UnmarshalBinary(b []byte) error
UnmarshalBinary deserializes the byte slice into w.