In this Time Series Benchmark Suite Evaluation of GridDB, QuestDB, and TimescaleDB, the three time series databases are compared by evaluating their ingestion or load performance. Their query performance is also measured, using five of the available queries in TSBS that highlight different use cases that could be used in a real world analysis of time series data.
There is one significant difference between the databases which are being evaluated: QuestDB and TimescaleDB use a tabular data model and GridDB uses a Key-Container data model. All data for QuestDB and TimescaleDB is inserted into one table while GridDB puts data for each host into separate tables (or containers in GridDB terminology).
To test how cardinality affects each database and specifically GridDB’s Key-Container data model, datasets with 100, 1,000, 10,000, and 100,000 hosts were evaluated for both load and query performance. The high-cpu-all, high-cpu-1, lastpoint, single-groupby and double-groupby queries were examined.
It was noted that load performance was not as expected, so tsdb_load was re-implemented in Java for GridDB; Java is the native interface for GridDB, providing reduced overhead compared to the other language bindings, including Go.
In general, GridDB was the fastest of the three databases, although it required more tuning. The exception to this was the simple lastpoint query that fetches the most recent record for every host. This very simple query had to be executed n-times for n-hosts.
A summary of the results for 10,000 hosts are shown below:
All three databases were able to ingest 100,000 hosts worth of DevOps data in real time with 10 seconds between each data point, making them all an effective ingestion option for this use case. QuestDB and TimescaleDB’s slow query performance is concerning if real time analysis is required, but they would perform adequately in scenarios where analysis is performed as a nightly batch job.
The detailed comparison is available here: TSDB_Evaluation_of_GridDB_QuestDB_and_TimescaleDB .
If you have any questions about the blog, please create a Stack Overflow post here https://stackoverflow.com/questions/ask?tags=griddb .
Make sure that you use the “griddb” tag so our engineers can quickly reply to your questions.