Skip to content

7.0.1

Choose a tag to compare

@bluestreak01 bluestreak01 released this 27 Feb 16:10
· 1891 commits to master since this release

Overview

QuestDB 7.0.1 is the production-ready implementation of our new storage type, which makes data ingestion faster and more reliable. In this release, we introduce a Write-Ahead-Log (WAL) to ingest data. Newly created tables will now be WAL tables by default. Existing tables will use legacy storage until explicitly migrated to a new storage type.

🚀 WAL Storage new features

  • Ingestion throughput is 3x higher, as benchmarked on the Time Series Benchmarking Suite with twelve threads.
  • Concurrent writing via all interfaces. Issues such as #1461 are now solved
  • Foundational groundwork for High Availability: Replication will work with WAL tables only

Benchmark

Below are our latest benchmark results using the Time Series Benchmarking Suite:

  • Benchmark: CPU-only
  • Hardware: 32CPUs, 64GB RAM

The ingestion rate is measured in rows per second:

  QuestDB 7.0 influxDB 1.8.10 TimescaleDB 2.10 (tuned)
4 workers 1.458M 0.181M 0.304M
8 workers 2.874M 0.306M 0.464M
12 workers 4.155M 0.372M 0.517M
16 workers 4.373M 0.375M 0.510M

How to migrate from existing legacy tables to WAL-tables

To create a WAL-based table, the following syntax should be used (note WAL at the end):

create table ABC(x int, t timestamp) timestamp(t) partition by day WAL;

You can also convert your existing table to WAL (followed by an instance restart). The conversion touches table configuration (not data!) and is fully reversible.

To convert an existing table to WAL:

  • alter table ABC set type WAL;
  • restart instance

To convert a WAL table to a non-WAL table:

  • alter table ABC set type bypass WAL;
  • restart instance

What is new

CORE

SQL

  • allow list of timestamps of higher precision than required in alter table attach/detach/drop partition by @marregui in #3002
  • extend create table statement syntax to support "IN VOLUME volume-alias" by @marregui in #2931

HTTP

  • JSON endpoint returns index of designated timestamp column, which is being used by the Web Console by @bluestreak01 in #2969

UI

What we fixed

CORE

  • Table type conversion SQL was not processed via REST API by @glasstiger in #2963
  • Reset transaction number on non-WAL to WAL table conversion by @glasstiger in #2968
  • fix wal table suspension on a race condition by @ideoma in #3019
  • fix cleaning up after dropped tables by @ideoma in #3015

SQL

ILP

  • do not modify representation of Long.MIN_VALUE sent over ILP by @eugenels in #3011

Full Changelog: 7.0.0...7.0.1