From 42d41f2d36e0092dfbe98871cf34f8777e23872b Mon Sep 17 00:00:00 2001 From: Florin Irion Date: Thu, 3 Nov 2022 18:34:10 +0100 Subject: [PATCH 1/7] Add release notes for PGD 4.2.1 BDR-2785 --- .../pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx diff --git a/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx b/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx new file mode 100644 index 00000000000..c109325448e --- /dev/null +++ b/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx @@ -0,0 +1,20 @@ +--- +title: "Release notes for EDB Postgres Distributed version 4.2.1" +navTitle: "Version 4.2.1" +--- + +EDB Postgres Distributed version 4.2.1 is a patch release of EDB Postgres Distributed 4, which includes bug fixes for issues identified in previous versions. + +| Component | Version | Type | Description | +| --------- | ------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| BDR | 4.2.1 | Bug fix | Grant bdr.replication_status to bdr_read_all_stats (BDR-2523)

Alllow the read_all_stats role to check BDR replication information.

| +| BDR | 4.2.1 | Bug fix | Resolve hang related to `bdr.standby_slots_min_confirmed` (BDR-2445, RT80692)

Allow the WAl sender to proceed without the need to wait for the timeout after a Subscriber Only node is parted, while using standby_slot_names.

| +| BDR | 4.2.1 | Bug fix | Use two_phase slots in `bdr_init_physical` on PG14+ ()

Improve prepared transaction handling during `bdr_init_physical`.

| +| BDR | 4.2.1 | Bug fix | Add schema name to relation name in on all error messages (BDR-765) | +| BDR | 4.2.1 | Bug fix | Allow parting a node only if the node didn't already start the part process (BDR-2629)

Return with an error if a node is already in at least PART_START state.

| +| BDR | 4.2.1 | Bug fix | Don't wait for ADD CONSTRAINT progress if DDL replication is off (BDR-2645, RT86043)

The constraint validation from all nodes is not needed if DDL is not replicated, nor do PARTED or STANDBY nodes need to validate.

| +| BDR | 4.2.1 | Bug fix | Adjust `replication_set_add_ddl_filter` (BDR-2755, RT86825)

Replicate all the columns needed for the ddl_filter.

| +| BDR | 4.2.1 | Bug fix | Add maintanance to bdr.queue catalog table (BDR-2475, RT84105)

Automatically remove rows older than the `bdr.max_queue_days` (default disabled) on bdr.queue.

| +| BDR | 4.2.1 | Bug fix | Add timeout option to `bdr_init_physical` (RT8277)

The timeout does not take the time spent in other activities of `bdr_init_physical` such as creating a base backup and sending the join request.

| +| BDR | 4.2.1 | Bug fix | Abort unresolved commit scope transactions on node part (BDR-2597)

Add a new peer state PART_TX_RESOLVE. This state will abort any remaining unresolved group commit transactions from the node that's parting on the current raft leader and replicates that to the rest of the cluster.

| +| HARP | 2.2.1 | Bug fix | Fix connection leak issue (BDR-2530) | From f262c84f5241107e5c0f784052fcebec42896bde Mon Sep 17 00:00:00 2001 From: drothery-edb Date: Thu, 17 Nov 2022 05:13:43 -0500 Subject: [PATCH 2/7] copy edit and updates to landing page --- product_docs/docs/pgd/4/rel_notes/index.mdx | 2 ++ product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/product_docs/docs/pgd/4/rel_notes/index.mdx b/product_docs/docs/pgd/4/rel_notes/index.mdx index f57ae6a81e4..c4ab3152819 100644 --- a/product_docs/docs/pgd/4/rel_notes/index.mdx +++ b/product_docs/docs/pgd/4/rel_notes/index.mdx @@ -2,6 +2,7 @@ title: "EDB Postgres Distributed Release notes" navTitle: "Release notes" navigation: +- pgd_4.2.1_rel_notes - pgd_4.2.0_rel_notes - pgd_4.1.1_rel_notes - pgd_4.1.0_rel_notes @@ -15,6 +16,7 @@ The EDB Postgres Distributed documentation describes the latest version of EDB P | Release Date | EDB Postgres Distributed | BDR | HARP | CLI | TPAexec | | ------------ | ---------------------------- | ----- | ----- | --- | -------------------------------------------------------------------------------- | +| 2022 Nov 18 | [4.2.1](pgd_4.2.1_rel_notes) | 4.2.1 | 2.2.0 | 1.1.0 | [23.5](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/235/) | | 2022 Aug 22 | [4.2.0](pgd_4.2.0_rel_notes) | 4.2.0 | 2.2.0 | 1.1.0 | [23.5](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/235/) | | 2022 June 21 | [4.1.1](pgd_4.1.1_rel_notes) | 4.1.1 | 2.1.1 | 1.0.0 | [23.2](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/232/) | | 2022 May 17 | [4.1.0](pgd_4.1.0_rel_notes) | 4.1.0 | 2.1.0 | 1.0.0 | [23.1](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/231/) | diff --git a/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx b/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx index c109325448e..f902561e274 100644 --- a/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx +++ b/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx @@ -7,8 +7,8 @@ EDB Postgres Distributed version 4.2.1 is a patch release of EDB Postgres Distri | Component | Version | Type | Description | | --------- | ------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| BDR | 4.2.1 | Bug fix | Grant bdr.replication_status to bdr_read_all_stats (BDR-2523)

Alllow the read_all_stats role to check BDR replication information.

| -| BDR | 4.2.1 | Bug fix | Resolve hang related to `bdr.standby_slots_min_confirmed` (BDR-2445, RT80692)

Allow the WAl sender to proceed without the need to wait for the timeout after a Subscriber Only node is parted, while using standby_slot_names.

