This release contains performance improvements and bug fixes since the 2.18.2 release. We recommend that you upgrade at the next available opportunity.
- Improved concurrency of
INSERT
,UPDATE
, andDELETE
operations on the columnstore by no longer blocking DML statements during the recompression of a chunk. - Improved system performance during continuous aggregate refreshes by breaking them into smaller batches. This reduces systems pressure and minimizes the risk of spilling to disk.
- Faster and more up-to-date results for queries against continuous aggregates by materializing the most recent data first, as opposed to old data first in prior versions.
- Faster analytical queries with SIMD vectorization of aggregations over text columns and
GROUP BY
over multiple columns. - Enable optimizing the chunk size for better query performance in the columnstore by merging them with
merge_chunk
.
Deprecation warning
This is the last minor release supporting PostgreSQL 14. Starting with the next minor version of TimescaleDB, only Postgres 15, 16, and 17 will be supported.
Downgrading of 2.19.0
This release introduces custom bool compression. If you enable this feature with enable_bool_compression
and need to revert it, use this script to convert the columns back to their previous state. TimescaleDB versions prior to 2.19.0 do not support this new type.
Features
- #7586 Vectorized aggregation with grouping by a single text column
- #7632 Optimize recompression for chunks without segmentby
- #7655 Support vectorized aggregation on hypercore TAM
- #7669 Add support for merging compressed chunks
- #7701 Implement a custom compression algorithm for bool columns. It is in early access and can undergo backwards-incompatible changes. For testing, enable it using
timescaledb.enable_bool_compression = on
- #7707 Support
ALTER COLUMN SET NOT NULL
on compressed chunks - #7765 Allow
tsdb
as alias fortimescaledb
inWITH
andSET
clauses - #7786 Show a warning for inefficient
compress_chunk_time_interval
configuration - #7788 Add a callback to
mem_guard
for background workers - #7789 Do not recompress segmentwise when default order by is empty
- #7790 Add a configurable incremental CAgg refresh policy
Bugfixes
- #7665 Block merging of frozen chunks
- #7673 Don't abort additional
INSERT
s when hitting the first conflict - #7714 Fix the wrong result when compressed
NULL
values were confused with default values. This happened for a very particular order of events. - #7747 Block TAM rewrites with incompatible GUC setting
- #7748 Crash in the segmentwise recompression
- #7764 Fix compression settings handling in hypercore TAM
- #7768 Remove costing index scan of hypertable parent
- #7799 Handle the
DEFAULT
table access name inALTER TABLE
GUCs
enable_bool_compression
: enable the BOOL compression algorithm, default:OFF
enable_exclusive_locking_recompression
: enable exclusive locking during recompression (legacy mode), default:OFF
Thanks
- @bjornuppeke for reporting a problem with INSERT INTO ... ON CONFLICT DO NOTHING on compressed chunks
- @kav23alex for reporting a segmentation fault on ALTER TABLE with DEFAULT