github questdb/questdb 7.3.10

latest releases: 7.4.2, 7.4.1, 7.4.0...
2 months ago

Fresh from QuestDB 🐲

The 2024 Lunar New Year marks the Year of the Dragon. 🐉 When you think of the mighty dragon, what comes to mind? For us, well, we're a little different. Dragons evoke strength, wisdom, and - naturally - wild performance (we're performance obsessed).

Within that theme, the 7.3.10 release offers a 5x-10x speed-up in ASOF and LT JOIN queries, as well as a number of optimizations in parallel filters, GROUP BY, and within the JIT compiler. Further, UUID and LONG256 columns are now supported by parallel GROUP BY for efficient use of all hardware resources. For workloads that feature small, but frequent transactions you'll also see improved performance.

Familiar with InfluxDB? Interested in using InfluxDB Line Protocol (ILP), but with something more robust under-the-hood? This release provides 5x faster ingestion performance when multiple connections are in use, further increasing overall throughput strength compared to InfluxDB, especially in data with high cardinality. Whether you're looking to leverage ILP for high performance streaming, or upgrading an existing InfluxDB workload over to QuestDB, this update makes it easier.

Read more about "drop-in" InfluxDB migration in our recent blog.

Alongside the usual battery of bug fixes, this release also includes a new HyperLogLog-based approx_count_distinct() SQL function that is 3x-5x faster and more memory efficient than the existing count_distinct() function for high cardinality data sets. And finally, Write-Ahead Log (WAL) enabled tables are now the default table type. This means that the benefits of WAL & WAL-required features like deduplication are available to each newly created table.

Whether you're new to QuestDB, working in prod, or migrating existing time series workloads, this release has something for you.

Performance improvements

  • perf(sql): support uuid and long256 in parallel GROUP BY by @nwoolmer in #4140
  • perf(sql): avoid redundant disk reads in ORDER BY + LIMIT queries with parallel filter by @puzpuzpuz in #4148
  • perf(sql): use JIT compiled filter in parallel GROUP BY by @puzpuzpuz in #4138
  • perf(sql): speed up GROUP BY and JOIN in case of very small fixed-size keys by @puzpuzpuz in #4134
  • perf(sql): add JIT compilation support for string/binary null check by @mtopolnik in #4177
  • perf(sql): improve parallel group by detection when aliasing columns by @nwoolmer in #4190
  • perf(sql): avoid full table scan in ASOF and LT JOIN with no additional columns by @puzpuzpuz in #4199
  • perf(ilp): fix ingress perf issue for small, but frequent transactions by @bluestreak01 in #4221

New features

  • feat(ilp): make ILP over HTTP transactional for single table by @ideoma in #4110
  • feat(ilp): ILP client supports HTTP as a transport by @jerrinot in #4111
  • feat(ilp): Influx Line Protocol client configuration via strings by @jerrinot in #4166
  • feat(conf): add new configuration settings to server.conf (including Enterprise settings) by @amunra in #4175
  • feat(sql): add approx_count_distinct() SQL function by @piotrrzysko in #4083
  • feat(core): enable WAL tables by default by @bluestreak01 in #4223

Fixes and other improvements

  • fix(http): fix CSV import for files larger than 2GB by @puzpuzpuz in #4132
  • fix(http): fix HTTP protocol errors following non-successful requests by @ideoma in #4125
  • fix(core): fix database stuck on startup after some table drops by @ideoma in #4152
  • fix(core): fix wal resume exception after table suspended because of an error by @ideoma in #4162
  • fix(core): communicate posix_fallocate's return value via errno by @eugenels in #4158
  • fix(sql): fix exception when running insert as select by @ideoma in #4157
  • fix(core): fix invalid table writer state after ALTER TABLE SQUASH PARTITIONS by @puzpuzpuz in #4153
  • fix(core): disable query cancellation and timeout in WAL apply job by @bziobrowski in #4176
  • fix(sql): fix NullPointerException in LATEST ON with nested query by @puzpuzpuz in #4192
  • fix(core): fix errors / data inconsistencies after restoring from a snapshot by @ideoma in #4205
  • fix(sql): enable parallel group-by on servers with fewer than 4 cores by @nwoolmer in #4208
  • fix(core): fix snapshot restore to correctly restore tables when snapshot is taken under heavy DDL load by @ideoma in #4212
  • fix(pgwire): fix a memory leak when using prepared statement and UUID columns by @jerrinot in #4214

New Contributors

Full Changelog: 7.3.9...7.3.10

Don't miss a new questdb release

NewReleases is sending notifications on new releases.