Today is the culmination of over a years worth of hard work (and significantly more than that for its creator Heinz). We're releasing DalmatinerDB v0.2 which is a free, highly scalable time series database built on top of Riak Core that features an expressive data model and query language.
DalmatinerDB has been available for several years on SmartOS as part of Project Fifo but now anyone using Linux can also enjoy it!
DalmatinerDB is the time series database we use at Outlyer. Our goal was to build something for ourselves and fully contribute it back to the community in the spirit of open source (and also to help us hire good Erlang developers).
Outlyer makes no money from this although you can buy paid commercial support from Project Fifo if you start to scale and want a contract that allows you to wake someone up at 3am. There are no paid features though, the code is all completely free and will always remain that way.
Why do I care?
There are a lot of time series databases out there but none of them are particularly awesome. If you are thinking about creating an analytics based SaaS startup you're pretty much choosing the best from a bad bunch. Almost everyone builds something custom on top of Cassandra which we believe isn't a particularly great thing to do.
You may have chosen to build a metrics platform at your company rather than buying an awesome SaaS service like Outlyer. If you want something simple to operate and that scales then DalmatinerDB would be a great option.
Its fast! You can write up to 3 million metrics per second on a reasonable size server and performance scales linearly as you add more nodes. For anyone who wants to verify the single node performance the full details are here:
I'll be doing blogs on query performance later on in addition to a blog on exactly how to scale out by adding more nodes with some benchmarks.
DalmatinerDB is stable. Despite being a v0.2 release it is installed in several large companies and has been running nicely for years. Using Riak Core, ZFS and Postgres as building blocks has given it a head start on maturity. It has been designed from the ground up as a distributed database so the clustering features aren't a hack on top.
DalmatinerDB is a massive upgrade on older systems like Graphite that use a flat data model. It supports tags on metrics and has an extremely good Grafana plugin. You can send metrics into the proxy in a variety of formats including InfluxDB, OpenTSDB or even scrape Prometheus endpoints.
When don't I care?
DalmatinerDB is not a single Go binary. Scaling becomes easier when you split things out into a few services. At Outlyer we run a cluster of DalmatinerDB storage engines, a bunch of stateless query engines, some code that does the equivalent of the metrics proxy, and a Postgres cluster. Now scaling our platform is as simple as adding servers to each service but the initial setup takes a bit longer and there is the complexity of load balancers and the network inbetween.
Alright, I'm convinced.. how do I give it a go?
We're currently working on updating the docs and automating Linux package creation.
The official site for Dalmatinerdb is https://dalmatiner.io and there are links to the official docs that cover SmartOS installation and a bunch of other information.
If you have any problems or questions please raise an issue in Github https://github.com/dalmatinerdb/dalmatinerdb. We'd love to hear from you if you're thinking about rolling out DalmatinerDB or want to start contributing code back.