diff --git a/tsdb/chunkenc/chunk.go b/tsdb/chunkenc/chunk.go index 2bc1bf33f..5f228df48 100644 --- a/tsdb/chunkenc/chunk.go +++ b/tsdb/chunkenc/chunk.go @@ -41,14 +41,28 @@ const ( // Chunk holds a sequence of sample pairs that can be iterated over and appended to. type Chunk interface { + // Bytes returns the underlying byte slice of the chunk. Bytes() []byte + + // Encoding returns the encoding type of the chunk. Encoding() Encoding + + // Appender returns an appender to append samples to the chunk. Appender() (Appender, error) + // The iterator passed as argument is for re-use. // Depending on implementation, the iterator can // be re-used or a new iterator can be allocated. Iterator(Iterator) Iterator + + // NumSamples returns the number of samples in the chunk. NumSamples() int + + // Compact is called whenever a chunk is expected to be complete (no more + // samples appended) and the underlying implementation can eventually + // optimize the chunk. + // There's no strong guarantee that no samples will be appended once + // Compact() is called. Implementing this function is optional. Compact() }