Urgent.News

What's breaking now, across thousands of outlets.

Tech

Adaptive Lossless Floating-Point Encoding in Apache Parquet

Apache Parquet has introduced Adaptive Lossless floating-Point (ALP) Encoding, a lightweight floating-point encoding with compression ratios similar to zstd, faster decompression, random-access support, and GPU- and SIMD-friendly decoding. ALP is designed for decimal values stored as FLOAT (32-bit) or DOUBLE (64-bit) types, such as prices or measurements, but not suitable for data with a wide range of exponents or significant digits, like vector embeddings.

Systems often store decimal values as FLOAT or DOUBLE to avoid declaring precision and scale upfront, as Parquet's DECIMAL type requires. ALP improves upon BYTE_STREAM_SPLIT, the only non-dictionary alternative to PLAIN for FLOAT/DOUBLE values, by reducing data size while maintaining a compression ratio comparable to heavyweight compression.

ALP encodes floating-point values in batches called "vectors" (8 to 32K values) and stores them using an exponent and factor for each vector. These values are then encoded as integers, subtracting the lowest value (frame of reference) and bit-packing to a fixed width for efficient random-access. Exceptions are stored for special values like NaN, ±Infinity, and -0.0, as well as values that cannot be represented accurately.

The exponent and factor are chosen by the Parquet writer to minimize encoded size while maximizing accuracy.

Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at parquet.apache.org →

More in Tech

Deploying Uptime Kuma - Self-Hosted Status Page and Monitoring Tool

Uptime Kuma is a self-hosted monitoring tool that tracks the availability of websites, APIs, TCP ports, DNS records, and other services.

  • Uptime Kuma monitors websites, APIs, TCP ports, DNS records
  • Deploy via Docker Compose with Traefik reverse proxy
  • Public status page accessible after setup

More from Wednesday 23 September →