Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2.18.0 #7596

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

pallavisontakke
Copy link
Contributor

@pallavisontakke pallavisontakke commented Jan 16, 2025

This release introduces the ability to add secondary indexes to the columnstore, improves group by and filtering performance through columnstore vectorization, and contains the highly upvoted community request of transition table support. We recommend that you upgrade at the next available opportunity.

Highlighted features in TimescaleDB v2.17.0

  • The ability to add secondary indexes to the columnstore through the new hypercore table access method.
  • Significant performance improvements through vectorization (SIMD) for aggregations using a group by with one column and/or using a filter clause when querying the columnstore.
  • Hypertables support triggers for transition tables, which is one of the most upvoted community feature requests.
  • Updated methods to manage Timescale's hybrid row-columnar store (hypercore) that highlight the usage of the columnstore which includes both an optimized columnar format as well as compression.

Dropping support for Bitnami images

After the recent change in Bitnami’s LTS support policy, we are no longer building Bitnami images for TimescaleDB. We recommend using the official TimescaleDB Docker image

Deprecation Notice

We are deprecating the following parameters, functions, procedures and views. They will be removed with the next major release of TimescaleDB. Please find the replacements in the table below:

Deprecated Replacement Type
decompress_chunk convert_to_rowstore Procedure
compress_chunk convert_to_columnstore Procedure
add_compression_policy add_columnstore_policy Function
remove_compression_policy remove_columnstore_policy Function
hypertable_compression_stats hypertable_columnstore_stats Function
chunk_compression_stats chunk_columnstore_stats Function
hypertable_compression_settings hypertable_columnstore_settings View
chunk_compression_settings chunk_columnstore_settings View
compression_settings columnstore_settings View
timescaledb.compress timescaledb.enable_columnstore Parameter
timescaledb.compress_segmentby timescaledb.segmentby Parameter
timescaledb.compress_orderby timescaledb.orderby Parameter

Features

Bugfixes

Thanks

  • @bharrisau for reporting the segfault when creating chunks.
  • @k-rus for suggesting that we add a hint when hypertable creation fails.
  • @pgloader for reporting the issue in an internal background job.
  • @staticlibs for sending the pull request that improves the transaction check in CAGG refresh.
  • @uasiddiqi for reporting the aggregated compressed column not found error.

Disable-check: force-changelog-file

Copy link

codecov bot commented Jan 16, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 82.32%. Comparing base (59f50f2) to head (996eb05).
Report is 710 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7596      +/-   ##
==========================================
+ Coverage   80.06%   82.32%   +2.25%     
==========================================
  Files         190      239      +49     
  Lines       37181    44171    +6990     
  Branches     9450    11104    +1654     
==========================================
+ Hits        29770    36363    +6593     
- Misses       2997     3426     +429     
+ Partials     4414     4382      -32     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@philkra philkra added this to the TimescaleDB 2.18.0 milestone Jan 16, 2025
Copy link
Contributor

@billy-the-fish billy-the-fish left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couple of small suggestions.

CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
@svenklemm
Copy link
Member

We usually add a section to the top with some additional context for the main new feature of a minor release

@svenklemm
Copy link
Member

I think we are missing a note about bitnami deprecation.

Copy link
Contributor

@atovpeko atovpeko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few nitpicks

CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
Copy link
Contributor

@philkra philkra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
@philkra
Copy link
Contributor

philkra commented Jan 22, 2025

@svenklemm addressed #7596 (comment) and #7596 (comment)

@philkra philkra enabled auto-merge (squash) January 23, 2025 10:06
@philkra philkra disabled auto-merge January 23, 2025 10:06
CHANGELOG.md Outdated Show resolved Hide resolved
@svenklemm svenklemm force-pushed the release-2.18.0-main branch 6 times, most recently from 9d81de0 to bf8d1e5 Compare January 23, 2025 12:50
* #7557: Fix null handling for in-memory tuple filtering.
* #7566: Improve transaction check in CAGG refresh.
* #7584: Fix NaN-handling for vectorized aggregation.
* #7598: Match the Postgres NaN comparison behavior in WHERE clause over compressed tables.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* #7598: Match the Postgres NaN comparison behavior in WHERE clause over compressed tables.
* #7598: Match the PostgreSQL NaN comparison behavior in WHERE clause over compressed tables.

@svenklemm svenklemm force-pushed the release-2.18.0-main branch from 53cb57b to 996eb05 Compare January 24, 2025 00:39
This release introduces the ability to add secondary indexes to the columnstore, improves group by and filtering performance through columnstore vectorization, and contains the highly upvoted community request of transition table support. We recommend that you upgrade at the next available opportunity.

**Highlighted features in TimescaleDB v2.18.0**

