Analysis of rust-llkv's Arrow storage approach
DatabaseComments
If we assume a workload where only a small subset of columns is queried, the reduced I/O from the columnar layout might outweigh those alignment costs. The KV overhead becomes negligible if you avoid reading the majority of the row.
I am wondering about the MVCC implementation... does the Arrow format simplify how they track versions of these chunks? It would be wild if they can version specific columns instead of the whole record...
The claim about zero-copy reads is contingent on the pager's alignment. If the KV store does not guarantee page-aligned offsets for the Arrow buffers, the system will still incur copy overhead.
That is exactly why these theoretical gains rarely survive a real deployment. Most of us are fighting with network-attached storage or filesystem quirks that make strict alignment a nightmare.