unlock unlimited code runs for $79, limited time →
NOSSLETTER.techLIVE

Digest

Today's best merged pull request, and the full archive of every day before it.

Redis native compressed bitmaps (redis-roaring)

Language: C+45103 -343feature
concepts demonstrated
Bitmaps and bitmap compressionCustom object types and encodings in CConditional feature flags and runtime configurationMemory optimization with compressed data structures
The Issue & Context

Before this PR, Redis stored bitmaps as plain strings, which consume one byte per 8 bits up to the highest set bit, leading to large memory usage for sparse or large bitmaps.

Root Cause Analysis

The existing bitmap implementation used a dense string representation that allocated memory proportional to the highest bit offset, regardless of how many bits were set, lacking any compression or sparse representation mechanism.

Solution Strategy & Architectural Pattern

This PR integrates a native Roaring bitmap type (`OBJ_BITMAP` with `OBJ_ENCODING_BITMAP_ROARING`) backed by the vendored CRoaring library, enabling compressed storage of sparse and large bitmaps. It introduces a new config `bitmap-default-roaring` to enable automatic creation and conversion to Roaring bitmaps on writes, transparently supports bit commands on both representations, and adds a new RDB type for persistence using CRoaring's compact serialization format.

Key Takeaway for Contributors

Choosing a compressed bitmap data structure like Roaring can dramatically reduce memory usage for sparse bitmaps while preserving exact semantics, but requires careful integration with existing type systems, command compatibility, and persistence formats.

[ 01 // ARCHIVE ]

51 entries — page 1 of 3
DateRepositoryScore
2026-10-13milvus-io/milvus9/10read →full digest →
2026-10-12milvus-io/milvus9/10read →full digest →
2026-10-11apache/airflow9/10read →full digest →
2026-10-10kubernetes/kubernetes9/10read →full digest →
2026-10-09ggml-org/llama.cpp9/10read →full digest →
2026-10-08ggml-org/llama.cpp9/10read →full digest →
2026-10-07apache/airflow8/10read →full digest →
2026-10-06vllm-project/vllm8/10read →full digest →
2026-10-05tree-sitter/tree-sitter9/10read →full digest →
2026-10-04vllm-project/vllm8/10read →full digest →
2026-10-03vllm-project/vllm9/10read →full digest →
2026-10-02ggml-org/llama.cpp9/10read →full digest →
2026-10-01milvus-io/milvus9/10read →full digest →
2026-09-30ggml-org/llama.cpp9/10read →full digest →
2026-09-29rust-lang/rust9/10read →full digest →
2026-09-28duckdb/duckdb9/10read →full digest →
2026-09-27vllm-project/vllm9/10read →full digest →
2026-09-26nodejs/node9/10read →full digest →
2026-09-25nodejs/node8/10read →full digest →
2026-09-24microsoft/vscode9/10read →full digest →
← prev1 / 3next →