Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to create a database optimized for petabyte...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

How to create a database optimized for petabytes of logs and wide events

Databases for logs are usually forced to pick a side: build heavy inverted indexes for the ingested logs and pay for them on every write, or ingest raw data cheaply and pay with slow queries later. Is there a better approach? Yes - to make brute-force scanning so selective that most data is never read. This approach is taken by VictoriaLogs.

This talk follows a log entry through the VictoriaLogs engine: how it is ingested with no upfront schema, how it lands in an immutable LSM-like compressed column-oriented storage, and how queries run the same structure in reverse, applying a stack of pruning mechanisms based on time, stream labels, and bloom filters so that only the data that can actually match is ever read.

Beyond one system's internals, this is a talk about a design stance: when you specialize in one kind of data and know exactly how it is laid out and how it will be consumed, you can be smarter about what you build, sometimes discarding indexes entirely, and avoiding reading most of the data at all. You leave with a concrete set of patterns you can apply to your own storage problems, whether the data is logs or something else entirely.

Avatar for Jesús Espino

Jesús Espino

October 22, 2026

More Decks by Jesús Espino

Other Decks in Programming

Transcript

  1. How to create database optimized for petabytes of logs and

    wide events Jesús Espino | Software Engineer @ VictoriaMetrics Simple, Reliable, Efficient Monitoring victoriametrics.com
  2. Fair assumptions about logs for quering Time and source based

    Narrowed down by fields Simple, Reliable, Efficient Monitoring victoriametrics.com
  3. Ingestion Everything goes into memory and from there to a

    LSM tree sorted by stream and time Overtime, that LSM tree gets consolidated into bigger ones. Simple, Reliable, Efficient Monitoring victoriametrics.com
  4. Ingestion Everything goes into memory and from there to a

    LSM tree sorted by stream and time Overtime, that LSM tree gets consolidated into bigger ones. Simple, Reliable, Efficient Monitoring victoriametrics.com
  5. Ingestion Everything goes into memory and from there to a

    LSM tree sorted by stream and time Overtime, that LSM tree gets consolidated into bigger ones. Simple, Reliable, Efficient Monitoring victoriametrics.com
  6. One single-node VictoriaLogs can store hundreds of terabytes of logs

    and query them at a high speed because of the chosen architecture. Simple, Reliable, Efficient Monitoring victoriametrics.com