GitHub user vovik0134 added a comment to the discussion: [Ideas] Description of
backward-incompatible changes between Greenplum 6 and Cloudberry in the
documentation.
Regarding configuration and resource management, we were able to identify the
following backward-incompatible changes.
## Changes in configuration and resource management
### Removal of configuration parameters
The following configuration parameters have been completely removed in
Cloudberry compared to Greenplum 6:
* `wal_keep_segments` — renamed to `wal_keep_size`;
* `memory_spill_ratio`;
* `gp_resource_group_memory_limit`;
* `gp_resource_group_enable_recalculate_query_mem`;
* `gp_resource_group_cpu_ceiling_enforcement`;
* `gp_enable_gpperfmon`;
* `gp_gpperfmon_send_interval`;
* `gpperfmon_log_alert_level`;
* `gpperfmon_port`;
* `gp_log_resqueue_priority_sleep_time`;
* `dev_opt_unsafe_truncate_in_subtransaction`;
* `gp_add_column_inherits_table_setting`;
* `gp_allow_rename_relation_without_lock`;
* `gp_count_host_segments_using_address`;
* `gp_eager_agg_distinct_pruning`;
* `gp_eager_one_phase_agg`;
* `gp_eager_preunique`;
* `gp_enable_exchange_default_partition`;
* `gp_enable_mk_sort`;
* `gp_enable_motion_mk_sort`;
* `gp_enable_sort_distinct`;
* `gp_ignore_window_exclude`;
* `gp_indexcheck_vacuum`;
* `gp_partitioning_dynamic_selection_log`;
* `gp_safefswritesize`;
* `gp_use_synchronize_seqscans_catalog_vacuum_full`;
* `optimizer_analyze_enable_merge_of_leaf_stats`;
* `optimizer_enable_dml_triggers`;
* `optimizer_enable_partial_index`;
* `optimizer_prune_unused_columns`.
**How to detect**
Check the application codebase for uses of the listed configuration parameters.
**How to fix**
Make the corresponding changes in the application codebase by removing the use
of the deleted configuration parameters.
### Change in possible values of the `password_encryption` parameter
Starting with PostgreSQL kernel version 10, the type of the
`password_encryption` parameter and the set of possible values have changed.
In Greenplum 6, the parameter has the following type and possible values:
```sql
SELECT vartype, enumvals FROM pg_settings WHERE name = 'password_encryption';
vartype | enumvals
---------+----------
bool |
(1 row)
```
In Cloudberry, the parameter has the following type and possible values:
```sql
SELECT vartype, enumvals FROM pg_settings WHERE name = 'password_encryption';
vartype | enumvals
---------+---------------------
enum | {md5,scram-sha-256}
(1 row)
```
**How to detect**
Check the application codebase for uses of the `password_encryption` parameter
and take the changes into account.
**How to fix**
Wherever the `password_encryption` parameter is used, replace the value with
`md5`. The `scram-sha-256` value is also allowed, but in the current service
version it is supported with limitations.
The fix can be applied only after the upgrade.
### Changes in default parameter values
In Cloudberry, compared to Greenplum 6, the default values of the following
parameters have changed:
| Parameter | Greenplum 6 | Cloudberry |
|--------------------------------|------------:|-----------:|
| `wal_level` | `archive` | `replica` |
| `autovacuum_vacuum_cost_delay` | `20ms` | `2ms` |
| `checkpoint_completion_target` | 0.5 | 0.9 |
| `extra_float_digits` | 0 | 1 |
| `gp_interconnect_address_type` | `wildcard` | `unicast` |
| `autovacuum` | `off` | `on` for `template0` |
| `optimizer_enable_orderedagg` | `off` | `on` |
| `vacuum_cost_page_miss` | 10 | 2 |
**How to detect**
Most of these parameters are system-level parameters and affect operation only
indirectly. `extra_float_digits` stands out because it can affect query results.
**How to fix**
In places where the effect of the new `extra_float_digits` value is observed,
explicitly set `extra_float_digits = 0` at the session or transaction level.
### Possible changes in query execution plans
Cloudberry contains many changes and improvements in the GPORCA optimizer that
may change the query execution plan. Queries will not “break” logically, but
they may start executing differently.
Things to consider:
* New parameters affecting query plan construction have appeared:
* `enable_partitionwise_aggregate`;
* `enable_partitionwise_join`;
* `enable_parallel`;
* `enable_parallel_dedup_semi_join`;
* `enable_parallel_hash`;
* `enable_parallel_append`;
* `enable_parallel_dedup_semi_reverse_join`;
* `enable_parallel_semi_join`;
* `jit`;
* `jit_above_cost`;
* `jit_dump_bitcode`;
* `jit_expressions`;
* `jit_inline_above_cost`;
* `jit_optimize_above_cost`;
* `jit_tuple_deforming`.
* GPORCA does not support multi-level partitioned tables.
**How to detect**
Capture baseline plans for critical queries before migrating to Cloudberry:
```sql
EXPLAIN (ANALYZE, VERBOSE, COSTS, BUFFERS) <query>;
```
**How to fix**
Depending on the nature of the plan changes and their criticality, rewrite the
problematic query or adjust the parameters.
### Extensions merged into the core
In Cloudberry, the following extensions have been removed, and their
functionality has been moved into the core:
* `gp_parallel_retrieve_cursor`;
* `gp_array_agg`;
* `gp_percentile_agg`.
**How to detect**
Check whether these extensions are installed and whether they are used in your
codebase:
```sql
SELECT extname, extversion
FROM pg_extension
WHERE extname IN ('gp_parallel_retrieve_cursor', 'gp_array_agg',
'gp_percentile_agg');
```
**How to fix**
If necessary, adapt the application codebase and scripts to use the built-in
functionality.
GitHub link:
https://github.com/apache/cloudberry/discussions/1816#discussioncomment-17260358
----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]