Re:Show HN: Time Series Benchmark TurboPFor,TurboFloat,Turbo...
by powturbo on Sunday June 25, 2023 @05:29AM
(#36466367)
Most of time series databases (ex. DuckDB) are storing floating point data as 64 bits.
They are reporting some extraordinary compression ratio by using a gorilla/chimp like algorithm.
However as shown in this benchmark, lot of time series data (ex. temparature, climate data, stocks,...) don't have more than 1 or 2 fixed decimal digits and can be stored losslessly in 16/32 bits integers.
Integer compression algorithms can then be used, which results in significant compression ratio and several times faster than the gorilla like algorithms.
TurboGorilla, the fastest Gorilla (or chimp) based algo in c, cannot exceed 1GB/s in decompression, wherea TurboPFor is in the order of 10Gb/s, TurboBitByte is >100Gb/s.
Re:Show HN: Time Series Benchmark TurboPFor,TurboFloat,Turbo...
by powturbo on Sunday June 25, 2023 @11:10PM
(#36475312)
Thanks for the confirmaation.
If your query engine can't exploit fine grained access, then general purpose compressors like lz4 or zstd with large compressed blocks are the better choice for numerical data, especially in combination with transpose (+delta).
They are reporting some extraordinary compression ratio by using a gorilla/chimp like algorithm.
However as shown in this benchmark, lot of time series data (ex. temparature, climate data, stocks,...) don't have more than 1 or 2 fixed decimal digits and can be stored losslessly in 16/32 bits integers.
Integer compression algorithms can then be used, which results in significant compression ratio and several times faster than the gorilla like algorithms.
TurboGorilla, the fastest Gorilla (or chimp) based algo in c, cannot exceed 1GB/s in decompression, wherea TurboPFor is in the order of 10Gb/s, TurboBitByte is >100Gb/s.
See https://clickhouse.com/blog/optimize-clickhouse-codecs-compr...