QuestDB

QuestDB
DeveloperQuestDB
ReleaseOctober 8, 2018; 7 years ago (2018-10-08)
Written inJava, C++
Operating systemCross-platform
TypeTime series database, column-oriented DBMS
LicenseApache License 2.0
Websitequestdb.com
Repositorygithub.com/questdb/questdb

QuestDB is an open-source column-oriented time series database management system. It supports SQL with extensions for time-series analysis and is designed for high-rate ingestion of timestamped data.[1][2]

History

QuestDB originated as an open-source Java database named NFSdb, created by software developer Vlad Ilyushchenko, who began the project while working at an energy trading company and spent several years developing it on his own before other contributors joined.[2][3][4] The software was renamed QuestDB with the release of version 3.0.0 in October 2018, which introduced a new storage engine, CAIRO, and a new SQL engine, GRIFFIN.[5] Version 4.0.0, released in November 2019, renamed the software's package namespace to match the product name and added a PostgreSQL wire-protocol server and an HTTP server.[6] The project's contribution guidelines were added the same month.[7] Ilyushchenko and Nicolas Hourcard co-founded a company of the same name to develop it,[2][3] and the database is distributed under the Apache License 2.0.[8][9]

QuestDB participated in Y Combinator's Summer 2020 batch and raised a US$2.3 million seed round in July 2020, followed by a US$12 million Series A round in November 2021.[10] In 2020, InfoWorld included QuestDB in its annual Bossie Awards for open-source software, noting that parts of the system were still a work in progress.[8]

QuestDB 6.0, released in May 2021 and featured in GitHub's Release Radar,[11] added support for ingesting records that arrive out of chronological order, removing the requirement that rows be inserted in strict timestamp order.[12] QuestDB 8.0 was released in 2024, adding a variable-size VARCHAR data type and query-performance improvements.[13][14] QuestDB 9.0 followed in July 2025, introducing support for multi-dimensional arrays.[9]

Architecture

QuestDB stores data in a column-oriented layout partitioned by time intervals. Within each partition, every column is held in its own append-only file, which the engine accesses through memory-mapped files; new rows are appended to the end of the mapped memory region.[1][15][16] The core is written in Java with performance-critical components in C++, and it manages memory off-heap to limit garbage-collection pauses.[2][15] Query execution uses SIMD instructions to parallelise filtering and aggregation.[1]

Data can be ingested through several interfaces, including the InfluxDB Line Protocol, the PostgreSQL wire protocol, and an HTTP REST API.[15][1]

QuestDB's SQL dialect adds time-series constructs to standard SQL, including a designated timestamp column and SAMPLE BY for time-bucketed aggregation with FILL for gap filling.[17][18] The dialect also provides time-series joins, including ASOF JOIN, which matches each row with the most recent row of another table at or before its timestamp, and the related WINDOW JOIN and HORIZON JOIN, which aggregate a related table over time windows or at sets of time offsets around each row.[19] Materialized views defined over SAMPLE BY queries are refreshed incrementally as new data arrives.[20] Researchers have noted that its handling of NULL values in comparisons deviates from the SQL standard, treating null as a concrete value.[17][21]

Independent evaluations

A 2023 benchmark study published in the Proceedings of the VLDB Endowment evaluated seven time-series database systems and measured QuestDB achieving an ingestion throughput of over two million data points per second, comparable to that of TimescaleDB and eXtremeDB.[1] A 2023 comparison of database management systems for on-premise Internet of Things data storage found QuestDB to be the fastest of the tested systems at inserting data, and one of only two — together with PostgreSQL — to complete a bulk load of ten million records.[22]

QuestDB has also been used as a research target in automated software-testing studies of time-series databases. Tools developed at Tsinghua University and the National University of Singapore employed it as a test subject for detecting runtime errors and logic bugs, reporting dozens of defects that were subsequently confirmed or fixed by the project's developers.[18][17][21]

See also

