GitHub user x-at-01 added a comment to the discussion: Sharing benchmark observations on decimal floating-point compression in IoT time-series: comparing integer mapping with Gorilla/Chimp
Thank you @HTHou for the detailed and constructive review. Your points regarding workload equivalence and measurement rigor are spot on, and I appreciate you taking the time to examine the benchmark specifics. Here is the updated breakdown and clarifications addressing each point: 1. Workload equivalence and timestamp isolation: You are completely right that the previous graupel wrapper bundled timestamps into Point(ts, val) structs, which created asymmetric overhead for Gorilla and Chimp in both throughput and bits/value calculation. To eliminate this distortion, I have decoupled the benchmarks to operate strictly on raw floating-point slices (&[f64] and &[f32]), ensuring that all codecs process identical byte payloads without timestamp baggage or allocation artifacts. 2. Cold sampled encoding vs warm cached encoding: To make the distinction explicit, I now report cold and warm encoding throughput separately across the 37 standard datasets from the ACM SIGMOD 2024 ALP benchmark: - Cold end-to-end encoding (full parameter sampling, bit-width search, and compression): 4.87 GB/s on Apple M2 Max / modern 64-bit cores. - Warm pure kernel encoding (reusing cached parameters without sampling): 6.02 GB/s. - Decompression throughput: reached 32.53 GB/s in the latest fastalp v0.1.37 release (a 14.7% increase from 28.36 GB/s), compared to reference C++ ALP at ~20.0 GB/s. 3. Compression ratio across 37 datasets: Across all 37 public time-series datasets from the SIGMOD 2024 benchmark, the total compressed size in v0.1.37 has dropped from 104,465 bytes to 93,909 bytes. This represents a 10.1% footprint reduction and an 11.2% increase in overall compression ratio (reaching 3.23x overall and 6.99x geometric mean, compared to 5.93x for C++ ALP). For smooth IoT and sensor data with small first-order deltas, relaxing the Delta evaluation threshold allows compression ratios up to 431x on near-constant series. 4. Bounded expansion clarification: I agree with your observation regarding negative expansion. Because fastalp prepends a 1-byte self-describing header before raw fallback payloads, incompressible data incurs a 1-byte framing overhead (e.g., 8,192 raw bytes become 8,193 bytes). Calling it bounded expansion (with at most 1 byte overhead per block) is mathematically precise and accurate. 5. Reproducibility: The standalone benchmark harness, dataset loader, and test suite are available in [fastalp](https://github.com/webc-site/wedb_embed/tree/main/fastalp) and published on [crates.io](https://crates.io/crates/fastalp). The C++ comparison target and dataset reproducer are maintained at https://github.com/x-at-01/ALP. Thank you again for the feedback; it directly helped improve the clarity and rigor of these benchmarks. GitHub link: https://github.com/apache/iotdb/discussions/18581#discussioncomment-18280352 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected]
