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 and DELETE operations on the columnstore by no longer blocking DML statements during the recompression of a chunk.
- Improved system performance during Continuous Aggregates refreshes by breaking them into smaller batches which 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 (vs old data first in prior versions).
- Faster analytical queries with SIMD vectorization of aggregations over text columns and group by over multiple column
- Enable optimizing chunk size for faster query performance on the columnstore by adding support for merging columnstore chunks to the merge_chunk API.
Deprecation warning
This is the last minor release supporting PostgreSQL 14. Starting with the 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 via the enable_bool_compression
and must downgrade to a previous, please use the following script to convert the columns back to their previous state. TimescaleDB versions prior to 2.19.0 do not know how to handle 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 experimental 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 for timescaledb in WITH and SET clauses
- #7786 Show warning for inefficient compress_chunk_time_interval configuration
- #7788 Add callback to mem_guard for background workers
- #7789 Do not recompress segmentwise when default order by is empty
- #7790 Add configurable Incremental CAgg Refresh Policy
Bugfixes
- #7665 Block merging of frozen chunks
- #7673 Don't abort additional INSERTs when hitting first conflict
- #7714 Fixes a wrong result when compressed NULL values were confused with default values. This happened in very special circumstances with alter table added a new column with a default value, an update and compression in a very particular order.
- #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 DEFAULT table access name in ALTER 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