References

  1. ^ a b c d e Khelifati, Abdelouahab; Khayati, Mourad; Dignös, Anton; Difallah, Djellel; Cudré-Mauroux, Philippe (2023). "TSM-Bench: Benchmarking Time Series Database Systems for Monitoring Applications" (PDF). Proceedings of the VLDB Endowment. 16 (11): 3363–3376. doi:10.14778/3611479.3611532.
  2. ^ a b c d Asay, Matt (February 16, 2021). "QuestDB has built a lightning-fast time series database. Can it build a business to match?". TechRepublic. Archived from the original on February 17, 2021. Retrieved July 21, 2026.
  3. ^ a b Ilyushchenko, Vlad (July 28, 2020). "Launch HN: QuestDB (YC S20) – Fast open source time series database". Hacker News.
  4. ^ "Initial release". GitHub.
  5. ^ "QuestDB 3.0.0". GitHub. October 8, 2018.
  6. ^ "4.0.0". GitHub. November 19, 2019.
  7. ^ "docs: contributing documents – first cut". GitHub. November 18, 2019.
  8. ^ a b "The best open source software of 2020". InfoWorld. October 5, 2020. Retrieved July 13, 2026.
  9. ^ a b Larabel, Michael (July 11, 2025). "QuestDB 9.0 Released For High Performance, Time-Series Database". Phoronix. Retrieved July 13, 2026.
  10. ^ Miller, Ron (November 3, 2021). "QuestDB snares $12M Series A with hosted version on the horizon". TechCrunch. Retrieved July 21, 2026.
  11. ^ Duke, Michelle (June 4, 2021). "Release Radar · May 2021 Edition". The GitHub Blog. Retrieved July 21, 2026.
  12. ^ "QuestDB 6.0.0". GitHub. May 10, 2021. Retrieved July 13, 2026.
  13. ^ Plura, Michael (May 31, 2024). "QuestDB 8.0 with 50 percent more SQL performance and new VARCHAR data type". heise online. Retrieved July 21, 2026.
  14. ^ Messetti, Andrea (July 5, 2024). "Time Series Database QuestDB 8.0 Improves SQL Performance and Adds ZFS Compression". InfoQ. Retrieved July 21, 2026.
  15. ^ a b c Karlstetter, Roman Johannes (2023). An Industrial Sensor Data Processing and Query System (PhD thesis). Technische Universität München.
  16. ^ Shehbaz, Simin; Mehabadi, M.; Kent, Kenneth B. (2025). Benchmarking and Evaluating Time Series Databases for Appliance-Level Energy Consumption Data. 2025 IEEE International Conference on Collaborative Advances in Software and Computing (CASCON). pp. 257–262. doi:10.1109/CASCON66301.2025.00050.
  17. ^ a b c Jiang, Yuancheng; Wang, Jianing; Zhang, Chuqi; Yap, Roland H. C.; Liang, Zhenkai; Rigger, Manuel (2025). Enhanced Differential Testing in Emerging Database Systems. 34th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2025). Trondheim, Norway. arXiv:2501.01236.
  18. ^ a b Wu, Zhiyong; Liang, Jie; Wang, Mingzhe; Zhou, Chijin; Jiang, Yu (2022). Unicorn: detect runtime errors in time-series databases with hybrid input synthesis. 31st ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2022). pp. 251–262. doi:10.1145/3533767.3534364.
  19. ^ "JOIN keyword". QuestDB documentation. Retrieved July 13, 2026.
  20. ^ "Materialized views". QuestDB documentation. Retrieved July 13, 2026.
  21. ^ a b Jiang, Yuancheng; Wang, Jianing; Zhang, Chuqi; Yap, Roland H. C.; Liang, Zhenkai; Rigger, Manuel (2026). "ACME: Automated Clause Mapping Engine for Testing Emerging Database Systems". Proceedings of the ACM on Software Engineering. 3 (FSE): 853–875. doi:10.1145/3797134.
  22. ^ Wolters, Anna; Blazevic, Mevludin; Riehle, Dennis M. (2023). On-Premise Internet of Things (IoT) Data Storage: Comparison of Database Management Systems. 8th International Conference on Internet of Things, Big Data and Security (IoTBDS 2023). SCITEPRESS. pp. 140–149. doi:10.5220/0011851200003482.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.