This post was written by Miguel Arregui, who describes how he developed a passion for computing early on, his experience in research at CERN and the ESA, and eventually working at QuestDB. Miguel works as a software engineer in the core database team, improving upon the internals of the fastest open source time series database.
Inter-thread messaging is a fundamental part of any asynchronous system. It is the component responsible for the transportation of data between threads. Messaging forms the infrastructure, scaffolding multi-threaded applications, and just like real-world transport infrastructure, we want it to be inexpensive, fast, reliable, and clean. For QuestDB, we wrote our own messaging system, and this post is about how it works and how fast it is.
The last significant features we shipped dealt with out-of-order data ingestion, and we focused our efforts on hitting the highest write-throughput that we could achieve for that release. Our latest feature highlight adds space as a new dimension that our database can manage and allows users to work with data sets that have spatial and time components.
Hacktoberfest 2021 is starting today! For the first time, QuestDB is participating as an open source project. We're super excited to meet with other open source contributors and maintainers.
For those who're not familiar with Hacktoberfest, it's a month-long online celebration for open source software and communities. By contributing to open source projects, you can get a special edition Hacktoberfest T-shirt 👕 or choose to plant a tree for our planet. 🌴
This post was written by Dean Markwick, who has put together an excellent example using QuestDB as a time series database for high-frequency trading. This post shows how to use QuestDB to calculate the limit order book, price impact, trade sign distribution, and other concepts via the Julia programming language.
The latest QuestDB release introduces support for geospatial data via the addition of geohash types. Geohashes encode geographic areas as base-32 strings, and native support for this type allows for fast and efficient querying and storage of geodata. Also included are helper functions for rounding timestamps, performance improvements for existing functions, alongside other fixes and features. Here's the full roundup of changes that have just landed!
We're happy to announce that QuestDB is available with an official listing on the DigitalOcean marketplace. Deploying QuestDB via 1-click app means it's quick and easy to get started with a high-performance SQL database for time series. In this announcement, we'll show you how to get started and show how you can make use of some free DigitalOcean credit for new users.
We've published the latest QuestDB release, and it focuses on community-driven
topics raised with us recently by our users. The features included are
performance improvements, increased parallelization of existing code, and
calendar alignment for
SAMPLE BY queries. Also included is the introduction of
a framework for exposing Prometheus metrics by our community member Piotr
Rżysko. Here's the full roundup of changes that have just landed!
If you're working with large amounts of data, you've likely heard about high-cardinality or ran into issues relating to it. It might sound like an intimidating topic if you're unfamiliar with it, but this article explains what cardinality is and why it crops up often with databases of all types. IoT and monitoring are use cases where high-cardinality is more likely to be a concern. Still, a solid understanding of this concept helps when planning general-purpose database schemas and understanding common factors that can influence database performance.
The journey to today's version of QuestDB began with the original prototype in 2013, and we've described what happened since in a post published during our HN launch last year. In the early stages of the project, we were inspired by vector-based append-only systems like kdb+ because of the advantages of speed and the simple code path this model brings. We also required that row timestamps were stored in ascending order, resulting in fast time series queries without an expensive index.