Distributed Timeseries Database in Go

GopherCon India · 2017 · India · 2017-02-24
goprometheustimeseriescassandrakafka

GopherCon India 2017

Deep dive into Vulcan, DigitalOcean’s Prometheus-compatible distributed timeseries database written in Go.

Outline (from the deck)

  • Why Go for NoSQL/NewSQL (Prometheus, Cockroach, Influx, etcd…)
  • Timeseries properties: write-heavy, compressible, lossy-friendly
  • From hash-sharded Prometheus to a pipelined microservice architecture
  • Kafka ingestion, Cassandra/chunk storage, schema evolution (V1 series → V2 chunks + index)
  • In-memory query engine and downsampling
  • Hard numbers we designed for: multi-Gbit/s, 100k writes/s, tens of TB