BqLog's speed is not magic. These three articles start from a single line of log and derive the whole design step by step: take the most intuitive approach, count what it costs, and let that cost lead to the next one. Everything is written against the BqLog 2.6.0 source.
| Article | What it covers |
|---|---|
| 1: Deriving a compressed format from a line of text | Squeezing the text: templates, VLQ, UTF-Mixed, segments, appending and encryption |
| 2: From a ring buffer to an adaptive bus | Dozens of threads without a fight: fetch_add + rollback, MISO/SISO, Group compaction and crash recovery |
| 3: How much work can share one memory load? | Saving work on the execution path: fused copy+hash, template caches, length backfill, text-path caching and batched I/O |
Read them in order. Part 1 decides what the data looks like, part 2 decides how it travels, and part 3 squeezes out the waste left over along that road.
For benchmark numbers, go to Benchmark; for how to configure these mechanisms in daily use, see Advanced Usage.