How we achieved write speeds of 1.4 million rows per second

Vlad Ilyushchenko

Vlad Ilyushchenko

QuestDB Team

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.

QuestDB version 6.0 alpha

Brian Smith

Brian Smith

QuestDB Team

We've just published an alpha version for the upcoming 6.0 major release and it includes long-awaited support for ingesting out-of-order records on-the-fly, a complete overhaul of the InfluxDB Line Protocol subsystem, and multiple fixes which provide stability improvements. Here's a roundup of changes that have just landed in the latest and greatest version!

QuestDB release January 2021

Brian Smith

Brian Smith

QuestDB Team

We've just released software version 5.0.6 and it comes with plenty of additional features and functionality, a full refactoring of PostgreSQL wire support, and multiple fixes to improve the stability of the system. Here's a roundup of recent changes that have just landed.

Building a garbage-free network stack for Kafka streams

Vlad Ilyushchenko

Vlad Ilyushchenko

QuestDB Team

Garbage collection is a type of automatic memory management that's used in many modern programming languages. The point of the garbage collector is to free up memory used by objects which are no longer being used by a program. Although it's convenient for developers not to think about manually deallocating memory, it can be a poisoned chalice that comes with several hard-to-predict downsides.

Authentication for InfluxDB line protocol

Patrick Mackinlay

QuestDB Team

QuestDB supports ingesting records using InfluxDB line protocol. This means that you can benefit from a simple, lightweight, and convenient message format to add data points to tables. We've further improved support for this feature by adding authentication, so your endpoint is more secure. This post describes how we added this functionality and how to enable it via QuestDB configuration.

NYC taxi meter and options pricing

Tancrede Collard

Tancrede Collard

QuestDB Team

Every cab I have ever ridden has been complaining about how hard it is to make ends meet as a driver. Using a dataset of over 1.6 billion taxi rides, 700 million FHV rides (Uber, Lyft, etc.), and 10 years of weather and gas prices data, I examine whether the antiquated meter system impacts NYC cabbies' livelihood, rather than competition from the likes of Uber.

Why performance matters in time-series data

Nicolas Hourcard

Nicolas Hourcard

QuestDB Team

Good data from the past helps us make better decisions in the present. Most of today's data were created within the past ten years, and human data output will only grow exponentially from here on. This sudden pervasiveness of data means that we need new ways to store and process information focusing on efficiency and sustainability. This article describes why speed and performance in a time-series database is the key to staying afloat in a sea of data.

Re-examining our approach to memory mapping

David G. Simmons

David G. Simmons

QuestDB Team

How does QuestDB get the kind of performance it does, and how are we continuing to squeeze another 50-60% out of it? This post will look at a code change we thought would create a negative performance impact, which actually brought a substantial boost in the system's overall performance and demonstrates that we are constantly learning more about performance improvements.