Home › Databases & storage

Databases & storage

Indexes, durability, transactions, buffer management and query execution.

Indexes

Finding records on disk and in memory.

Durability & recovery

Surviving crashes without losing data.

Transactions & concurrency control

Isolation between concurrent transactions.

Buffer management

Caching pages between disk and memory.

Data layout

How records are arranged on disk.

Columnar storage

medium

Store each column contiguously so analytic scans read only the columns they need, compress well and run as tight SIMD loops.

scan I/O ∝ rows × compressed bytes of the referenced columns; reconstructing one row costs one access per column

Slotted pages

low

Fixed-size page layout for variable-length records, with a slot array growing from the front and data from the back; stable record IDs despite compaction.

lookup by slot O(1); insert O(1) plus an occasional O(page) compaction; delete O(1)

columnar file format

Planned.

columnar memory format

Planned.

Chunked array storage

medium

Cut an N-dimensional array into a regular grid of independently compressed blocks, so a slice read touches only the overlapping blocks and writers to different blocks run in parallel.

slice read O(chunks overlapped), each decoded whole; chunk lookup O(1) by key, or O(log n) in an HDF5 B-tree

table snapshot manifests

Planned.

merge on read deletes

Planned.

delta main storage

Planned.

Time partitioning

low

Cut a table into fixed-interval time blocks so queries read only overlapping blocks and retention drops a whole block as one metadata change.

route O(log P) for P partitions; range query O(log P + overlapping partitions); retention O(dropped partitions), no per-row work

Time-series chunk storage

medium

Store each series as immutable compressed chunks of consecutive samples behind a small time index; a range query decodes only the chunks that overlap it.

append O(1) amortized; range query O(log chunks + overlapping chunks × chunk size)

Content-addressed storage

low

Store each blob under the hash of its bytes: immutable, deduplicated by construction, self-verifying on every read, and composable into Merkle trees.

put O(n) hashing + 1 file write (2 fsyncs); get O(n) read + O(n) re-hash; dedup hit costs hashing + 1 stat

git object model

Planned.

Query execution

Running queries over the data.

Query optimization

Choosing and rewriting plans before they run.

query optimizer

Planned.

cardinality estimation

Planned.

cascades query optimization

Planned.

join order dynamic programming

Planned.

subquery decorrelation

Planned.

relational algebra

Planned.

predicate pushdown

Planned.

partition pruning

Planned.

federated query planning

Planned.

Schema & migrations

Evolving schemas and data models without downtime.

schema evolution

Planned.

schema migration versioning

Planned.

schema migration diff

Planned.

expand contract migration

Planned.

online schema change

Planned.

Chunked backfill

low

Process old data in bounded key ranges, one short transaction per chunk, with a saved checkpoint and idempotent writes, so a crash resumes and live traffic never waits.

O(N) rows total; per chunk O(log N + chunk size) via the key index; resume costs at most one chunk

schema inference

Planned.

entity attribute value schema

Planned.

closure table

Planned.

bitemporal data

Planned.

Flash, disks & redundancy

Managing flash and disk space and surviving lost devices.

flash translation layer

Planned.

flash garbage collection

Planned.

wear leveling

Planned.

zoned storage

Planned.

declustered raid

Planned.

erasure coding

Planned.

local reconstruction codes

Planned.

extent trees

Planned.

free space management

Planned.

inode file layout

Planned.

Data pipelines

Moving, versioning and tracing data between systems.

Product analytics

Turning event streams into users, sessions, funnels and attributed conversions.

File & document formats

Parsing and writing common container and document formats.