| +| BDR | 4.2.1 | Bug fix | Grant `bdr.replication_status to `bdr_read_all_stats` (BDR-2523)

Alllow the `read_all_stats` role to check BDR replication information.

| +| BDR | 4.2.1 | Bug fix | Resolve hang related to `bdr.standby_slots_min_confirmed` (BDR-2445, RT80692)

Allow the WAl sender to proceed without the need to wait for the timeout after a Subscriber Only node is parted, while using `standby_slot_names`.

| | BDR | 4.2.1 | Bug fix | Use two_phase slots in `bdr_init_physical` on PG14+ ()

Improve prepared transaction handling during `bdr_init_physical`.

| | BDR | 4.2.1 | Bug fix | Add schema name to relation name in on all error messages (BDR-765) | | BDR | 4.2.1 | Bug fix | Allow parting a node only if the node didn't already start the part process (BDR-2629)

Return with an error if a node is already in at least PART_START state.

| From 4390b9eb28f2dd6fcd17357bf237a296488b7b13 Mon Sep 17 00:00:00 2001 From: drothery-edb Date: Thu, 17 Nov 2022 05:53:21 -0500 Subject: [PATCH 3/7] fixed release date --- product_docs/docs/pgd/4/rel_notes/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/pgd/4/rel_notes/index.mdx b/product_docs/docs/pgd/4/rel_notes/index.mdx index c4ab3152819..353841bf1c2 100644 --- a/product_docs/docs/pgd/4/rel_notes/index.mdx +++ b/product_docs/docs/pgd/4/rel_notes/index.mdx @@ -16,7 +16,7 @@ The EDB Postgres Distributed documentation describes the latest version of EDB P | Release Date | EDB Postgres Distributed | BDR | HARP | CLI | TPAexec | | ------------ | ---------------------------- | ----- | ----- | --- | -------------------------------------------------------------------------------- | -| 2022 Nov 18 | [4.2.1](pgd_4.2.1_rel_notes) | 4.2.1 | 2.2.0 | 1.1.0 | [23.5](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/235/) | +| 2022 Nov 16 | [4.2.1](pgd_4.2.1_rel_notes) | 4.2.1 | 2.2.0 | 1.1.0 | [23.5](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/235/) | | 2022 Aug 22 | [4.2.0](pgd_4.2.0_rel_notes) | 4.2.0 | 2.2.0 | 1.1.0 | [23.5](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/235/) | | 2022 June 21 | [4.1.1](pgd_4.1.1_rel_notes) | 4.1.1 | 2.1.1 | 1.0.0 | [23.2](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/232/) | | 2022 May 17 | [4.1.0](pgd_4.1.0_rel_notes) | 4.1.0 | 2.1.0 | 1.0.0 | [23.1](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/231/) | From 32c555ac909d0e27f955e15790c409eedff95cbe Mon Sep 17 00:00:00 2001 From: Dee Dee Rothery <83650384+drothery-edb@users.noreply.github.com> Date: Thu, 17 Nov 2022 06:01:43 -0500 Subject: [PATCH 4/7] Removed empty parens --- product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx b/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx index f902561e274..78fa71db6b7 100644 --- a/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx +++ b/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx @@ -9,7 +9,7 @@ EDB Postgres Distributed version 4.2.1 is a patch release of EDB Postgres Distri | --------- | ------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | BDR | 4.2.1 | Bug fix | Grant `bdr.replication_status to `bdr_read_all_stats` (BDR-2523)

Alllow the `read_all_stats` role to check BDR replication information.

| | BDR | 4.2.1 | Bug fix | Resolve hang related to `bdr.standby_slots_min_confirmed` (BDR-2445, RT80692)

Allow the WAl sender to proceed without the need to wait for the timeout after a Subscriber Only node is parted, while using `standby_slot_names`.

| -| BDR | 4.2.1 | Bug fix | Use two_phase slots in `bdr_init_physical` on PG14+ ()

Improve prepared transaction handling during `bdr_init_physical`.

| +| BDR | 4.2.1 | Bug fix | Use two_phase slots in `bdr_init_physical` on PG14+

Improve prepared transaction handling during `bdr_init_physical`.

| | BDR | 4.2.1 | Bug fix | Add schema name to relation name in on all error messages (BDR-765) | | BDR | 4.2.1 | Bug fix | Allow parting a node only if the node didn't already start the part process (BDR-2629)

Return with an error if a node is already in at least PART_START state.

| | BDR | 4.2.1 | Bug fix | Don't wait for ADD CONSTRAINT progress if DDL replication is off (BDR-2645, RT86043)

The constraint validation from all nodes is not needed if DDL is not replicated, nor do PARTED or STANDBY nodes need to validate.

| From 29dc40c8049110783492dd3b3c47c2a83b20375c Mon Sep 17 00:00:00 2001 From: drothery-edb Date: Thu, 17 Nov 2022 06:04:23 -0500 Subject: [PATCH 5/7] updated HARP and TPAexec versions --- product_docs/docs/pgd/4/rel_notes/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/pgd/4/rel_notes/index.mdx b/product_docs/docs/pgd/4/rel_notes/index.mdx index 353841bf1c2..196bb2cdda8 100644 --- a/product_docs/docs/pgd/4/rel_notes/index.mdx +++ b/product_docs/docs/pgd/4/rel_notes/index.mdx @@ -16,7 +16,7 @@ The EDB Postgres Distributed documentation describes the latest version of EDB P | Release Date | EDB Postgres Distributed | BDR | HARP | CLI | TPAexec | | ------------ | ---------------------------- | ----- | ----- | --- | -------------------------------------------------------------------------------- | -| 2022 Nov 16 | [4.2.1](pgd_4.2.1_rel_notes) | 4.2.1 | 2.2.0 | 1.1.0 | [23.5](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/235/) | +| 2022 Nov 16 | [4.2.1](pgd_4.2.1_rel_notes) | 4.2.1 | 2.2.1 | 1.1.0 | [23.7](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/237/) | | 2022 Aug 22 | [4.2.0](pgd_4.2.0_rel_notes) | 4.2.0 | 2.2.0 | 1.1.0 | [23.5](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/235/) | | 2022 June 21 | [4.1.1](pgd_4.1.1_rel_notes) | 4.1.1 | 2.1.1 | 1.0.0 | [23.2](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/232/) | | 2022 May 17 | [4.1.0](pgd_4.1.0_rel_notes) | 4.1.0 | 2.1.0 | 1.0.0 | [23.1](https://techsupport.enterprisedb.com/customer_portal/sw/tpa/trunk/231/) | From 742fadfd0c491fa1ff9958aa091925ff19e9c0aa Mon Sep 17 00:00:00 2001 From: drothery-edb Date: Thu, 17 Nov 2022 08:01:43 -0500 Subject: [PATCH 6/7] added 3.6 and 3.7 rel notes --- .../docs/pgd/3.6/rel_notes-pglogical.mdx | 985 ++++++++++++++++++ product_docs/docs/pgd/3.6/release-notes.mdx | 18 +- .../docs/pgd/3.7/bdr/release-notes.mdx | 34 + .../docs/pgd/3.7/pglogical/release-notes.mdx | 24 + .../pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx | 26 +- 5 files changed, 1073 insertions(+), 14 deletions(-) create mode 100644 product_docs/docs/pgd/3.6/rel_notes-pglogical.mdx diff --git a/product_docs/docs/pgd/3.6/rel_notes-pglogical.mdx b/product_docs/docs/pgd/3.6/rel_notes-pglogical.mdx new file mode 100644 index 00000000000..c480b3edfac --- /dev/null +++ b/product_docs/docs/pgd/3.6/rel_notes-pglogical.mdx @@ -0,0 +1,985 @@ +--- +title: pglogical Release Notes +--- + +## pglogical 3.6.33 + +This is a maintenance release for PGLogical 3.6 which includes fixes for issues +identified previously. + +- Don't replicate TRUNCATE as global message (BDR-2821, RT87453) + The TRUNCATE command now takes the replication set into account. + +### Upgrades + +This release supports upgrading from following versions of pglogical: + + - 3.6.23 and higher + - 2.4.0 and 2.4.1 + - 2.3.3 and 2.3.4 + +## pglogical 3.6.32 + +This is a maintenance release for PGLogical 3.6. It is equivalent to +3.6.31, but still gets a release and a version bump to match the BDR +version number. + +### Upgrades + +This release supports upgrading from following versions of pglogical: + + - 3.6.23 and higher + - 2.4.0 and 2.4.1 + - 2.3.3 and 2.3.4 + +## pglogical 3.6.31 + +This is a maintenance release for PGLogical 3.6 which includes fixes for issues +identified previously. + +### Resolved Issues + +- Keep the `lock_timeout` as configured on non-CAMO-partner BDR nodes (BDR-1916) + A CAMO partner uses a low `lock_timeout` when applying transactions + from its origin node. This was inadvertently done for all BDR nodes + rather than just the CAMO partner, which may have led to spurious + `lock_timeout` errors on pglogical writer processes on normal BDR + nodes. + +- Prevent walsender processes spinning when facing lagging standby slots (RT80295, RT78290) + Correct signaling to reset a latch so that a walsender process does + consume 100% of a CPU in case one of the standby slots is lagging + behind. + +### Upgrades + +This release supports upgrading from following versions of pglogical: + + - 3.6.23 and higher + - 2.4.0 and 2.4.1 + - 2.3.3 and 2.3.4 + +## pglogical 3.6.30 + +This is a maintenance release for PGLogical 3.6 which includes fixes for issues +identified previously. + +### Resolved Issues + +- Push snapshot in SPI writer for every transaction (RT76368) + This is required in newer versions of Postgres. + +### Upgrades + +This release supports upgrading from following versions of pglogical: + + - 3.6.23 and higher + - 2.4.0 and 2.4.1 + - 2.3.3 and 2.3.4 + +## pglogical 3.6.29 + +This is a maintenance release for PGLogical 3.6 which includes fixes for issues +identified previously. + +### Resolved Issues + +- Stop replication in case of a CAMO misconfiguration (RT74906, BDR-1724) + In case a normal BDR node was treated as a CAMO partner, but it itself is + not configured as such via `bdr.camo_partner_of`, the node applied all + transactional changes, but did not ever commit them. Correct this to + throw a FATAL error and halt replication instead of silently ignoring + transactions. This will allow for the node to resume replication once + configured properly. + +## pglogical 3.6.28 + +This is a maintenance release for pglogical 3.6 which includes fixes for issues +identified previously. + +### Resolved Issues + +- Don't wait on own replication slot when waiting for standby_slot_names (RT74036) + The walsenders that use slots named in standby_slot_names should not + wait for anything, otherwise we might wait forever. + +- Close partitions when get replication info about tables in repsets (RT74658) + The partitions are skipped as the replication is handeld from the + parent table, these partitions were not closed, thus issuing the reference leak + warning. + +- Enabling async conflict resolution for explicit 2PC (BDR-1609, RT71298) + Continue applying the transaction using the async conflict resolution + for explicit two phase commit. + +### Improvements + +- Allow upgrades from pglogical 2.4.1 + +## pglogical 3.6.27 + +This is a maintenance release for pglogical 3.6 which includes fixes for issues +identified previously. + +### Resolved Issues + +- Don't materialize remote tuple slot for conflict reporting (BDR-734, RT71005) + Otherwise we might fill in defaults for any missing columns instead of + keeping the existing value. + +- Don't drop temporary synchronization replication slots which may still be + needed by the synchronization connection (BDR-647, RT70760, RT68455, RT68352) + Instead of doing cleanup periodically in the background, make the walsender + that creates the slot responsible for the cleanup. Similar to how native + temporary slots work in newer versions of PostgreSQL. + +- Fix memory leak in the pglogical COPY handler (BDR-1219, RT72091) + This fixes memory leak when synchronizing large tables. + +- Fix snapshot handling around our internal executor processing (BDR-904) + Recent changes in PostgreSQL uncovered minor issues in snapshot handling in + row filtering and slot manipulation. This is mostly to improve compatibility + with latest minor version of PostgreSQL. + +### Improvements + +- Allow upgrades from pglogical 2.4.0 + +- Allow binary and internal protocol on more hardware combinations. This + currently only affects internal testing. + +## pglogical 3.6.26 + +This is a security and maintenance release for pglogical 3.6 which includes +fixes for issues identified previously. + +### Resolved Issues + +- Fix pg_dump/pg_restore execution (CVE-2021-3515) + Correctly escape the connection string for both pg_dump and + pg_restore so that exotic database and user names are handled + correctly. + Reported by Pedro Gallegos + +- Fix potential divergence after physical failover (BDR-365, RT68894, RM19886) + The `pglogical.standby_slot_names` setting now also protects subscriber + standbys using those slots from being behind. Previously the slot on provider + could move ahead of subscriber's standby causing data loss on failover of + subscriber to that standby. Configuring `pglogical.standby_slot_names` on + the subscriber for stanbys that are promotion targets prevents this issue + now. + +- Fix writer crash caused by concurrent relcache invalidation (RT70549) + This crash is caused by a race with concurrent relcache invalidation + deliveries. This was triggered by concurrent execution of commands that + invalidate whole relcache (for example `VACUUM FULL`). + +- Don't re-enter worker error handling loop recursive + This should help make what happens clearer in any cases where we do + encounter errors during error processing. + +### Other Changes + +- Document `pglogical.alter_subscription_set_conflict_resolver` + This functions allows configuration of conflict resolution used for the + subscription. + +### Upgrades + +This release supports upgrading from following versions of pglogical: + + - 2.3.3 + - 2.3.4 + - 3.6.23 and higher + +## pglogical 3.6.25 + +This is a security and maintenance release for pglogical 3.6 which includes +fixes for issues identified previously. + +### Resolved Issues + +- Correctly set verbosity of `pg_ctl` command when executed from + `pglogical_create_subscriber` + The `pg_ctl` was always executed in silent mode even when `-v` option was + given to `pglogical_create_subscriber` in previous versions of pglogical. + + This allows for getting more meaningful troubleshooting information when + analyzing issues with `pglogical_create_subscriber`. + +### Other Changes + +- Optimize utility command processing (RT69617) + For commands that won't affect any DB objects and don't affect pglogical + we can skip the processing early without reading any pgl or system + catalogs or calling to DDL replication plugin interfaces. + + This is optimization for systems with large number of such utility + command calls (for example using pglogical in transaction pooling). + +## pglogical 3.6.24 + +This is a security and maintenance release for pglogical 3.6 which includes +fixes for issues identified previously. + +### Resolved Issues + +- Correct cleanup of dead synchronization slots (RT69227) + Instead of statistics, use the internal process list to reliably find + backends for a given xmin. + +## pglogical 3.6.23 + +This is a security and maintenance release for pglogical 3.6 which includes +fixes for issues identified previously. + +### Resolved Issues + +- Don't replicate DDL on temporary objects (RM19491, RT69170) + Don't replicate CREATE or DROP statements on objects(table, function, + procedure, type and sequence) if they are on the "pg_temp" schema. + +### Other Changes + +- Make smart shutdown of writer timeout after half of wal_receiver_timeout (RM19310) + Otherwise it might get stuck forever when waiting in Postgres internal code. + +- Add initial support for upgrades from 2.3.3 + +- Drop support for upgrading from long deprecated version 3.2, 3.3, 3.4 and 3.5 + +## pglogical 3.6.22 + +This is a security and maintenance release for pglogical 3.6 which includes +minor features as well as fixes for issues identified previously. + +### Resolved Issues + +- Ensure that `pglogical.standby_slot_names` takes effect when + `pglogical.standby_slots_min_confirmed` is at the default value + of -1. + + On 3.6.21 and older `pglogical.standby_slot_names` was ignored + if `pglogical.standby_slot_names` is set to zero (RM19042). + + Clusters satisfying the following conditions may experience inter-node + data consistency issues after a provider failover: + + * Running pglogical 3.0.0 through to 3.6.21 inclusive; + * Using pglogical subscriptions/or providers directly (BDR3-managed + subscriptions between pairs of BDR3 nodes are unaffected); + * Have a physical standby (streaming replica) of a pglogical provider + intended as a failover candidate; + * Have `pglogical.standby_slot_names` on the provider configured to list that + physical standby; + * Have left `pglogical.standby_slots_min_confirmed` unconfigured or set it + explicitly to zero; + + This issue can cause inconsistencies between pglogical provider and subscriber + and/or between multiple subscribers when a provider is replaced using + physical replication based failover. It's possible for the subscriber(s) to + receive transactions committed to the pre-promotion original provider + that will not exist on the post-promotion replacement provider. This + causes provider/subscriber divergence. If multiple subscribers are + connected to the provider, each subscriber could also receive a different + subset of transactions from the pre-promotion provider, leading to + inter-subscriber divergence as well. + + The `pglogical.standby_slots_min_confirmed` now defaults to the newly + permitted value `-1`, meaning "all slots listed in + `pglogical.standby_slot_names`". The default of 0 on previous releases + was intended to have that effect, but instead effectively disabled + physical-before-logical replication. + + To work around the issue on older versions the operator is advised to + set `pglogical.standby_slots_min_confirmed = 100` in `postgresql.conf`. + This has no effect unless `pglogical.standby_slot_names` is also set. + + No action is generally required for this issue on BDR3 clusters. + BDR3 has its own separate protections to ensure consistency during + promotion of replicas. + +- Fix very rare replication set cache invalidation race condition which could + cause crash of a backend or walsender (RM19043, RM19244) + +- Fix very rare writer relation cache invalidation race condition which + could cause crash of the writer (RM19037) + +### Improvements + +- Add `pglogical.replication_origin_status` view which allows + `pglogical_superuser` role to see the status of replication origins. + This is normally visible only to superuser in PostgreSQL itself. + +- Improve `wal_receiver_timeout` handling introduced in 3.6.21 + Don't timeout on nodes that are doing table resynchronization but are + oterwise idle. + +## pglogical 3.6.21 + +This is a security and maintenance release for pglogical 3.6 which includes +minor features as well as fixes for issues identified previously. + +### Resolved Issues + +- Fix segmentation fault encountered when adding a partitioned table with many + partitions to replication set (RM15733, RT68352) + The segmentation fault was caused by a cache entry of one of the partitions + invalidated during copying data to the subscriber. This has been fixed by + using a valid cache entry for this purpose. + +- Fix a failure encountered when adding a large table to replication set + (RM18154, RT68455) + pglogical.replication_set_add_table() may fail to add a large table + containing millions of rows to a replication set. Similar failure may be seen + if the replication takes longer say due to a slow network between publisher + and subscriber. Server logs of the subscriber node will indicate + START_REPLICATION SLOT command failing with ERROR 42704 "replication slot + does not exist". This failure has been fixed by correcting the logic which + periodically removes unused replication slots created for synchronizing table + being added to the replication set. + +- Fix crash when running replica triggers on partitions (RM18252) + +- Prohibit INSERT ON CONFLICT and MERGE (2ndQPostgres) commands on tables + without replica identity (RM17323, RT68146) + These commands might end up doing UPDATE or DELETE which would break + replication when table does not have any replica identity. + +- Fix memory leak in executor state cache during the initial data COPY (RM17668) + This was particularly problematic when adding large tables to replication set. + +- Fix memory leak in writer INSERT processing (RM17668) + Resulted in unusually large memory use when applying of INSERTs that + affected many rows. + +- Fix race condition in invalidation handling of local_sync_status (RM17929) + This could result in receiver waiting forever for the table + resynchronization triggered by + `pglogical.alter_subscription_resynchronize_table()` to finish. + +- Fix rare race condition where reported flush lsn would be ahead of apply + lsn (RM18044) + This would mostly cause monitoring queries on provider to show odd values. + +### Improvements + +- Document limitations of using `primary_conninfo` for slot synchronization to + a standby (RM14612, RT67443) + +- Make PGL receiver respect `wal_receiver_timeout` (RM13805, RT67066) + After an unclean disconnect, the receiver process now terminates + once the `wal_receiver_timeout` is exceeded. This allows it to be + restarted and then attempt to reconnect. Prior to this release, the + TCP expiration time of the OS applied. + +## pglogical 3.6.20 + +This is a security and maintenance release for pglogical 3.6 which includes +minor features as well as fixes for issues identified previously. + +### Resolved Issues + +- Only process keepalives in writer if they come outside of transaction (RT67858) + Keepalives sent in middle of forwarded transactions could move wrong origin + forward resulting in skipping future transactions from that origin. + +- Use timestamp of slot snapshot for initial copy transaction (RM16396) + We can't set commit timestamp of individual rows correctly when doing + logical copy during subscription initialization because that would be too + slow (every row would have to have separate transaction). But we can use + the knowledge that each row had to be committed at or before the snapshot + which we use to read the data was taken. So we find the last commit in that + snapshot and use the timestamp of that commit. + This helps with time base conflict resolution against the existing data + copied during the subscription initialization. + +- Keep open the connection until `pglogical_create_subscriber` finishes (RM13649) + Set `idle_in_transaction_session_timeout` to 0 so we avoid any user setting + that could close the connection and invalidate the snapshot. + +### Improvements + +- CentOS 8 is now supported, starting with this release. + +## pglogical 3.6.19 + +This is a security and maintenance release for pglogical 3.6 which includes +minor features as well as fixes for issues identified previously. + +### Resolved Issues + +- SECURITY: Set search_path to empty for internal PGLogical SQL statements (RM15373) + Also, fully qualify all operators used internally. PGLogical is now + protected from attack risks identified in CVE-2018-1058, when the + user application avoids the insecure coding practices identified there. + +- Correct parsing of direct WAL messages (RT67762) + Custom WAL messages emitted by PGLogical (or plugins building on top + of it) can be broadcast or direct types. Decoding of the latter was + incorrect and could in rare cases (depending on the node name) lead + to "insufficient data left in message" or memory allocation errors. + Decoding of such direct WAL messages has been corrected. + +- Add pglogical.sync_failover_slots() function (RM14318) + Signal the supervisor process to restart the mechanism to synchronize the + failover slots specifyed in the "pglogical.synchronize_failover_slot_name". + +- Fix the `--extra-basebackup-args` argument passed to pg_basebackup (RM14808) + Corrects how the `pglogical_create_subscriber` tool passes on such + extra arguments to pg_backbackup. + +### Improvements + +- Add more diagnostic information to pglogical.queue message (RM15292) + A new key `info` has been added to `pglogical.queue` providing + additional information about a queued DDL operation. + +## pglogical 3.6.18 + +This is a maintenance release for pglogical 3.6 which includes minor features +as well as fixes for issues identified previously. + +### Improvements + +- Warn about failover issues if standby_slot_names is not set (RT66767, RM12973) + If pglogical.standby_slot_names is not set and a physical standby is + configured; failover to this standby will have data consistency issues as + per our documentation. However, the replica could just be a simple read + replica. In any case, we now warn on the replica about the potential data + corruption/divergence that could result if failover is desired to such a + standby. + +- Check repsets in create_subscription for pgl2 upstreams also. + +- Various improvements to systemtap integration. + +### Resolved Issues + +- Prevent a hang in case of an early error in the PGL writer (RT67433, RM14678) + +- Allow postgres to start with pglogical library loaded but activity suspended + Add start_workers commandline-only GUC to facilitate this. + +## pglogical 3.6.17 + +This is a maintenance release for pglogical 3.6 which includes minor features +as well as fixes for issues identified previously. + +### Improvements + +- Make the slot synchronization to standby more configurable (RM13111) + Added several new configuration parameters which tune the behavior of the + synchronization of logical replication slots from a primary to a standby + PostgreSQL servers. This allows for better filtering, inclusion of + non-pglogical replication sets and also using different connection string + than physical replication uses (useful when different user or database + should be used to collect information about slots). + +### Resolved Issues + +- Fix issue with UPDATEs on partitions with different physical row + representation than partition root (RM13539, RT67045) + The partitions must have same logical row as partition root they can have + different physical representation (primarily due to dropped columns). UPDATEs + on such partitions need to do special handling to remap everything correctly + otherwise constraints and not-updated TOAST columns will refer to wrong + incoming data. + +- Fix truncation of `\_tmp` slot names in sync slots + Long slot names could previously cause the temporary slot to be suffixed + by `\_tm` rather than the expected `\_tmp` suffix. + +### Support, Diagnostic and Logging Changes + +These changes don't directly change existing behaviour or add new user-facing +features. They are primarily of interest to 2ndQuadrant support operations and +for advanced diagnostic analysis. + +- Expand non-invasive tracing (SystemTap, linux-perf, DTrace, etc) + support to cover inspection of the pglogical receiver's input protocol + stream, walsender output plugin protocol stream, and other useful events. + (RM13517) + +- Add a test and debug utility that decodes captured pglogical protocol streams + into human-readable form (RM13538) + +- Improve error context logging in the pglogical writer to show more + information about the transaction being applied and its origin. + +- Fix incorrectly reported commit lsn in errcontext messages from the pglogical + heap writer (RM13796). This fix only affects logging output. The writer would + report the lsn of the original forwarded transaction not the lsn of the + immediate source transaction. + +- Add subscription, local node and peer node names to heap writer errcontext + log output. + +## pglogical 3.6.16 + +This is the sixteenth minor release of the Pglogical 3.6 series. This release +includes mostly just enables BDR 3.6.16 without any significant changes to +pglogical. + +## pglogical 3.6.15 + +This is the fifteenth minor release of the Pglogical 3.6 series. This release +includes fixes for issues identified previously. + +### Resolved Issues + +- Fix backwards-compatibility to PGLogical 2 (RM13333, RT66919) + Recent releases performed additional checks during + `create_subscription`, which are fine against other PGLogical 3 + installations, but not backwards-compatible. This release corrects + the check to account for backwards-compatibility. + +- Correct a warning about GUC nest level not being reset (EE) (RM13375) + The addition of the `lock_timeout` in 3.6.14 led to a warning being + issued for CAMO and Eager All Node transaction ("GUC nest level = 1 + at transaction start"). With this release, GUC nest levels are + properly managed and the warning no longer occurs. + +### Improvements + +- Add a new `pglogical.worker_tasks` view that tracks and records pglogical's + background worker use. The view exposes information about the number of times + a given type of worker has been restarted, how long it has been running, + whether it accomplished any useful work, and more. This offers administrators + more insight into pglogical's internal activity when diagnosing problems, + especially when joined against the `pglogical.worker_error` table. + +- Add support for rate-limiting pglogical background worker (re)launches. The + new `pglogical.min_worker_backoff_delay` configuration option sets a minimum + delay between launches of all types of pglogical background workers so that + rapid respawning of workers cannot fill the log files and or excessive load + on the system that affects other operations. + + For example, if configured with `pglogical.min_worker_backoff_delay = + '500ms'`, pglogical will not retry any given background worker startup more + often than twice per second (`1000/500 = 2`). + + A simple fixed-rate factor was deemed to be the most predictable and + production-safe initial approach. Future enhancements may add a heuristic + delay factor based on worker type, time from start to exit, number of recent + launches, etc. + + The launch backoff delay defaults to 0 (off) to prevent surprises for + upgrading users. + + A setting of `pglogical.min_worker_backoff_delay = '5s'` or similar is a + reasonable starting point, and may become the default in a future release. + +### Upgrades + +The PostgreSQL Global Development Group has phased out support for +PostgreSQL 9.4 on all Debian based distributions. Following that, +this release covers only PostgreSQL 9.5 and newer. We advise to +upgrade to a newer version. + +For RedHat based distributions, this release is still available for +PostgreSQL 9.4. + +## pglogical 3.6.14 + +This is the fourteenth minor release of the Pglogical 3.6 series. This release +includes fixes for issues identified previously. + +### Resolved Issues + +- Resolve deadlocked CAMO or Eager transactions (RM12903, RM12910) + Add a `lock_timeout` as well as an abort feedback to the origin node + to resolve distributed deadlocking due to conflicting primary key + updates. This also prevents frequent restarts and retries of the + PGL writer process for Eager All Node and sync CAMO transactions. + +## pglogical 3.6.12 + +This is the twelveth minor release of the Pglogical 3.6 series. This release +includes fixes for issues identified previously. + +### Improvements + +- Add infrastructure for `check_full_row` in DELETE operations used by + BDR 3.6.12 (RT66493) + +- Validate requested replication sets at subscribe time (RM12020, RT66310) + `pglogical.create_subscription()` now checks that all requested replication + sets actually exist on the provider node before returning. If any are + missing it will raise an ERROR like: + + `ERROR: replication set(s) "nonexistent_repset" requested by subscription are missing on provider` + + with a DETAIL message listing the full sets requested, etc. + + On prior releases subscriptions with missing repsets would fail after + `pglogical.create_subscription(...)` returned, during initial sync. The + failure would only be visible in the logs where it is much less obvious to + the user. Or if schema sync was not enable they could appear to succeed but + not populate the initial table contents. + +### Resolved Issues + +- Fix a potential deadlock at CAMO partner startup. (RM12187) + After a restart, the CAMO partner resends all confirmations for + recent CAMO protected transactions. In case these fill the internal + queue between the receiver and writer processes, a deadlock was + possible. This release ensures the receiver consumes pending + feedback messages allowing the writer to make progress. + +## pglogical 3.6.11 + +This is the eleventh minor release of the Pglogical 3.6 series. This release +includes fixes for issues identified previously. + +### Improvements + +- Implement remote_commit_flush for CAMO. (RM11564) + Additional level of robustness for CAMO, only replying when xact + is known committed and flushed on partner node. + +- Make receiver-writer shared queues of configurable size. (RM11779) + Two new GUCs are introduced: + pglogical.writer_input_queue_size (default 1MB) + pglogical.writer_output_queue_size (default 1MB) + +- Add a warning when user tries to set update_origin_change to skip + +- Add callback to request replay progress update. (RM6747) + +### Resolved Issues + +- Send TimeZone GUC when replicating DDL (RT66019) + To ensure that timezone dependent expressions in DDL get evaluated to + same value on all nodes. + +- Only use isvalid indexes when searching for conflicts (RT66036) + Indexes currently being created or failed index creations + will be ignored, to prevent concurrency issues with change apply + and `CREATE INDEX CONCURRENTLY`. + +- Fix crash when replication invalidations arrive outside a transaction (RM11159) + +- Make the receiver apply the queue before shutting down (RM11778) + Upon smart shutdown, the PGL writer no longer terminates + immediately, requiring queued transactions to be resent, but applies + already received transactions prior to shutting down. + +## pglogical 3.6.10 + +This is the tenth minor release of the Pglogical 3.6 series. This release +includes fixes for issues identified previously. + +### Improvements + +- Add support for a CAMO remote_write mode (RM6749) + +### Resolved Issues + +- COMMIT after initial sync of a table. This avoids treating the first + catchup xact as if it was part of the initial COPY, which could lead to + strange errors or false conflicts. (RM11284). + +- Remove the 4 billion row limit during the initial subscription + synchronization (RT66050). + +- Cleanup table replication cache when replication set configuration changes. + Previously we could use stale cache on multiple calls for table replication + info on same connection if user changed the configuration in meantime. + This could result in initial sync missing replicated table if the + configuration was changed while the subscription was being created. + +- Remember repsets when caching table replication info. + If the client calls the table replication info with different parameters, + we need to remember them otherwise we might return cached value for wrong + replication sets. + This could result in initial sync copying data from table which were + not supposed to be replicated. + +## pglogical 3.6.9 + +This is the ninth minor release of the Pglogical 3.6 series. This release +includes minor improvements. + +### Improvements + +- Add support for local, remote_apply and remote_write. (RM11069, RT65801) + We now accept the use of all the values that PostgreSQL accepts when configuring + the "pglogical.synchronous_commit". + +- Immediately forward all messages from the PGL receiver back to origin (BDR CAMO) + Confirmations for CAMO protected transactions flow + from the PGL writer applying the transaction back to origin node via + the PGL receiver. This process used to consume only one + confirmation message per iteration. It now consumes all pending + confirmations from the PGL writer and immediately sends them back to + the origin. It also decreases latency for BDR CAMO transactions in case + confirmations queue up. + +## pglogical 3.6.8 + +This is the eigth minor release of the Pglogical 3.6 series. This release +includes fixes for issues identified previously. + +### Resolved Issues + +- Use RelationGetIndexAttrBitmap to get pkey columns. (RT65676, RT65797) + No need to try to fetch pkey columns from index itself, we have + relcache interface that does exactly what we need and does so + in more performant way. + +## pglogical 3.6.7.1 + +This is a hot-fix release on top of 3.6.7. + +### Resolved Issues + +- Fix a protocol violation after removal of an origin. (RT65671, RM10605) + Removal of a replication subscription may lead to a walsender trying + to forward data for unknown origins. Prevent emission of an invalid + message in that case. + +## pglogical 3.6.7 + +pglogical 3.6.7 is the seventh minor release of the pglogical 3.6 series. This release includes minor new features as well as fixes for issues identified earlier. + +### Improvements + + - Replicate TRUNCATE on a partition if only parent table is published in + replication set (RT65335) + Previously, we'd skip such TRUNCATE unless the partition was also published. + - Generate `target_table_missing` for TRUNCATE which is executed against + non-existing table (RT10291) + Allows for user-configured decision if it should be a replication-stopping + issue or not. + - Improve performance of repeated UPDATEs and DELETEs executed on origin node + by caching the replication configuration of tables in a user session. + - Reduce CPU usage of receiver worker when writer queue is full (RM10370). + +### Resolved Issues + + - Fix partition replication set membership detection for multi-level + partitioned tables + Replicate changes correctly for multi-level partitioned tables, where only + the intermediate partition is part of replication set (not root or leaf + partitions). + - Support replication `TRUNCATE CASCADE` on tables referenced by + `FOREIGN KEY` (RT65518) + Previously this would throw error on the subscriber. This will only work if + all tables on subscriber which have `FOREIGN KEY` on the table being + `TRUNCATEd` are replicated tables. Also it's only supported on + PostgreSQL 11 and higher. + - Flush writer between data copy and constraint restore + Otherwise there could in some rare cases still be unapplied changes when + creating constraints during initial synchronization of a subscription, + potentially causing deadlocks. + - Fix potential writer queue corruption on very wide (1000+ columns) tables + +### Upgrades + +This release supports upgrading from following versions of pglogical: + + - 2.2.0 + - 2.2.1 + - 2.2.2 + - 3.2.0 and higher + +## pglogical 3.6.6 + +pglogical 3.6.6 is the sixth minor release of the pglogical 3.6 series. This release includes minor new features as well as fixes for issues identified earlier. + +### Improvements + + - New conflict type `update_pkey_exists` (RM9976) + Allows resolving conflicts when a `PRIMARY KEY` was updated to one which + already exists on the node which is applying the change. + + - Add `pglogical.apply_log_summary` (RM6596) + View over `pglogical.apply_log` which shows the human-readable conflict + type and resolver string instead of internal id. + + - Improve logging during both the initial data synchronization of a + subscription and the individual table resynchronization. + +### Resolved Issues + + - Make sure writer flushes changes after initial data copy (RT65185) + Otherwise depending on timing and I/O load the subscription might not + update positioning info and get data both via initial copy and replication + stream catchup that follows. + +### Upgrades + +This release supports upgrading from following versions of pglogical: + + - 2.2.0 + - 2.2.1 + - 2.2.2 + - 3.2.0 and higher + +## pglogical 3.6.5 + +pglogical 3.6.5 is the fifth minor release of the pglogical 3.6 series. This release includes minor new features as well as fixes for issues identified in 3.6.4. + +### Improvements + +- Improve tuple lock waits during apply for deletes (RM9569) + This should improve performance of replication of deletes and updates in + contentious situation. + +### Resolved Issues + +- Use consistent table list in initial data copy (RM9651/RT64809) + To prevent issues during initial data copy and concurrent table drop. +- Cleanup worker_dsm_handle on worker detach (internal) + Otherwise we could leave dangling DSM segment handle for a worker after a + crash, which could confuse plugins using this API. +- Fix handling of empty eager transactions (RM9550) + In case no relevant change remains to be applied on a replica node, + the prepare of such an empty transaction now works just fine. +- Fix the replication sets output in `pglogical.pglogical_node_info()` + Previously it could be garbled. +- Reduce log level for messages when resolving + ERRCODE_T_R_SERIALIZATION_FAILUREs (RM9439) + +### Upgrades + +This release supports upgrading from following versions of pglogical: + + - 2.2.0 + - 2.2.1 + - 2.2.2 + - 3.2.0 and higher + +Note that upgrades from 2.2.x are only supported on systems with +`pglogical.conflict_resolution` set to `last_update_wins`. + +## pglogical 3.6.4 + +pglogical 3.6.4 is the fourth minor release of the pglogical 3.6 series. This release includes minor new features as well as fixes for issues identified in 3.6.3. + +### New Features + +- Apply statistics tracking (RM9063) + We now track statistics about replication and resource use for individual + subscriptions and relations and make them available in + `pglogical.stat_subscription` and `pglogical.stat_relation` views. + The tracking can be configured via `pglogical.stat_track_subscription` and + `pglogical.stat_track_relation` configuration parameters. +- The `replicate_inserts` option now affects initial COPY + We now do initial copy of data only if the table replicates inserts. + +### Resolved Issues + +- Fix initial data copy of multi-level partitioned tables (RT64809) + The initial data copy used to support only single level partitioning, + multiple levels of partitioning are now supported. +- Don't try to copy initial data twice for partitions in some situations (RT64809) + The initial data copy used to try to copy data from all tables that are in + replication sets without proper regard to partitioning. This could result in + partition data to be copied twice if both root partition and individual + partitions were published via replication set. This is now solved, we only + do the initial copy on the root partition if it's published. +- Fix handling of indexes when replicating INSERT to a partition (RT64809) + Close the indexes correctly in all situations. +- Improve partitioning test coverage (RM9311) + In light of the partitioning related issues, increase the amount of + automated testing done against partitioned tables. +- Fix a leak in usage of the relation cache (RT64935) +- Fix a potential queue deadlock between writer and receiver (RT64935, RT64714) + +## pglogical 3.6.3 + +pglogical 3.6.3 is the third minor release of the pglogical 3.6 series. This release includes minor new features as well as fixes for issues identified in 3.6.2. + +### New Features + +- Support `DoNotReplicateId` special origin + This allows correct handling of "do not replicate" origin which allows skipping replication of some changes. Primarily needed internally for other features. +- Persist the last_xact_replay_timestamp (RT63881) + So that it's visible even if the subscription connection is down. +- Rework documentation build procedure for better consistency between HTML and PDF documentation + This mainly changes the way docs are structured into chapters so that there is single source of chapter list and ordering for both PDF and HTML docs. + +### Resolved Issues + +- Invalidate local cache when adding new invalidation + Fixes visibility of changes in the catalog cache view of the transaction which did those changes. Not triggered yet by any code but will be in the future releases. +- Open indexes after partition routing + Otherwise we might be opening indexes of the root table rather than the partition, causing issues with handling conflicts for `INSERT` operation replication. + +## pglogical 3.6.2 + +pglogical 3.6.2 is the second minor release of the pglogical 3.6 series. This release includes minor new features as well as fixes for issues identified in 3.6.1. + +### New Features + +* Support DEFERRED UNIQUE indexes + They used to work only in limited cases before this release. +* Support covering UNIQUE indexes (RT64650) + The use of covering UNIQUE indexes could result in ambiguous error messages in some cases before. +* Add `--log-file` option to `pglogical_create_subscriber` (RT64129) + So that log can be saved somewhere other than the current working directory + +### Resolved Issues + +* Fix error message when the database name in the connection string in `pglogical_create_subscriber` is missing (RT64129) + The previous message was ambiguous. +* Raise error when unknown parameter was specified for `pglogical_create_subscriber` (RT64129) + Otherwise mistakes in command line arguments could be silently ignored. +* Solve timing issue with workers exiting while another one tries to start using same worker slot + Before, we could corrupt the worker information causing the newly starting worker to crash (and having to start again later), this will no longer happen. +* Set statement time on start of every transaction in pglogical workers (RT64572) + Fixes reporting of `xact_start` in `pg_stat_activity` + +## pglogical 3.6.1 + +pglogical 3.6.1 is the first minor release of the pglogical 3.6 series. This release includes minor new features and fixes including all the fixes from 3.6.0.1. + +### New Features + + * Add slot failover documentation + * Add `pglogical.get_sub_progress_timestamp` for retrieving origin timestamp of the last committed change by the subscription + +### Resolved Issues + +* Stop retrying subscription synchronization after unrecoverable error (RT64463) + If the schema synchronization failed (which is an unrecoverable error) don't keep retrying forever. Instead mark the subscription synchronization as failed and disable the subscription. +* Improve handling and messaging with missing replication sets in output plugin (RT64451) + Report all missing and found sets and make sure the sets are looked up using current snapshot. + +## pglogical 3.6.0.1 + +The pglogical 3.6.0.1 is the first bug-fix release in the pglogical 3.6 series. + +### Resolved Issues + +- Improve synchronous `remote_write` replication performance (RT64397) +- Re-add support for binary protocol + +## pglogical 3.6.0 + +The version 3.6 of pglogical is a major update which brings performance improvements, better conflict handling, bug fixes and infrastructure necessary for BDR 3.6. + +### New Features + +- Significant replication performance improvement + - Cache table synchronization state + - Only send keepalives when necessary + - Only do flush when necessary + - Serialize transactions in fewer cases in walsender (2ndQPostgres) +- Improved replication position reporting which is more in line with how physical streaming replication reports it +- Conflict detection and resolution improvements + - Add new types of conflicts (like `target_table_missing`) + - Add new types of conflict resolvers + - Make conflict resolution configurable by subscription and conflict type + - Improve conflict detection for updates + +### Resolved Issues + +- Don't try to replicate REINDEX on temporary indexes + +### Other Improvements + +- Fix potential message parsing error for two-phase commits +- Make initial COPY of data interruptible \ No newline at end of file diff --git a/product_docs/docs/pgd/3.6/release-notes.mdx b/product_docs/docs/pgd/3.6/release-notes.mdx index 855a3accc36..caa7adcda78 100644 --- a/product_docs/docs/pgd/3.6/release-notes.mdx +++ b/product_docs/docs/pgd/3.6/release-notes.mdx @@ -1,7 +1,23 @@ --- -title: Release Notes +title: BDR Release Notes --- +## BDR 3.6.33 (2022 Nov 16) + +This is a maintenance release for BDR 3.6 which includes +fixes for issues identified previously. + +### Resolved Issues + +- Fix bdr.alter_table_conflict_detection() (BDR-2650) + Correct the function to use the 'detector_args' argument. + +### Upgrades + +This release supports upgrading from the following versions of BDR: + + - 3.6.20 and higher + ## BDR 3.6.2 (2022 Aug 23) This is a maintenance release for BDR 3.6 which includes fixes for issues identified previously. diff --git a/product_docs/docs/pgd/3.7/bdr/release-notes.mdx b/product_docs/docs/pgd/3.7/bdr/release-notes.mdx index 9c36e020f7a..40b0eb15572 100644 --- a/product_docs/docs/pgd/3.7/bdr/release-notes.mdx +++ b/product_docs/docs/pgd/3.7/bdr/release-notes.mdx @@ -5,6 +5,40 @@ originalFilePath: release-notes.md --- +## BDR 3.7.18 (2022 Nov 16) + +This is a maintenance release for BDR 3.7 which includes minor +improvements as well as fixes for issues identified in previous +versions. + +Check also release notes for pglogical 3.7.18 for resolved issues +which affect BDR as well. + +### Resolved Issues + +- Don't wait for ADD CONSTRAINT progress if DDL replication is off (BDR-2645, RT86043) + The constraint validation from all nodes is not needed if we don't replicate + the DDL or from any node that is PARTED or STANDBY. + +- Fix raft snapshot read/write routines for sequences (BDR-2666, RT86246) + Adjust joining to older BDR 3.6 version nodes while using galloc sequences. + +- Fix rare segfault for bdr.drop_node() + Check for null values in the result from all the other nodes + when trying to drop a node. + +- Fix hangs in multiple concurrent joins (RT82977) + Various lock corrections for functons and raft requests that reduces + the probability of distributed deadlocks. + + +### Upgrades + +This release supports upgrading from the following versions of BDR: + + - 3.7.9 and higher + - 3.6.29 and higher + ## BDR 3.7.17 (2022 Aug 23) This is a maintenance release for BDR 3.7 which includes minor diff --git a/product_docs/docs/pgd/3.7/pglogical/release-notes.mdx b/product_docs/docs/pgd/3.7/pglogical/release-notes.mdx index 0ee0bcad2e4..e080ebfbafa 100644 --- a/product_docs/docs/pgd/3.7/pglogical/release-notes.mdx +++ b/product_docs/docs/pgd/3.7/pglogical/release-notes.mdx @@ -5,6 +5,30 @@ originalFilePath: release-notes.md --- +## pglogical 3.7.18 + +This is a maintenance release for pglogical 3.7 which includes minor +improvements as well as fixes for issues identified previously. + +### Resolved Issues + +- Add Windows specific workaround for wal_sender_timeout + +- Resolve hang related to `standby_slots_min_confirmed` (BDR-2445, RT80692) + Allow the WAl sender to proceed without the need to wait for the timeout + after a Subscriber Only node is parted, while using `standby_slot_names`. + +- Don't replicate TRUNCATE as global message (BDR-2821, RT87453) + The TRUNCATE command now takes the replication set into account. + +### Upgrades + +This release supports upgrading from following versions of pglogical: + + - 3.7.9 and higher + - 3.6.29 and higher + - 2.4.0 and 2.4.1 + ## pglogical 3.7.17 This is a maintenance release for pglogical 3.7 which includes minor diff --git a/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx b/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx index 78fa71db6b7..65299edc712 100644 --- a/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx +++ b/product_docs/docs/pgd/4/rel_notes/pgd_4.2.1_rel_notes.mdx @@ -5,16 +5,16 @@ navTitle: "Version 4.2.1" EDB Postgres Distributed version 4.2.1 is a patch release of EDB Postgres Distributed 4, which includes bug fixes for issues identified in previous versions. -| Component | Version | Type | Description | -| --------- | ------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| BDR | 4.2.1 | Bug fix | Grant `bdr.replication_status to `bdr_read_all_stats` (BDR-2523)

Alllow the `read_all_stats` role to check BDR replication information.

| -| BDR | 4.2.1 | Bug fix | Resolve hang related to `bdr.standby_slots_min_confirmed` (BDR-2445, RT80692)

Allow the WAl sender to proceed without the need to wait for the timeout after a Subscriber Only node is parted, while using `standby_slot_names`.

| -| BDR | 4.2.1 | Bug fix | Use two_phase slots in `bdr_init_physical` on PG14+

Improve prepared transaction handling during `bdr_init_physical`.

| -| BDR | 4.2.1 | Bug fix | Add schema name to relation name in on all error messages (BDR-765) | -| BDR | 4.2.1 | Bug fix | Allow parting a node only if the node didn't already start the part process (BDR-2629)

Return with an error if a node is already in at least PART_START state.

| -| BDR | 4.2.1 | Bug fix | Don't wait for ADD CONSTRAINT progress if DDL replication is off (BDR-2645, RT86043)

The constraint validation from all nodes is not needed if DDL is not replicated, nor do PARTED or STANDBY nodes need to validate.

| -| BDR | 4.2.1 | Bug fix | Adjust `replication_set_add_ddl_filter` (BDR-2755, RT86825)

Replicate all the columns needed for the ddl_filter.

| -| BDR | 4.2.1 | Bug fix | Add maintanance to bdr.queue catalog table (BDR-2475, RT84105)

Automatically remove rows older than the `bdr.max_queue_days` (default disabled) on bdr.queue.

| -| BDR | 4.2.1 | Bug fix | Add timeout option to `bdr_init_physical` (RT8277)

The timeout does not take the time spent in other activities of `bdr_init_physical` such as creating a base backup and sending the join request.

| -| BDR | 4.2.1 | Bug fix | Abort unresolved commit scope transactions on node part (BDR-2597)

Add a new peer state PART_TX_RESOLVE. This state will abort any remaining unresolved group commit transactions from the node that's parting on the current raft leader and replicates that to the rest of the cluster.

| -| HARP | 2.2.1 | Bug fix | Fix connection leak issue (BDR-2530) | +| Component | Version | Type | Description | +| --------- | ------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BDR | 4.2.1 | Bug fix | Grant `bdr.replication_status` to `bdr_read_all_stats` (BDR-2523)

Alllow the `read_all_stats` role to check BDR replication information.

| +| BDR | 4.2.1 | Bug fix | Resolve hang related to `bdr.standby_slots_min_confirmed` (BDR-2445, RT80692)

Allow the WAl sender to proceed without the need to wait for the timeout after a Subscriber Only node is parted, while using `standby_slot_names`.

| +| BDR | 4.2.1 | Bug fix | Use two_phase slots in `bdr_init_physical` on PG14+

Improve prepared transaction handling during `bdr_init_physical`.

| +| BDR | 4.2.1 | Bug fix | Add schema name to relation name in on all error messages (BDR-765) | +| BDR | 4.2.1 | Bug fix | Allow parting a node only if the node didn't already start the part process (BDR-2629)

Return with an error if a node is already in at least PART_START state.

| +| BDR | 4.2.1 | Bug fix | Don't wait for ADD CONSTRAINT progress if DDL replication is off (BDR-2645, RT86043)

The constraint validation from all nodes is not needed if DDL is not replicated, nor do PARTED or STANDBY nodes need to validate.

| +| BDR | 4.2.1 | Bug fix | Adjust `replication_set_add_ddl_filter` (BDR-2755, RT86825)

Replicate all the columns needed for the ddl_filter.

| +| BDR | 4.2.1 | Bug fix | Add maintenance to bdr.queue catalog table (BDR-2475, RT84105)

Automatically remove rows older than the `bdr.max_queue_days` (default disabled) on bdr.queue.

| +| BDR | 4.2.1 | Bug fix | Add timeout option to `bdr_init_physical` (RT8277)

The timeout does not take the time spent in other activities of `bdr_init_physical` such as creating a base backup and sending the join request.

| +| BDR | 4.2.1 | Bug fix | Abort unresolved commit scope transactions on node part (BDR-2597)

Add a new peer state PART_TX_RESOLVE. This state will abort any remaining unresolved group commit transactions from the node that's parting on the current raft leader and replicates that to the rest of the cluster.

| +| HARP | 2.2.1 | Bug fix | Fix connection leak issue (BDR-2530) | From 795f7f8e92707c649e328e227bebae92a0713b0d Mon Sep 17 00:00:00 2001 From: drothery-edb Date: Thu, 17 Nov 2022 08:43:37 -0500 Subject: [PATCH 7/7] fixed 3.6.32 version number and 3.6 nav order --- product_docs/docs/pgd/3.6/index.mdx | 3 +++ product_docs/docs/pgd/3.6/release-notes.mdx | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/product_docs/docs/pgd/3.6/index.mdx b/product_docs/docs/pgd/3.6/index.mdx index b7b68172069..0ecb1b9606e 100644 --- a/product_docs/docs/pgd/3.6/index.mdx +++ b/product_docs/docs/pgd/3.6/index.mdx @@ -1,5 +1,8 @@ --- title: "EDB Postgres Distributed" +navigation: +- release-notes +- rel_notes-pglogical --- EDB Postgres Distributed provides loosely-coupled multi-master logical replication diff --git a/product_docs/docs/pgd/3.6/release-notes.mdx b/product_docs/docs/pgd/3.6/release-notes.mdx index caa7adcda78..030ce24aa44 100644 --- a/product_docs/docs/pgd/3.6/release-notes.mdx +++ b/product_docs/docs/pgd/3.6/release-notes.mdx @@ -18,7 +18,7 @@ This release supports upgrading from the following versions of BDR: - 3.6.20 and higher -## BDR 3.6.2 (2022 Aug 23) +## BDR 3.6.32 (2022 Aug 23) This is a maintenance release for BDR 3.6 which includes fixes for issues identified previously.