InfluxDB Markedly Outperforms OpenTSDB in Time Series Data & Metrics Benchmark

Navigate to:

This blog post has been updated on February 6, 2018 with the latest benchmark results for InfluxDB 1.4.2 and OpenTSDB v2.3.0. To provide you with the latest findings, this blog is regularly updated with the latest benchmark figures.

At InfluxData, one of the common questions we regularly get asked by developers and architects alike the last few months is: “How does InfluxDB compare to OpenTSDB for time series workloads?” This question might be prompted for a few reasons. First, if they’re starting a brand new project and doing the due diligence of evaluating a few solutions head-to-head, it can be helpful in creating their comparison grid. Second, they might already be using OpenTSDB for ingesting logs in an existing monitoring setup, but would like to now see how they can integrate metrics collection into their system and believe there might be a better solution than OpenTSDB for this task.

Over the last few weeks, we set out to compare the performance and features of InfluxDB and OpenTSDB for common time series workloads, specifically looking at the rates of data ingestion, on-disk data compression, and query performance. InfluxDB outperformed OpenTSDB in all three tests with 9x greater write throughput per server, while using 8x less disk space when compared against OpenTSDB’s time series optimized configuration, and delivering 7x faster response times for tested queries.

It’s also important to note that OpenTSDB uses Apache HBase as its storage backend and requires a significant amount of setup, configuration, and tuning to achieve optimal write and query performance and often requires a separate team to manage the HBase and HDFS deployment. InfluxDB, on the other hand, is ready to use for time series workloads out-of-the-box with no additional configuration with a schema and query language designed for working with time series.

To read the complete details of the benchmarks and methodology, download the “Benchmarking InfluxDB vs. OpenTSDB for Time Series Data, Metrics & Management” technical paper or watch the recorded webinar.

Our overriding goal was to create a consistent, up-to-date comparison that reflects the latest developments in both InfluxDB and OpenTSDB. We will periodically re-run these benchmarks and update our detailed technical paper with our findings. All of the code for these benchmarks is available on Github. Feel free to open up issues or pull requests on that repository if you have any questions, comments, or suggestions.

Now, let’s take a look at the results…

Versions tested

InfluxDB v1.4.2

InfluxDB is an open source Time Series Database written in Go. At its core is a custom-built storage engine called the Time-Structured Merge (TSM) Tree, which is optimized for time series data. Controlled by a custom SQL-like query language named InfluxQL, InfluxDB provides out-of-the-box support for mathematical and statistical functions across time ranges and is perfect for custom monitoring and metrics collection, real-time analytics, plus IoT and sensor data workloads.

OpenTSDB v2.3.0

OpenTSDB is a scalable, distributed Time Series Database written in Java and built on top of HBase. It is not a standalone Time Series Database and relies on HBase as its data storage layer, so the OpenTSDB time series daemons effectively provide the functionality of a query engine with no shared state between instances. Additionally, OpenTSDB is primarily designed for generating dashboard visualizations, therefore it does not always return exact data for arbitrary time ranges. Note that we set the HBase replication factor to 1 to achieve the fairest comparison.

About the benchmarks

In building a representative benchmark suite, we identified the most commonly evaluated characteristics for working with time series data. We looked at performance across three vectors:

  • Data ingest performance – measured in values per second per server
  • On-disk storage requirements – measured in bytes
  • Mean query response time – measured in milliseconds

About the dataset

For this benchmark, we focused on a dataset that models a common DevOps monitoring and metrics use case, where a fleet of simulated servers are periodically reporting system and application metrics at a regular time interval. We sampled 100 values across 9 subsystems (CPU, memory, disk, disk I/O, kernel, network, Redis, PostgreSQL, and Nginx) every 10 seconds. For the key comparisons, we looked at a dataset that represents 100 servers over a 24-hour period, which represents a relatively modest deployment.

  • Number of servers: 100
  • Values measured per server: 100
  • Measurement interval: 10s
  • Dataset duration(s): 24h
  • Total values in dataset: 87M per day

This is only a subset of the entire benchmark suite, but it’s a representative example. If you’re interested in additional detail, you can read more about the testing methodology on GitHub.

Write performance

InfluxDB outperformed OpenTSDB by 9x when it came to data ingestion.

InfluxDB vs OpenTSDB - Write throughput

On-disk compression

InfluxDB outperformed OpenTSDB by delivering 8x better compression.

InfluxDB vs OpenTSDB - disk storage

Query performance

InfluxDB outperformed OpenTSDB by delivering a minimum of 7x better query throughput.

InfluxDB vs OpenTSDB - Query Throughput

Summary

OpenTSDB and InfluxDB are both time series databases. However, OpenTSDB requires multiple orders of magnitude more administration overhead to run in production, and requires many application-dependent tweaks before it is performant. Even then, it was not entirely correct when running ad-hoc queries over our data. InfluxDB is simpler to set up, easier to use effectively, and returns correct query results.

In conclusion, we highly encourage developers and architects to run these benchmarks for themselves to independently verify the results on their hardware and data sets of choice. However, for those looking for a valid starting point on which technology will give better time-series data ingestion, compression and query performance “out-of-the-box”, InfluxDB is the clear winner across all these dimensions, especially when the data sets become larger and the system runs over a longer period of time.

What's next?