Ochi is a cost-effective, Loki compatible database for logs.
Build
The build will automatically resolve dependencies listed in build.zig.zon.
This produces the Ochi executable in zig-out/bin/.
Run
By default Ochi looks for ochi.yaml in the current directory.
Specify a custom config file:
TODO: For some reason this doesn't work.
zig build run -- -c ./my-ochi.yaml
Configuration
Example ochi.yaml:
server: port: 9012 app: maxRequestSize: 4194304 # 4MB
Dependency Resources
Where to look for zig dependencies
Nice to have:
- Design landing page
- Drop a couple blog posts in there on:
- why static allocation is not the best
- what is the alternative to static allocations?
- chunked buffers as an alternative to ArrayList
- write logs effectively
- key value store for a logging database
- storing index for logs
- object storage complexity
- ARM matters
- opencost integration with Grafana
- why we must stay opensource forever
- tripwire
- why we don't use inverted index and full text search
tiny package movements
- extract structs from store/inmem/block_header.zig
- move data.zig to data/Data.zig
- separate data and data/MemTable packages
- separate index and index/Memtable packages
tests todos
index
- index
- index table
- writer
- mem block
- mem table
- meta index
- table header
- meta index record
data
- block writer
- columns header index
- stream writer
- table header
- mem table
- data
