Skip to content

ochi-team/ochi

Repository files navigation

Ochi is a cost-effective, Loki compatible database for logs.

Build

The build will automatically resolve dependencies listed in build.zig.zon.

zig build

This produces the Ochi executable in zig-out/bin/.

Run

By default Ochi looks for ochi.yaml in the current directory.

zig build run

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
  1. https://zigistry.dev/
  2. https://ziglist.org/

Nice to have:

  • Design landing page
  • Drop a couple blog posts in there on:
    1. why static allocation is not the best
    2. what is the alternative to static allocations?
    3. chunked buffers as an alternative to ArrayList
    4. write logs effectively
    5. key value store for a logging database
    6. storing index for logs
    7. object storage complexity
    8. ARM matters
    9. opencost integration with Grafana
    10. why we must stay opensource forever
    11. tripwire
    12. 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

About

Ochi is a fast, cost-effective, Loki compatible database for logs.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors