prototypes/wo-rt-c — single-file C reference of the writeonce runtime layer, zero deps beyond libc + kernel uapi: thread-per-core io_uring event loops (raw syscalls, no liburing), SO_REUSEPORT listeners, one mlock'd mmap arena sharded by address, WAL dual-write with group commit (HTTP ack only after the fsync CQE), boot-time snapshot + WAL replay recovery, and a bench harness with a Go net/http comparison server. Measured on 20 cores: 908k reads/s p99 154us and 643k fsync-acked commits/s p99 177us on 8 shards, vs Go net/http 495k/355k (no durability) on 20 cores. Crash-under-load testing found and fixed an ack-before-fsync race and an fd-reuse ABA hazard in commit-ack parking. docs/plan/exploration/c-runtime — the phased plan (00, exit evidence per phase), the one-address architecture trace (01), and the single-binary end-goal contract (02). justfile carries the demo and bench recipes; .gitignore covers binaries and data dirs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
44 lines
1.2 KiB
Text
44 lines
1.2 KiB
Text
# Cargo build artifacts
|
|
/target
|
|
/reference/crates/target
|
|
|
|
# C++ prototype build output
|
|
/prototypes/*/build
|
|
|
|
# C runtime prototype (prototypes/wo-rt-c): compiled binary + WAL/snapshot data.
|
|
# `just rt-c-demo` and the default WO_DATA write ./wo-data at the repo root.
|
|
/prototypes/wo-rt-c/wo-rt
|
|
/wo-data
|
|
/prototypes/wo-rt-c/wo-data
|
|
|
|
# Runtime data directories for the sample projects.
|
|
# `wo.toml` points at `./data` which holds the per-project engine state.
|
|
/data
|
|
/docs/examples/*/data
|
|
|
|
# Legacy blog content and data (v1 writeonce storage)
|
|
/content
|
|
|
|
# Symlinks to research source trees — user-specific absolute paths.
|
|
# Each contributor sets their own via:
|
|
# ln -s <path-to-linux-src> reference/linux
|
|
# ln -s <path-to-go-src> reference/go
|
|
# ln -s <path-to-postgresql-src> reference/postgresql
|
|
/reference/linux
|
|
/reference/go
|
|
/reference/postgresql
|
|
|
|
# Editor / OS noise — left broad on purpose so a contributor doesn't
|
|
# accidentally commit their IDE scratch or macOS metadata.
|
|
.DS_Store
|
|
*.swp
|
|
*.swo
|
|
/.idea/
|
|
/.vscode/*
|
|
!/.vscode/settings.json.example
|
|
!/.vscode/extensions.json
|
|
|
|
/prototypes/wo-db
|
|
# Phase-F bench binaries (sources are committed; builds are not)
|
|
/prototypes/wo-rt-c/bench/bench
|
|
/prototypes/wo-rt-c/bench/goref/goref
|