Time-Series Compression Algorithms
Question for people who've implemented these kind of compression schemes: some of these mechanisms require local context (rle and s8b) how do you handle random access in these cases? Is the metadata embedded as a sort of key frame to which we have to advance before decoding the value? Or as a separate block in the headers?<p>RLE especially sounds like it could degenerate into a binary search per lookup, maybe aided by caching the bounds of the last run and assuming locality and linear-ish usage?<p>This might sound obvious, but wasn't mentioned in the article, you can also apply integer based compression schemes on dictionary encoded data.<p>And floating point values don't always need those 64bits when the use case and input data don't require that level of precision.