Python · Columnar Storage · Bufferpool · Concurrency

L-Store, HTAP Database Engine Built from Scratch

LINEAGE-BASED COLUMNAR STORAGEBASE — IMMUTABLEINDIRECTIONTAIL — APPEND-ONLYLRU BUFFERPOOL · BACKGROUND MERGE · 2PL

Problem

Transactional and analytical workloads want opposite storage layouts. Row-oriented storage serves point updates well and scans badly; columnar storage does the reverse. An HTAP engine has to serve both without keeping two copies of the truth.

Approach

Lineage-based columnar storage splitting immutable base pages from append-only tail pages, with an indirection column resolving each record to its latest version at read time. Writes append rather than mutate, so readers never block on writers.

What it measured

Validated across 3 autograded milestones covering correctness, throughput, and concurrent transaction behavior.

Result

A working engine with an LRU bufferpool doing dirty-page write-back, a background merge compacting tail updates back into read-optimized base pages, and concurrent multithreaded transactions under record-level two-phase locking. Built with a 5-person team.

On the engineer resume

  • Built an HTAP database engine in Python (5-person team): lineage-based columnar storage, an LRU bufferpool with dirty-page write-back, background merge, and concurrent multithreaded transactions under record-level two-phase locking, validated across 3 autograded milestones.
RepoAll workGet in touch