* The ability to add secondary indexes to the columnstore through the new hypercore table access method.
* Significant performance improvements through vectorization (`SIMD`) for aggregations using a group by with one column and/or using a filter clause when querying the columnstore.
* Hypertables support triggers for transition tables, which is one of the most upvoted community feature requests.
* Updated methods to manage Timescale's hybrid row-columnar store (hypercore) that highlight the usage of the columnstore which includes both an optimized columnar format as well as compression.

**Dropping support for Bitnami images**

After the recent change in Bitnami’s [LTS support policy](bitnami/containers#75671), we are no longer building Bitnami images for TimescaleDB. We recommend using the [official TimescaleDB Docker image](https://hub.docker.com/r/timescale/timescaledb-ha)

**Deprecation Notice**

We are deprecating the following parameters, functions, procedures and views. They will be removed with the next major release of TimescaleDB. Please find the replacements in the table below:

| Deprecated | Replacement | Type |
| --- | --- | --- |
| decompress_chunk | convert_to_rowstore | Procedure |
| compress_chunk | convert_to_columnstore | Procedure |
| add_compression_policy | add_columnstore_policy | Function |
| remove_compression_policy | remove_columnstore_policy | Function |
| hypertable_compression_stats | hypertable_columnstore_stats | Function |
| chunk_compression_stats | chunk_columnstore_stats | Function |
| hypertable_compression_settings | hypertable_columnstore_settings | View |
| chunk_compression_settings | chunk_columnstore_settings | View |
| compression_settings | columnstore_settings | View |
| timescaledb.compress | timescaledb.enable_columnstore | Parameter |
| timescaledb.compress_segmentby | timescaledb.segmentby | Parameter |
| timescaledb.compress_orderby  | timescaledb.orderby | Parameter |

**Features**
* timescale#7341: Vectorized aggregation with grouping by one fixed-size by-value compressed column (such as arithmetic types).
* timescale#7104: Hypercore table access method.
* timescale#6901: Add hypertable support for transition tables.
* timescale#7482: Optimize recompression of partially compressed chunks.
* timescale#7458: Support vectorized aggregation with aggregate `filter` clauses that are also vectorizable.
* timescale#7433: Add support for merging chunks.
* timescale#7271: Push down `order by` in real-time continuous aggregate queries.
* timescale#7455: Support `drop not null` on compressed hypertables.
* timescale#7295: Support `alter table set access method` on hypertable.
* timescale#7411: Change parameter name to enable hypercore table access method.
* timescale#7436: Add index creation on `order by` columns.
* timescale#7443: Add hypercore function and view aliases.
* timescale#7521: Add optional `force` argument to `refresh_continuous_aggregate`.
* timescale#7528: Transform sorting on `time_bucket` to sorting on time for compressed chunks in some cases.
* timescale#7565: Add hint when hypertable creation fails.
* timescale#7390: Disable custom `hashagg` planner code.
* timescale#7587: Add `include_tiered_data` parameter to `add_continuous_aggregate_policy` API.
* timescale#7486: Prevent building against PostgreSQL versions with broken ABI.
* timescale#7412: Add [GUC](https://www.postgresql.org/docs/current/acronyms.html#:~:text=GUC) for the `hypercore_use_access_method` default.
* timescale#7413: Add GUC for segmentwise recompression.

**Bugfixes**
* timescale#7378: Remove obsolete job referencing `policy_job_error_retention`.
* timescale#7409: Update `bgw_job` table when altering procedure.
* timescale#7410: Fix the `aggregated compressed column not found` error on aggregation query.
* timescale#7426: Fix `datetime` parsing error in chunk constraint creation.
* timescale#7432: Verify that the heap tuple is valid before using.
* timescale#7434: Fix the segfault when internally setting the replica identity for a given chunk.
* timescale#7488: Emit error for transition table trigger on chunks.
* timescale#7514: Fix the error: `invalid child of chunk append`.
* timescale#7517: Fix the performance regression on the `cagg_migrate` procedure.
* timescale#7527: Restart scheduler on error.
* timescale#7557: Fix null handling for in-memory tuple filtering.
* timescale#7566: Improve transaction check in CAGG refresh.
* timescale#7584: Fix NaN-handling for vectorized aggregation.
* timescale#7598: Match the Postgres NaN comparison behavior in WHERE clause over compressed tables.

**Thanks**
* @bharrisau for reporting the segfault when creating chunks.
* @jakehedlund for reporting the incompatible NaN behavior in WHERE clause over compressed tables.
* @k-rus for suggesting that we add a hint when hypertable creation fails.
* @staticlibs for sending the pull request that improves the transaction check in CAGG refresh.
* @uasiddiqi for reporting the `aggregated compressed column not found` error.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants