This release contains performance improvements and bug fixes since the 2.29.2 release. We recommend that you upgrade at the next available opportunity.
Highlighted features in TimescaleDB v2.30.0
Blazing fast LIMIT queries with the newly introduced DeferredChunkAppend. This custom node reduces planning significantly by delaying chunk expansion. During planning the hypertable stays unexpanded and only during execution are chunks enumerated on demand. Combined with the optimizations to FIRST and LAST sparse indexes, this addition executes last-point queries far more efficiently and quickly. This changes the scaling of the "What is the last reading from this sensor" query from linear with number of chunks to constant if it can be found in the most recent chunk. The true power of the custom node starts to show with increasing amount of chunks, see more elaborate benchmarks.
Features
- #10147 Support segmentwise batch sorted merge for overlapping batches
- #10292 Add
DeferredChunkAppendcustom scan - #10354 Adds DML support for concurrent compaction
- #10388 Add custom toaster for compression
Bugfixes
- #10058 Apply new sortkeys for in-memory recompression
- #10128 Include hypertable chunks in publications created with
FOR TABLES IN SCHEMA - #10325 Avoid test errors when building from a source archive without a git repository
- #10408 Verify columns and their types in
create_compressed_chunk - #10515 Fix row level security checks after dropping hypertable columns
- #9905 Potentially incorrect result of a join when the join clause contains
time_bucket - #9920 Fix the "XX000: failed to evaluate runtime constant in vectorized filter" error in some queries that use stable functions in
WHEREclause and the columnar aggregation pipeline - #10499 Potentially wrong query result when hypertable chunks are filtered out at query run time, the filter condition uses an uncorrelated subquery, and the query uses a parallel execution plan
- #10513 Remove
user_catalog_tableoption from catalog tables - #10506 Correctly match
NULLtuples to compressed batches withNULLboundaries during recompression - #10524 Shared memory leak in the chunk stats subsystem when databases are dropped
- #10535 Fix chunk merging with default sparse indexes
- #10536 Skip batch size check when direct compress is set as hypertable option
- #10539 Allow deletes from the policy chunk stats table when the database publishes all tables
GUCs
enable_deferred_chunk_append: Custom scan node for hypertables that iterates chunks at execution instead of expanding every chunk at plan time. Default: true.use_custom_toaster: Use a custom TOAST writer for compressed row inserts. Default: false.
Thanks
- @tureba for reporting the problem with building from a source archive without a git repository #10325
- @AlexFavre for reporting a failed extension update when a publication for all tables exists #10477
- @peterecofit for reporting potentially wrong query result when hypertable chunks are filtered out at query run time #10503
- @esdanieljaegers for reporting the issue and providing steps for reproduction #10511