From d41f8a2fa3879463cc1a9614f8d3c273430b4204 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Tue, 8 Sep 2026 21:21:45 +0530 Subject: [PATCH 01/24] Rel Notes 0.10.0 --- docs/release-notes/0.10.0.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs/release-notes/0.10.0.md diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md new file mode 100644 index 00000000..6f38aee1 --- /dev/null +++ b/docs/release-notes/0.10.0.md @@ -0,0 +1,14 @@ +# {{ pcsm.full_name }} 0.10.0 ({{ date.v0_10_0 }}) + +We're excited to announce Percona ClusterSync for MongoDB (PCSM) 0.10.0. + +We also ship a **Software Bill of Materials (SBOM)** with every release, providing visibility into the components and dependencies included in each release. + +[Get started with {{pcsm.short}}](../installation.md){.md-button} + + +## Release highlights + +## Changelog + +### New features \ No newline at end of file From 01fc98d9d6c8aeffba7c29b67c876a50cf1f219e Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Tue, 8 Sep 2026 22:02:01 +0530 Subject: [PATCH 02/24] added new features --- docs/release-notes/0.10.0.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index 6f38aee1..ec2f4ed8 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -11,4 +11,10 @@ We also ship a **Software Bill of Materials (SBOM)** with every release, providi ## Changelog -### New features \ No newline at end of file +### New features + +- [PCSM-203](https://perconadev.atlassian.net/browse/PCSM-203): Added support for copying chunk distribution from the source sharded cluster to the target, allowing PCSM to pre-split chunks on the target based on the source distribution. +- [PCSM-296](https://perconadev.atlassian.net/browse/PCSM-296): Added support for migrating data from a sharded source cluster to a replica set target. +- [PCSM-302](https://perconadev.atlassian.net/browse/PCSM-302): Added Debian 13 (Trixie) AMD64 support for PCSM. +- [PCSM-344](https://perconadev.atlassian.net/browse/PCSM-344): Added Debian 13 (Trixie) ARM64 support for PCSM. +- [PCSM-360](https://perconadev.atlassian.net/browse/PCSM-360): Added RHEL 10 build support for PCSM. \ No newline at end of file From 2b69df25ad366bb1340ca153d2b8329cd46adc9e Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Tue, 8 Sep 2026 22:21:44 +0530 Subject: [PATCH 03/24] updated config files --- docs/release-notes.md | 2 ++ docs/release-notes/0.10.0.md | 33 ++++++++++++++++++++++++++++----- mkdocs-base.yml | 1 + variables.yml | 3 ++- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 34efda17..3375a8e8 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -4,6 +4,8 @@ Starting with version 0.7.0, Percona Link for MongoDB has been rebranded as Percona ClusterSync for MongoDB. Any mentions of Percona Link for MongoDB in earlier release notes now refer to this product. +* [Percona ClusterSync for MongoDB 0.10.0 ({{date.v0_10_0}})](release-notes/0.10.0.md) + * [Percona ClusterSync for MongoDB 0.9.0 ({{date.v0_9_0}})](release-notes/0.9.0.md) * [Percona ClusterSync for MongoDB 0.8.1 ({{date.v0_8_1}})](release-notes/0.8.1.md) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index ec2f4ed8..245d6869 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -13,8 +13,31 @@ We also ship a **Software Bill of Materials (SBOM)** with every release, providi ### New features -- [PCSM-203](https://perconadev.atlassian.net/browse/PCSM-203): Added support for copying chunk distribution from the source sharded cluster to the target, allowing PCSM to pre-split chunks on the target based on the source distribution. -- [PCSM-296](https://perconadev.atlassian.net/browse/PCSM-296): Added support for migrating data from a sharded source cluster to a replica set target. -- [PCSM-302](https://perconadev.atlassian.net/browse/PCSM-302): Added Debian 13 (Trixie) AMD64 support for PCSM. -- [PCSM-344](https://perconadev.atlassian.net/browse/PCSM-344): Added Debian 13 (Trixie) ARM64 support for PCSM. -- [PCSM-360](https://perconadev.atlassian.net/browse/PCSM-360): Added RHEL 10 build support for PCSM. \ No newline at end of file +* [PCSM-203](https://perconadev.atlassian.net/browse/PCSM-203): Added support for copying chunk distribution from the source sharded cluster to the target, allowing PCSM to pre-split chunks on the target based on the source distribution. +* [PCSM-296](https://perconadev.atlassian.net/browse/PCSM-296): Added support for migrating data from a sharded source cluster to a replica set target. +* [PCSM-302](https://perconadev.atlassian.net/browse/PCSM-302): Added Debian 13 (Trixie) AMD64 support for PCSM. +* [PCSM-344](https://perconadev.atlassian.net/browse/PCSM-344): Added Debian 13 (Trixie) ARM64 support for PCSM. +* [PCSM-360](https://perconadev.atlassian.net/browse/PCSM-360): Added RHEL 10 build support for PCSM. + +### Improvements + +* [[PCSM-93](https://perconadev.atlassian.net/browse/PCSM-93)](https://perconadev.atlassian.net/browse/PCSM-93): Added high availability support during the replication phase, improving continuity if a PCSM instance becomes unavailable. +* [[PCSM-241](https://perconadev.atlassian.net/browse/PCSM-241)](https://perconadev.atlassian.net/browse/PCSM-241): Improved how PCSM determines the clone start timestamp by using `appendOplogNote` to obtain the source cluster time. +* [[PCSM-281](https://perconadev.atlassian.net/browse/PCSM-281)](https://perconadev.atlassian.net/browse/PCSM-281): Updated the Go version used to build PCSM. +* [[PCSM-283](https://perconadev.atlassian.net/browse/PCSM-283)](https://perconadev.atlassian.net/browse/PCSM-283): Improved sharded cluster to replica set migrations by skipping sharding operations when the target is a replica set. +* [[PCSM-312](https://perconadev.atlassian.net/browse/PCSM-312)](https://perconadev.atlassian.net/browse/PCSM-312): Added support for configuring the MongoDB connection pool size using `maxPoolSize` in the source and target connection strings. +* [[PCSM-322](https://perconadev.atlassian.net/browse/PCSM-322)](https://perconadev.atlassian.net/browse/PCSM-322): Improved handling of unsuccessful indexes during finalization by rechecking the source before attempting to recreate them on the target. +* [[PCSM-328](https://perconadev.atlassian.net/browse/PCSM-328)](https://perconadev.atlassian.net/browse/PCSM-328): Improved resilience to transient MongoDB errors by adding retry handling to the remaining MongoDB operations. +* [[PCSM-330](https://perconadev.atlassian.net/browse/PCSM-330)](https://perconadev.atlassian.net/browse/PCSM-330): Added support for running multiple PCSM instances against the same source cluster to synchronize different subsets of data to separate target clusters at the same time. +* [[PCSM-335](https://perconadev.atlassian.net/browse/PCSM-335)](https://perconadev.atlassian.net/browse/PCSM-335): Updated log timestamps to use RFC 3339 format, making timestamps easier to correlate with logs from other systems. +* [[PCSM-336](https://perconadev.atlassian.net/browse/PCSM-336)](https://perconadev.atlassian.net/browse/PCSM-336): Normalized PCSM log timestamps to UTC for consistent timestamps across deployments. + +### Bugs + +* [[PCSM-249](https://perconadev.atlassian.net/browse/PCSM-249)](https://perconadev.atlassian.net/browse/PCSM-249): Fixed incorrect handling of events generated by a `movePrimary` operation. The issue could cause data on the target cluster to differ from the source after `movePrimary`. +* [[PCSM-321](https://perconadev.atlassian.net/browse/PCSM-321)](https://perconadev.atlassian.net/browse/PCSM-321): Fixed a race condition between finalization and manual TTL index creation that caused the related test to fail intermittently. This improves test reliability and does not change PCSM runtime behavior. +* [[PCSM-338](https://perconadev.atlassian.net/browse/PCSM-338)](https://perconadev.atlassian.net/browse/PCSM-338): Fixed an issue where the clone checkpoint did not persist the clone finish timestamp. After a PCSM restart, this could prevent the initial synchronization from completing correctly. +* [[PCSM-345](https://perconadev.atlassian.net/browse/PCSM-345)](https://perconadev.atlassian.net/browse/PCSM-345): Made the PCSM HTTP server bind host configurable. Previously, the server bound only to localhost, which could prevent Kubernetes probes or other services connecting through the pod or host IP from reaching PCSM. +* [[PCSM-359](https://perconadev.atlassian.net/browse/PCSM-359)](https://perconadev.atlassian.net/browse/PCSM-359): Fixed an issue that could cause documents to be skipped when PCSM was restarted during the catch-up stage of replication. This could result in data missing from the target cluster. +* [[PCSM-369](https://perconadev.atlassian.net/browse/PCSM-369)](https://perconadev.atlassian.net/browse/PCSM-369): Fixed an issue where `pcsm start` ignored the `--mongodb-operation-timeout` option. As a result, the configured timeout was not applied to MongoDB operations. + diff --git a/mkdocs-base.yml b/mkdocs-base.yml index bb68e601..250afa29 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -192,6 +192,7 @@ nav: - FAQ: faq.md - Release notes: - Release notes index: release-notes.md + - 0.10.0: release-notes/0.10.0.md - 0.9.0: release-notes/0.9.0.md - 0.8.1: release-notes/0.8.1.md - 0.8.0: release-notes/0.8.0.md diff --git a/variables.yml b/variables.yml index ab48ef6a..23ed1d10 100644 --- a/variables.yml +++ b/variables.yml @@ -2,9 +2,10 @@ # See also mkdocs.yml plugins.with-pdf.cover_subtitle and output_path year: '2026' -release: '0.9.0' +release: '0.10.0' date: + v0_10_0: '2026-09-15' v0_9_0: '2026-06-03' v0_8_1: '2026-05-07' v0_8_0: '2026-04-06' From a252f146354e61e604e148f9afa3f799585df21f Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 14:53:52 +0530 Subject: [PATCH 04/24] Rel notes for PCSM 0.10.0 and added limitation --- docs/limitations.md | 6 +++ docs/release-notes/0.10.0.md | 71 ++++++++++++++++++++++++++++-------- 2 files changed, 62 insertions(+), 15 deletions(-) diff --git a/docs/limitations.md b/docs/limitations.md index 6308ecd9..1482be69 100644 --- a/docs/limitations.md +++ b/docs/limitations.md @@ -36,6 +36,12 @@ The following limitations apply specifically to sharded cluster replication: * During data replication, the following commands are not supported: `movePrimary`, `reshardCollecton`, `unshardCollection`, `refineCollectionShardKey`. Running them results in failed replication and you must start it anew, from the initial data sync stage. +* Replica set to sharded cluster migrations do not apply a shard key + + * PCSM can copy data from a replica set source to a sharded cluster target. However, it does not automatically shard the migrated collections or apply a shard key on the target. + + * The migration can complete without an error or warning, but the collections remain unsharded. If your migration requires the collections to be sharded on the target, plan the sharding step separately. See, [Replica set source to sharded target](sharding.md#replica-set-source-to-sharded-target) + ## Data types * Queryable encryption is not supported diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index 245d6869..3fa232ac 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -1,14 +1,51 @@ # {{ pcsm.full_name }} 0.10.0 ({{ date.v0_10_0 }}) -We're excited to announce Percona ClusterSync for MongoDB (PCSM) 0.10.0. - -We also ship a **Software Bill of Materials (SBOM)** with every release, providing visibility into the components and dependencies included in each release. +We’re excited to announce Percona ClusterSync for MongoDB (PCSM) 0.10.0. This release adds high availability during replication and expands migration support for sharded deployment scenarios. You can also run multiple PCSM instances against the same source cluster, with each instance synchronizing a different subset of data to a separate target. [Get started with {{pcsm.short}}](../installation.md){.md-button} +!!! warning "Upgrade from 0.9.0 requires a reset" + + PCSM `0.10.0` cannot use replication state created by PCSM `0.9.0`. Before upgrading, **stop all** `0.9.0` instances and reset the stored replication state on the target cluster. + + After the reset, start a new synchronization run with PCSM `0.10.0`. The run starts with a full initial clone. Do not run PCSM `0.9.0` and `0.10.0` against the same target cluster at the same time. ## Release highlights +### High availability during replication + +PCSM now supports active-standby high availability during replication. For example you can run two or more instances of PCSM with the same source and target. While one of them is actively replicating the other(s) are idle in standby mode. + +In the event of an active instance failure, a standby instance will take over. The replication will then continue from the last checkpoint to minimize any disruption and prevent manual intervention. + +!!! note + + High availability does not make the initial clone resumable. If the active instance becomes unavailable during the initial clone, start a new run to clone the data again. + +For detailed information, see our [documentation](https://docs.percona.com/percona-clustersync-for-mongodb/high-availability.html) + + +### Broader migration support for sharded clusters + +PCSM can now migrate collection data from a sharded source cluster to a replica set target. It copies documents from both sharded and unsharded collections. Sharded collections are created as regular collections on the replica set target, without the source cluster's sharding metadata. + +For migrations between sharded clusters, PCSM can copy the source cluster's initial chunk distribution and use it to pre-split chunks on the target before the data clone.. For migrations between sharded clusters, PCSM can copy the source cluster's chunk distribution and pre-split chunks on the target based on that distribution. + +!!! note + + PCSM does not replay source chunk boundaries for hashed shard keys. In this case, it keeps the chunk layout created by MongoDB when the collection is sharded on the target. + +To dive deeper into this topic, check out our [documentation](https://docs.percona.com/percona-clustersync-for-mongodb/sharding.html#chunk-distribution). + + +### Parallel synchronization from one source to multiple targets + +You can run multiple {{pcsm.full_name}} (PCSM) instances against the same source cluster and replicate data to different target clusters at the same time. + +Each instance has its own namespace filters, so you can control which data is sent to each target. Namespace selections can differ or overlap. This means the same source namespace can be synchronized to more than one target when needed. + +For more insights into this feature, see our [documentation](https://docs.percona.com/percona-clustersync-for-mongodb/multiple-targets.html) + ## Changelog ### New features @@ -21,23 +58,27 @@ We also ship a **Software Bill of Materials (SBOM)** with every release, providi ### Improvements -* [[PCSM-93](https://perconadev.atlassian.net/browse/PCSM-93)](https://perconadev.atlassian.net/browse/PCSM-93): Added high availability support during the replication phase, improving continuity if a PCSM instance becomes unavailable. -* [[PCSM-241](https://perconadev.atlassian.net/browse/PCSM-241)](https://perconadev.atlassian.net/browse/PCSM-241): Improved how PCSM determines the clone start timestamp by using `appendOplogNote` to obtain the source cluster time. -* [[PCSM-281](https://perconadev.atlassian.net/browse/PCSM-281)](https://perconadev.atlassian.net/browse/PCSM-281): Updated the Go version used to build PCSM. -* [[PCSM-283](https://perconadev.atlassian.net/browse/PCSM-283)](https://perconadev.atlassian.net/browse/PCSM-283): Improved sharded cluster to replica set migrations by skipping sharding operations when the target is a replica set. +* [[PCSM-93](https://perconadev.atlassian.net/browse/PCSM-93)](https://perconadev.atlassian.net/browse/PCSM-93): Added active-standby high availability for the replication phase. Multiple PCSM instances coordinate through a lease on the target cluster, and a standby is promoted automatically when the active instance becomes unavailable. +* [[PCSM-241](https://perconadev.atlassian.net/browse/PCSM-241)](https://perconadev.atlassian.net/browse/PCSM-241): Improved how PCSM captures the clone start timestamp. PCSM now uses `appendOplogNote` to establish a precise replication starting point after earlier in-flight writes are durable. +* [[PCSM-281](https://perconadev.atlassian.net/browse/PCSM-281)](https://perconadev.atlassian.net/browse/PCSM-281): Updated the Go version used to build PCSM from 1.25 to 1.26. +* [[PCSM-283](https://perconadev.atlassian.net/browse/PCSM-283)](https://perconadev.atlassian.net/browse/PCSM-283): Improved migrations from a sharded source cluster to a replica set target. PCSM now detects the target topology and skips sharding operations that a replica set does not support. * [[PCSM-312](https://perconadev.atlassian.net/browse/PCSM-312)](https://perconadev.atlassian.net/browse/PCSM-312): Added support for configuring the MongoDB connection pool size using `maxPoolSize` in the source and target connection strings. -* [[PCSM-322](https://perconadev.atlassian.net/browse/PCSM-322)](https://perconadev.atlassian.net/browse/PCSM-322): Improved handling of unsuccessful indexes during finalization by rechecking the source before attempting to recreate them on the target. -* [[PCSM-328](https://perconadev.atlassian.net/browse/PCSM-328)](https://perconadev.atlassian.net/browse/PCSM-328): Improved resilience to transient MongoDB errors by adding retry handling to the remaining MongoDB operations. -* [[PCSM-330](https://perconadev.atlassian.net/browse/PCSM-330)](https://perconadev.atlassian.net/browse/PCSM-330): Added support for running multiple PCSM instances against the same source cluster to synchronize different subsets of data to separate target clusters at the same time. +* [[PCSM-322](https://perconadev.atlassian.net/browse/PCSM-322)](https://perconadev.atlassian.net/browse/PCSM-322): Improved index handling during finalization. If an index is not created successfully on the target, PCSM now checks whether the index still exists on the source before trying again. This avoids unnecessary attempts to recreate indexes that are no longer present on the source. +* [[PCSM-328](https://perconadev.atlassian.net/browse/PCSM-328)](https://perconadev.atlassian.net/browse/PCSM-328): Improved migration reliability by retrying MongoDB operations that fail because of transient errors, such as brief network interruptions or timeouts. Previously, a temporary source-side failure could stop a long-running initial data copy. PCSM now retries these operations before failing the migration. +* [[PCSM-330](https://perconadev.atlassian.net/browse/PCSM-330)](https://perconadev.atlassian.net/browse/PCSM-330): Added support for running multiple PCSM instances against the same source cluster and synchronizing selected data to separate target clusters at the same time. Each instance can use its own namespace filters. * [[PCSM-335](https://perconadev.atlassian.net/browse/PCSM-335)](https://perconadev.atlassian.net/browse/PCSM-335): Updated log timestamps to use RFC 3339 format, making timestamps easier to correlate with logs from other systems. * [[PCSM-336](https://perconadev.atlassian.net/browse/PCSM-336)](https://perconadev.atlassian.net/browse/PCSM-336): Normalized PCSM log timestamps to UTC for consistent timestamps across deployments. ### Bugs * [[PCSM-249](https://perconadev.atlassian.net/browse/PCSM-249)](https://perconadev.atlassian.net/browse/PCSM-249): Fixed incorrect handling of events generated by a `movePrimary` operation. The issue could cause data on the target cluster to differ from the source after `movePrimary`. -* [[PCSM-321](https://perconadev.atlassian.net/browse/PCSM-321)](https://perconadev.atlassian.net/browse/PCSM-321): Fixed a race condition between finalization and manual TTL index creation that caused the related test to fail intermittently. This improves test reliability and does not change PCSM runtime behavior. -* [[PCSM-338](https://perconadev.atlassian.net/browse/PCSM-338)](https://perconadev.atlassian.net/browse/PCSM-338): Fixed an issue where the clone checkpoint did not persist the clone finish timestamp. After a PCSM restart, this could prevent the initial synchronization from completing correctly. -* [[PCSM-345](https://perconadev.atlassian.net/browse/PCSM-345)](https://perconadev.atlassian.net/browse/PCSM-345): Made the PCSM HTTP server bind host configurable. Previously, the server bound only to localhost, which could prevent Kubernetes probes or other services connecting through the pod or host IP from reaching PCSM. -* [[PCSM-359](https://perconadev.atlassian.net/browse/PCSM-359)](https://perconadev.atlassian.net/browse/PCSM-359): Fixed an issue that could cause documents to be skipped when PCSM was restarted during the catch-up stage of replication. This could result in data missing from the target cluster. -* [[PCSM-369](https://perconadev.atlassian.net/browse/PCSM-369)](https://perconadev.atlassian.net/browse/PCSM-369): Fixed an issue where `pcsm start` ignored the `--mongodb-operation-timeout` option. As a result, the configured timeout was not applied to MongoDB operations. +* [[PCSM-338](https://perconadev.atlassian.net/browse/PCSM-338)](https://perconadev.atlassian.net/browse/PCSM-338): Fixed an issue where PCSM could incorrectly report the initial sync as complete after restarting during catch-up. This might allow finalization to begin before the target has fully caught up, resulting in data loss. PCSM now preserves the clone completion timestamp during recovery and prevents finalization until synchronization is complete. +* [[PCSM-345](https://perconadev.atlassian.net/browse/PCSM-345)](https://perconadev.atlassian.net/browse/PCSM-345): Made the PCSM HTTP server bind host configurable. Previously, the server bound only to `localhost`, which could prevent Kubernetes probes or other services connecting through the pod or host IP from reaching PCSM. The default remains `localhost`. + + !!! warning + Binding PCSM to `0.0.0.0` or `::` makes its HTTP endpoints reachable through network interfaces. Restrict network access appropriately, especially for control and profiling endpoints. +* [[PCSM-359](https://perconadev.atlassian.net/browse/PCSM-359)](https://perconadev.atlassian.net/browse/PCSM-359): Fixed an issue where PCSM could advance its replication checkpoint past changes that had not yet been applied. If PCSM restarted during catch-up, those changes could be skipped and documents could be missing from the target. PCSM now resumes an interrupted run from the last safely applied checkpoint. +* [[PCSM-369](https://perconadev.atlassian.net/browse/PCSM-369)](https://perconadev.atlassian.net/browse/PCSM-369): The `--mongodb-operation-timeout` flag was accepted by every subcommand, but only the server and `reset` commands actually create MongoDB clients. Passing it to `pcsm start` or `pcsm status` did nothing at all, with no indication that the value had been discarded. + + The flag is now scoped to the commands that use it. If you pass it to `status`, `start`, `pause`, `resume`, or `finalize`, PCSM returns an unknown flag error rather than accepting it and ignoring it. From 0bf7078d8ee08a3b15fb1c618b18b5c38150cbbc Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 15:00:20 +0530 Subject: [PATCH 05/24] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/release-notes/0.10.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index 3fa232ac..21db1f6f 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -29,7 +29,7 @@ For detailed information, see our [documentation](https://docs.percona.com/perco PCSM can now migrate collection data from a sharded source cluster to a replica set target. It copies documents from both sharded and unsharded collections. Sharded collections are created as regular collections on the replica set target, without the source cluster's sharding metadata. -For migrations between sharded clusters, PCSM can copy the source cluster's initial chunk distribution and use it to pre-split chunks on the target before the data clone.. For migrations between sharded clusters, PCSM can copy the source cluster's chunk distribution and pre-split chunks on the target based on that distribution. +For migrations between sharded clusters, PCSM can copy the source cluster's initial chunk distribution and use it to pre-split chunks on the target before the data clone. !!! note From 5c7c024135653b9697e3d73ee9374cd6c4ebe8f8 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 15:00:43 +0530 Subject: [PATCH 06/24] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/release-notes/0.10.0.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index 21db1f6f..f55783b2 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -58,27 +58,27 @@ For more insights into this feature, see our [documentation](https://docs.percon ### Improvements -* [[PCSM-93](https://perconadev.atlassian.net/browse/PCSM-93)](https://perconadev.atlassian.net/browse/PCSM-93): Added active-standby high availability for the replication phase. Multiple PCSM instances coordinate through a lease on the target cluster, and a standby is promoted automatically when the active instance becomes unavailable. -* [[PCSM-241](https://perconadev.atlassian.net/browse/PCSM-241)](https://perconadev.atlassian.net/browse/PCSM-241): Improved how PCSM captures the clone start timestamp. PCSM now uses `appendOplogNote` to establish a precise replication starting point after earlier in-flight writes are durable. -* [[PCSM-281](https://perconadev.atlassian.net/browse/PCSM-281)](https://perconadev.atlassian.net/browse/PCSM-281): Updated the Go version used to build PCSM from 1.25 to 1.26. -* [[PCSM-283](https://perconadev.atlassian.net/browse/PCSM-283)](https://perconadev.atlassian.net/browse/PCSM-283): Improved migrations from a sharded source cluster to a replica set target. PCSM now detects the target topology and skips sharding operations that a replica set does not support. -* [[PCSM-312](https://perconadev.atlassian.net/browse/PCSM-312)](https://perconadev.atlassian.net/browse/PCSM-312): Added support for configuring the MongoDB connection pool size using `maxPoolSize` in the source and target connection strings. -* [[PCSM-322](https://perconadev.atlassian.net/browse/PCSM-322)](https://perconadev.atlassian.net/browse/PCSM-322): Improved index handling during finalization. If an index is not created successfully on the target, PCSM now checks whether the index still exists on the source before trying again. This avoids unnecessary attempts to recreate indexes that are no longer present on the source. -* [[PCSM-328](https://perconadev.atlassian.net/browse/PCSM-328)](https://perconadev.atlassian.net/browse/PCSM-328): Improved migration reliability by retrying MongoDB operations that fail because of transient errors, such as brief network interruptions or timeouts. Previously, a temporary source-side failure could stop a long-running initial data copy. PCSM now retries these operations before failing the migration. -* [[PCSM-330](https://perconadev.atlassian.net/browse/PCSM-330)](https://perconadev.atlassian.net/browse/PCSM-330): Added support for running multiple PCSM instances against the same source cluster and synchronizing selected data to separate target clusters at the same time. Each instance can use its own namespace filters. -* [[PCSM-335](https://perconadev.atlassian.net/browse/PCSM-335)](https://perconadev.atlassian.net/browse/PCSM-335): Updated log timestamps to use RFC 3339 format, making timestamps easier to correlate with logs from other systems. -* [[PCSM-336](https://perconadev.atlassian.net/browse/PCSM-336)](https://perconadev.atlassian.net/browse/PCSM-336): Normalized PCSM log timestamps to UTC for consistent timestamps across deployments. +* [PCSM-93](https://perconadev.atlassian.net/browse/PCSM-93): Added active-standby high availability for the replication phase. Multiple PCSM instances coordinate through a lease on the target cluster, and a standby is promoted automatically when the active instance becomes unavailable. +* [PCSM-241](https://perconadev.atlassian.net/browse/PCSM-241): Improved how PCSM captures the clone start timestamp. PCSM now uses `appendOplogNote` to establish a precise replication starting point after earlier in-flight writes are durable. +* [PCSM-281](https://perconadev.atlassian.net/browse/PCSM-281): Updated the Go version used to build PCSM from 1.25 to 1.26. +* [PCSM-283](https://perconadev.atlassian.net/browse/PCSM-283): Improved migrations from a sharded source cluster to a replica set target. PCSM now detects the target topology and skips sharding operations that a replica set does not support. +* [PCSM-312](https://perconadev.atlassian.net/browse/PCSM-312): Added support for configuring the MongoDB connection pool size using `maxPoolSize` in the source and target connection strings. +* [PCSM-322](https://perconadev.atlassian.net/browse/PCSM-322): Improved index handling during finalization. If an index is not created successfully on the target, PCSM now checks whether the index still exists on the source before trying again. This avoids unnecessary attempts to recreate indexes that are no longer present on the source. +* [PCSM-328](https://perconadev.atlassian.net/browse/PCSM-328): Improved migration reliability by retrying MongoDB operations that fail because of transient errors, such as brief network interruptions or timeouts. Previously, a temporary source-side failure could stop a long-running initial data copy. PCSM now retries these operations before failing the migration. +* [PCSM-330](https://perconadev.atlassian.net/browse/PCSM-330): Added support for running multiple PCSM instances against the same source cluster and synchronizing selected data to separate target clusters at the same time. Each instance can use its own namespace filters. +* [PCSM-335](https://perconadev.atlassian.net/browse/PCSM-335): Updated log timestamps to use RFC 3339 format, making timestamps easier to correlate with logs from other systems. +* [PCSM-336](https://perconadev.atlassian.net/browse/PCSM-336): Normalized PCSM log timestamps to UTC for consistent timestamps across deployments. ### Bugs -* [[PCSM-249](https://perconadev.atlassian.net/browse/PCSM-249)](https://perconadev.atlassian.net/browse/PCSM-249): Fixed incorrect handling of events generated by a `movePrimary` operation. The issue could cause data on the target cluster to differ from the source after `movePrimary`. -* [[PCSM-338](https://perconadev.atlassian.net/browse/PCSM-338)](https://perconadev.atlassian.net/browse/PCSM-338): Fixed an issue where PCSM could incorrectly report the initial sync as complete after restarting during catch-up. This might allow finalization to begin before the target has fully caught up, resulting in data loss. PCSM now preserves the clone completion timestamp during recovery and prevents finalization until synchronization is complete. -* [[PCSM-345](https://perconadev.atlassian.net/browse/PCSM-345)](https://perconadev.atlassian.net/browse/PCSM-345): Made the PCSM HTTP server bind host configurable. Previously, the server bound only to `localhost`, which could prevent Kubernetes probes or other services connecting through the pod or host IP from reaching PCSM. The default remains `localhost`. +* [PCSM-249](https://perconadev.atlassian.net/browse/PCSM-249): Fixed incorrect handling of events generated by a `movePrimary` operation. The issue could cause data on the target cluster to differ from the source after `movePrimary`. +* [PCSM-338](https://perconadev.atlassian.net/browse/PCSM-338): Fixed an issue where PCSM could incorrectly report the initial sync as complete after restarting during catch-up. This might allow finalization to begin before the target has fully caught up, resulting in data loss. PCSM now preserves the clone completion timestamp during recovery and prevents finalization until synchronization is complete. +* [PCSM-345](https://perconadev.atlassian.net/browse/PCSM-345): Made the PCSM HTTP server bind host configurable. Previously, the server bound only to `localhost`, which could prevent Kubernetes probes or other services connecting through the pod or host IP from reaching PCSM. The default remains `localhost`. !!! warning Binding PCSM to `0.0.0.0` or `::` makes its HTTP endpoints reachable through network interfaces. Restrict network access appropriately, especially for control and profiling endpoints. -* [[PCSM-359](https://perconadev.atlassian.net/browse/PCSM-359)](https://perconadev.atlassian.net/browse/PCSM-359): Fixed an issue where PCSM could advance its replication checkpoint past changes that had not yet been applied. If PCSM restarted during catch-up, those changes could be skipped and documents could be missing from the target. PCSM now resumes an interrupted run from the last safely applied checkpoint. -* [[PCSM-369](https://perconadev.atlassian.net/browse/PCSM-369)](https://perconadev.atlassian.net/browse/PCSM-369): The `--mongodb-operation-timeout` flag was accepted by every subcommand, but only the server and `reset` commands actually create MongoDB clients. Passing it to `pcsm start` or `pcsm status` did nothing at all, with no indication that the value had been discarded. +* [PCSM-359](https://perconadev.atlassian.net/browse/PCSM-359): Fixed an issue where PCSM could advance its replication checkpoint past changes that had not yet been applied. If PCSM restarted during catch-up, those changes could be skipped and documents could be missing from the target. PCSM now resumes an interrupted run from the last safely applied checkpoint. +* [PCSM-369](https://perconadev.atlassian.net/browse/PCSM-369): The `--mongodb-operation-timeout` flag was accepted by every subcommand, but only the server and `reset` commands actually create MongoDB clients. Passing it to `pcsm start` or `pcsm status` did nothing at all, with no indication that the value had been discarded. The flag is now scoped to the commands that use it. If you pass it to `status`, `start`, `pause`, `resume`, or `finalize`, PCSM returns an unknown flag error rather than accepting it and ignoring it. From 183d050f9a497f0fede550d5918bc360ce87aeab Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 15:49:02 +0530 Subject: [PATCH 07/24] Refined the sections --- docs/limitations.md | 18 ++++++++---------- docs/release-notes/0.10.0.md | 10 +++------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/docs/limitations.md b/docs/limitations.md index 1482be69..e8f11928 100644 --- a/docs/limitations.md +++ b/docs/limitations.md @@ -28,19 +28,17 @@ This page lists known limitations for using {{pcsm.full_name}}. The following limitations apply specifically to sharded cluster replication: -* {{pcsm.short}} replicates the data and doesn't replicate metadata. This means that the following information is not preserved from the source cluster: +* When both the source and target are sharded clusters, {{pcsm.short}} does not continuously replicate sharding metadata. For ranged shard keys, PCSM uses the source chunk boundaries to initialize the target during the initial sync. Subsequent chunk migrations, splits, and merges are not reproduced on the target. +* The primary shard assignment is not preserved. The target cluster can use a different primary shard. +* Zone configuration is not replicated. See [Zones for sharded data :octicons-link-external-16](https://www.mongodb.com/docs/manual/core/zone-sharding/):. +* PCSM does not replicate reshardCollection, unshardCollection, or refineCollectionShardKey operations. Changes to sharding metadata made by these operations are not reproduced on the target. - * The primary shard name for a collection. The target cluster may have a different primary shard name. - * The chunk distribution information. The target cluster manages chunk distribution according to its own sharding configuration. See [Sharding support](sharding.md#limitations) for more information. - * The configuration of [zones for sharded data :octicons-link-external-16:](https://www.mongodb.com/docs/manual/core/zone-sharding/). +* Replica set to sharded cluster migrations do not apply a shard key. PCSM can copy data from a replica set source to a sharded cluster target, but the migrated collections remain unsharded. If you need sharded collections on the target, apply the required shard key separately. -* During data replication, the following commands are not supported: `movePrimary`, `reshardCollecton`, `unshardCollection`, `refineCollectionShardKey`. Running them results in failed replication and you must start it anew, from the initial data sync stage. +### Other -* Replica set to sharded cluster migrations do not apply a shard key - - * PCSM can copy data from a replica set source to a sharded cluster target. However, it does not automatically shard the migrated collections or apply a shard key on the target. - - * The migration can complete without an error or warning, but the collections remain unsharded. If your migration requires the collections to be sharded on the target, plan the sharding step separately. See, [Replica set source to sharded target](sharding.md#replica-set-source-to-sharded-target) +* A single PCSM instance synchronizes one source cluster with one target cluster. To synchronize selected namespaces from one source to different targets, run separate PCSM instances. See Replicate from one source to multiple targets. +* You cannot resume the initial synchronization after it fails. Resolve the issue and start a new synchronization run from the beginning. ## Data types diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index f55783b2..e43e6c30 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -29,11 +29,7 @@ For detailed information, see our [documentation](https://docs.percona.com/perco PCSM can now migrate collection data from a sharded source cluster to a replica set target. It copies documents from both sharded and unsharded collections. Sharded collections are created as regular collections on the replica set target, without the source cluster's sharding metadata. -For migrations between sharded clusters, PCSM can copy the source cluster's initial chunk distribution and use it to pre-split chunks on the target before the data clone. - -!!! note - - PCSM does not replay source chunk boundaries for hashed shard keys. In this case, it keeps the chunk layout created by MongoDB when the collection is sharded on the target. +For migrations between sharded clusters, PCSM now prepares the target chunk layout before cloning data. For ranged shard keys, it uses the source chunk boundaries to pre-split the target. Collections with a hashed shard key keep the initial layout created by MongoDB. To dive deeper into this topic, check out our [documentation](https://docs.percona.com/percona-clustersync-for-mongodb/sharding.html#chunk-distribution). @@ -50,7 +46,7 @@ For more insights into this feature, see our [documentation](https://docs.percon ### New features -* [PCSM-203](https://perconadev.atlassian.net/browse/PCSM-203): Added support for copying chunk distribution from the source sharded cluster to the target, allowing PCSM to pre-split chunks on the target based on the source distribution. +* [PCSM-203](https://perconadev.atlassian.net/browse/PCSM-203): For migrations between sharded clusters, PCSM now prepares the target chunk layout before cloning data. For ranged shard keys, it uses the source chunk boundaries to pre-split the target. Collections with a hashed shard key keep the initial layout created by MongoDB. * [PCSM-296](https://perconadev.atlassian.net/browse/PCSM-296): Added support for migrating data from a sharded source cluster to a replica set target. * [PCSM-302](https://perconadev.atlassian.net/browse/PCSM-302): Added Debian 13 (Trixie) AMD64 support for PCSM. * [PCSM-344](https://perconadev.atlassian.net/browse/PCSM-344): Added Debian 13 (Trixie) ARM64 support for PCSM. @@ -71,7 +67,7 @@ For more insights into this feature, see our [documentation](https://docs.percon ### Bugs -* [PCSM-249](https://perconadev.atlassian.net/browse/PCSM-249): Fixed incorrect handling of events generated by a `movePrimary` operation. The issue could cause data on the target cluster to differ from the source after `movePrimary`. +* [PCSM-249](https://perconadev.atlassian.net/browse/PCSM-249): Fixed handling of change stream events generated by movePrimary on a sharded source. These events could previously cause replicated data to be removed from the target or stop replication. PCSM now handles them without applying the internal collection changes to the target. * [PCSM-338](https://perconadev.atlassian.net/browse/PCSM-338): Fixed an issue where PCSM could incorrectly report the initial sync as complete after restarting during catch-up. This might allow finalization to begin before the target has fully caught up, resulting in data loss. PCSM now preserves the clone completion timestamp during recovery and prevents finalization until synchronization is complete. * [PCSM-345](https://perconadev.atlassian.net/browse/PCSM-345): Made the PCSM HTTP server bind host configurable. Previously, the server bound only to `localhost`, which could prevent Kubernetes probes or other services connecting through the pod or host IP from reaching PCSM. The default remains `localhost`. From 6b7da66378af8e43dc19a74a7e690efd70c91c8a Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 15:56:06 +0530 Subject: [PATCH 08/24] Update 0.10.0.md --- docs/release-notes/0.10.0.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index e43e6c30..7cc1e9d1 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -70,9 +70,6 @@ For more insights into this feature, see our [documentation](https://docs.percon * [PCSM-249](https://perconadev.atlassian.net/browse/PCSM-249): Fixed handling of change stream events generated by movePrimary on a sharded source. These events could previously cause replicated data to be removed from the target or stop replication. PCSM now handles them without applying the internal collection changes to the target. * [PCSM-338](https://perconadev.atlassian.net/browse/PCSM-338): Fixed an issue where PCSM could incorrectly report the initial sync as complete after restarting during catch-up. This might allow finalization to begin before the target has fully caught up, resulting in data loss. PCSM now preserves the clone completion timestamp during recovery and prevents finalization until synchronization is complete. * [PCSM-345](https://perconadev.atlassian.net/browse/PCSM-345): Made the PCSM HTTP server bind host configurable. Previously, the server bound only to `localhost`, which could prevent Kubernetes probes or other services connecting through the pod or host IP from reaching PCSM. The default remains `localhost`. - - !!! warning - Binding PCSM to `0.0.0.0` or `::` makes its HTTP endpoints reachable through network interfaces. Restrict network access appropriately, especially for control and profiling endpoints. * [PCSM-359](https://perconadev.atlassian.net/browse/PCSM-359): Fixed an issue where PCSM could advance its replication checkpoint past changes that had not yet been applied. If PCSM restarted during catch-up, those changes could be skipped and documents could be missing from the target. PCSM now resumes an interrupted run from the last safely applied checkpoint. * [PCSM-369](https://perconadev.atlassian.net/browse/PCSM-369): The `--mongodb-operation-timeout` flag was accepted by every subcommand, but only the server and `reset` commands actually create MongoDB clients. Passing it to `pcsm start` or `pcsm status` did nothing at all, with no indication that the value had been discarded. From 197ebe97fa4e3f40229de464261a9c8f0c436057 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 15:57:13 +0530 Subject: [PATCH 09/24] Update 0.10.0.md --- docs/release-notes/0.10.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index 7cc1e9d1..d6f8a233 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -73,5 +73,5 @@ For more insights into this feature, see our [documentation](https://docs.percon * [PCSM-359](https://perconadev.atlassian.net/browse/PCSM-359): Fixed an issue where PCSM could advance its replication checkpoint past changes that had not yet been applied. If PCSM restarted during catch-up, those changes could be skipped and documents could be missing from the target. PCSM now resumes an interrupted run from the last safely applied checkpoint. * [PCSM-369](https://perconadev.atlassian.net/browse/PCSM-369): The `--mongodb-operation-timeout` flag was accepted by every subcommand, but only the server and `reset` commands actually create MongoDB clients. Passing it to `pcsm start` or `pcsm status` did nothing at all, with no indication that the value had been discarded. - The flag is now scoped to the commands that use it. If you pass it to `status`, `start`, `pause`, `resume`, or `finalize`, PCSM returns an unknown flag error rather than accepting it and ignoring it. + The flag is now scoped to the commands that use it. If you pass it to `status`, `start`, `pause`, `resume`, or `finalize`, PCSM returns an unknown flag error rather than accepting it and ignoring it. From 7d9e999a69319c4c278d1094af4c95dc251c54df Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 16:06:32 +0530 Subject: [PATCH 10/24] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/limitations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/limitations.md b/docs/limitations.md index e8f11928..f79f574d 100644 --- a/docs/limitations.md +++ b/docs/limitations.md @@ -30,7 +30,7 @@ The following limitations apply specifically to sharded cluster replication: * When both the source and target are sharded clusters, {{pcsm.short}} does not continuously replicate sharding metadata. For ranged shard keys, PCSM uses the source chunk boundaries to initialize the target during the initial sync. Subsequent chunk migrations, splits, and merges are not reproduced on the target. * The primary shard assignment is not preserved. The target cluster can use a different primary shard. -* Zone configuration is not replicated. See [Zones for sharded data :octicons-link-external-16](https://www.mongodb.com/docs/manual/core/zone-sharding/):. +* Zone configuration is not replicated. See [Zones for sharded data :octicons-link-external-16:](https://www.mongodb.com/docs/manual/core/zone-sharding/). * PCSM does not replicate reshardCollection, unshardCollection, or refineCollectionShardKey operations. Changes to sharding metadata made by these operations are not reproduced on the target. * Replica set to sharded cluster migrations do not apply a shard key. PCSM can copy data from a replica set source to a sharded cluster target, but the migrated collections remain unsharded. If you need sharded collections on the target, apply the required shard key separately. From a9076259c65d2ce85636bebb600113adec0c2040 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 14 Sep 2026 10:39:07 +0000 Subject: [PATCH 11/24] Move generic limitations to Other section Co-authored-by: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> --- docs/limitations.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/docs/limitations.md b/docs/limitations.md index f79f574d..8b57d118 100644 --- a/docs/limitations.md +++ b/docs/limitations.md @@ -35,11 +35,6 @@ The following limitations apply specifically to sharded cluster replication: * Replica set to sharded cluster migrations do not apply a shard key. PCSM can copy data from a replica set source to a sharded cluster target, but the migrated collections remain unsharded. If you need sharded collections on the target, apply the required shard key separately. -### Other - -* A single PCSM instance synchronizes one source cluster with one target cluster. To synchronize selected namespaces from one source to different targets, run separate PCSM instances. See Replicate from one source to multiple targets. -* You cannot resume the initial synchronization after it fails. Resolve the issue and start a new synchronization run from the beginning. - ## Data types * Queryable encryption is not supported @@ -56,10 +51,8 @@ The following limitations apply specifically to sharded cluster replication: The following functionalities are not supported: -* Multiple source or multiple target clusters -* You cannot resume initial synchronization if an issue occurred. You must start it from scratch. +* A single PCSM instance synchronizes one source cluster with one target cluster. Multiple source clusters, multiple target clusters, and synchronizing selected namespaces from one source to different targets are not supported. +* You cannot resume the initial synchronization after it fails. Resolve the issue and start a new synchronization run from the beginning. * Arbitrary database upgrades during a sync are not supported. For supported staged upgrades from lower to higher MongoDB major versions, follow the cross-version replication procedure. * Reverse synchronization * External authentication via Kerberos, AWS and LDAP - - From 8ea36abe9c56a7a551a589ca715cd19748540f73 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 14 Sep 2026 10:39:36 +0000 Subject: [PATCH 12/24] Clarify per-instance sync limitation Co-authored-by: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> --- docs/limitations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/limitations.md b/docs/limitations.md index 8b57d118..45131492 100644 --- a/docs/limitations.md +++ b/docs/limitations.md @@ -51,7 +51,7 @@ The following limitations apply specifically to sharded cluster replication: The following functionalities are not supported: -* A single PCSM instance synchronizes one source cluster with one target cluster. Multiple source clusters, multiple target clusters, and synchronizing selected namespaces from one source to different targets are not supported. +* A single PCSM instance synchronizes one source cluster with one target cluster. * You cannot resume the initial synchronization after it fails. Resolve the issue and start a new synchronization run from the beginning. * Arbitrary database upgrades during a sync are not supported. For supported staged upgrades from lower to higher MongoDB major versions, follow the cross-version replication procedure. * Reverse synchronization From 5397b0fdf7d27218fb5297367788566e7b81ad18 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 16:21:03 +0530 Subject: [PATCH 13/24] Update docs/release-notes/0.10.0.md Co-authored-by: Radoslaw Szulgo --- docs/release-notes/0.10.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index d6f8a233..08839102 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -16,7 +16,7 @@ We’re excited to announce Percona ClusterSync for MongoDB (PCSM) 0.10.0. This PCSM now supports active-standby high availability during replication. For example you can run two or more instances of PCSM with the same source and target. While one of them is actively replicating the other(s) are idle in standby mode. -In the event of an active instance failure, a standby instance will take over. The replication will then continue from the last checkpoint to minimize any disruption and prevent manual intervention. +In the event of an active instance failure, one of passive instances will take over. The replication will then continue from the last checkpoint to minimize any disruption and prevent manual intervention. !!! note From 706b57c54be981f7f5474fedd60e07836865d3c6 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 16:22:53 +0530 Subject: [PATCH 14/24] Update 0.10.0.md --- docs/release-notes/0.10.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index 08839102..a4ac5a29 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -1,6 +1,6 @@ # {{ pcsm.full_name }} 0.10.0 ({{ date.v0_10_0 }}) -We’re excited to announce Percona ClusterSync for MongoDB (PCSM) 0.10.0. This release adds high availability during replication and expands migration support for sharded deployment scenarios. You can also run multiple PCSM instances against the same source cluster, with each instance synchronizing a different subset of data to a separate target. +We’re excited to announce {{ pcsm.full_name }} (PCSM) 0.10.0. This release adds high availability during replication and expands migration support for sharded deployment scenarios. You can also run multiple PCSM instances against the same source cluster, with each instance synchronizing a different subset of data to a separate target. [Get started with {{pcsm.short}}](../installation.md){.md-button} From d2d58f81e22f3606bbb12ce7cdede1038f50cb0b Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 21:47:24 +0530 Subject: [PATCH 15/24] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/release-notes/0.10.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index a4ac5a29..a1d0238e 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -16,7 +16,7 @@ We’re excited to announce {{ pcsm.full_name }} (PCSM) 0.10.0. This release add PCSM now supports active-standby high availability during replication. For example you can run two or more instances of PCSM with the same source and target. While one of them is actively replicating the other(s) are idle in standby mode. -In the event of an active instance failure, one of passive instances will take over. The replication will then continue from the last checkpoint to minimize any disruption and prevent manual intervention. +In the event of an active instance failure, one of the passive instances will take over. Replication will then continue from the last checkpoint to minimize disruption without manual intervention. !!! note From 3021ec3e82b1ad8178e3037c4dff9ac1fa30c7e5 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 22:19:38 +0530 Subject: [PATCH 16/24] updated the files --- docs/limitations.md | 7 +++---- docs/release-notes/0.10.0.md | 4 ---- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/docs/limitations.md b/docs/limitations.md index 45131492..8cc4fd27 100644 --- a/docs/limitations.md +++ b/docs/limitations.md @@ -49,10 +49,9 @@ The following limitations apply specifically to sharded cluster replication: ## Other -The following functionalities are not supported: +The following limitations apply: -* A single PCSM instance synchronizes one source cluster with one target cluster. * You cannot resume the initial synchronization after it fails. Resolve the issue and start a new synchronization run from the beginning. * Arbitrary database upgrades during a sync are not supported. For supported staged upgrades from lower to higher MongoDB major versions, follow the cross-version replication procedure. -* Reverse synchronization -* External authentication via Kerberos, AWS and LDAP +* Reverse synchronization, from the target cluster back to the source, is not supported. +* External authentication through Kerberos, LDAP, and AWS IAM is not supported. diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index a1d0238e..607eb2b3 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -18,10 +18,6 @@ PCSM now supports active-standby high availability during replication. For examp In the event of an active instance failure, one of the passive instances will take over. Replication will then continue from the last checkpoint to minimize disruption without manual intervention. -!!! note - - High availability does not make the initial clone resumable. If the active instance becomes unavailable during the initial clone, start a new run to clone the data again. - For detailed information, see our [documentation](https://docs.percona.com/percona-clustersync-for-mongodb/high-availability.html) From 2ed63a4685270aca0e26b3398103d937e482b84b Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 14 Sep 2026 22:24:21 +0530 Subject: [PATCH 17/24] Update limitations.md --- docs/limitations.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/limitations.md b/docs/limitations.md index 8cc4fd27..5aa65dac 100644 --- a/docs/limitations.md +++ b/docs/limitations.md @@ -31,8 +31,7 @@ The following limitations apply specifically to sharded cluster replication: * When both the source and target are sharded clusters, {{pcsm.short}} does not continuously replicate sharding metadata. For ranged shard keys, PCSM uses the source chunk boundaries to initialize the target during the initial sync. Subsequent chunk migrations, splits, and merges are not reproduced on the target. * The primary shard assignment is not preserved. The target cluster can use a different primary shard. * Zone configuration is not replicated. See [Zones for sharded data :octicons-link-external-16:](https://www.mongodb.com/docs/manual/core/zone-sharding/). -* PCSM does not replicate reshardCollection, unshardCollection, or refineCollectionShardKey operations. Changes to sharding metadata made by these operations are not reproduced on the target. - +* PCSM does not replicate `reshardCollection`, `unshardCollection`, or `refineCollectionShardKey` operations. Changes to sharding metadata made by these operations are not reproduced on the target. * Replica set to sharded cluster migrations do not apply a shard key. PCSM can copy data from a replica set source to a sharded cluster target, but the migrated collections remain unsharded. If you need sharded collections on the target, apply the required shard key separately. ## Data types From 133beff84efedd3363052ff7fa9303e68c778f9c Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Tue, 15 Sep 2026 11:44:12 +0530 Subject: [PATCH 18/24] Extended platform support: RHEL 10 and its derivatives, and Debian 13 --- docs/release-notes/0.10.0.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index 607eb2b3..280ae646 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -38,6 +38,18 @@ Each instance has its own namespace filters, so you can control which data is se For more insights into this feature, see our [documentation](https://docs.percona.com/percona-clustersync-for-mongodb/multiple-targets.html) +### Extended platform support: RHEL 10 and its derivatives, and Debian 13 + +PCSM 0.10.0 adds packages for new platforms, including RHEL 10 and its derivatives, and Debian 13. + +| **Platform** | **Derivative of** | **Architecture** | +|---|---|---| +| RHEL 10 | — | x86_64, ARM64 | +| Rocky Linux 10 | RHEL 10 | x86_64, ARM64 | +| AlmaLinux 10 | RHEL 10 | x86_64, ARM64 | +| Oracle Linux 10 ([RHCK :octicons-link-external-16:](https://docs.oracle.com/en/operating-systems/oracle-linux/8/boot/boot-about_linux_kernels.html){:target="_blank"} only) | RHEL 10 | x86_64, ARM64 | +| Debian 13 (Trixie) | — | x86_64, ARM64 | + ## Changelog ### New features From 7f7ee2f8bffa410358000369a9e5b344d7a45961 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Tue, 15 Sep 2026 12:04:05 +0530 Subject: [PATCH 19/24] updated files --- docs/limitations.md | 4 ++-- docs/release-notes/0.10.0.md | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/limitations.md b/docs/limitations.md index 5aa65dac..03ada8f1 100644 --- a/docs/limitations.md +++ b/docs/limitations.md @@ -4,7 +4,7 @@ author: Radoslaw Szulgo --- # Known issues and limitations -This page lists known limitations for using {{pcsm.full_name}}. +This page lists known limitations for using {{pcsm.full_name}} (PCSM). ## Versions and topology @@ -28,7 +28,7 @@ This page lists known limitations for using {{pcsm.full_name}}. The following limitations apply specifically to sharded cluster replication: -* When both the source and target are sharded clusters, {{pcsm.short}} does not continuously replicate sharding metadata. For ranged shard keys, PCSM uses the source chunk boundaries to initialize the target during the initial sync. Subsequent chunk migrations, splits, and merges are not reproduced on the target. +* When both the source and target are sharded clusters, {{pcsm.short}} does not continuously replicate sharding metadata. For ranged shard keys, PCSM uses the source chunk boundaries to initialize the target during the initial sync. Subsequent chunk migrations, splits, and merges aren't reproduced on the target. * The primary shard assignment is not preserved. The target cluster can use a different primary shard. * Zone configuration is not replicated. See [Zones for sharded data :octicons-link-external-16:](https://www.mongodb.com/docs/manual/core/zone-sharding/). * PCSM does not replicate `reshardCollection`, `unshardCollection`, or `refineCollectionShardKey` operations. Changes to sharding metadata made by these operations are not reproduced on the target. diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index 280ae646..892ca189 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -14,7 +14,7 @@ We’re excited to announce {{ pcsm.full_name }} (PCSM) 0.10.0. This release add ### High availability during replication -PCSM now supports active-standby high availability during replication. For example you can run two or more instances of PCSM with the same source and target. While one of them is actively replicating the other(s) are idle in standby mode. +PCSM now supports active-standby high availability during replication. For example you can run two or more instances of PCSM with the same source and target. While one of them is actively replicating the others are idle in standby mode. In the event of an active instance failure, one of the passive instances will take over. Replication will then continue from the last checkpoint to minimize disruption without manual intervention. @@ -27,7 +27,7 @@ PCSM can now migrate collection data from a sharded source cluster to a replica For migrations between sharded clusters, PCSM now prepares the target chunk layout before cloning data. For ranged shard keys, it uses the source chunk boundaries to pre-split the target. Collections with a hashed shard key keep the initial layout created by MongoDB. -To dive deeper into this topic, check out our [documentation](https://docs.percona.com/percona-clustersync-for-mongodb/sharding.html#chunk-distribution). +To dive deeper into this topic, check out the [documentation](https://docs.percona.com/percona-clustersync-for-mongodb/sharding.html#chunk-distribution). ### Parallel synchronization from one source to multiple targets @@ -36,9 +36,9 @@ You can run multiple {{pcsm.full_name}} (PCSM) instances against the same source Each instance has its own namespace filters, so you can control which data is sent to each target. Namespace selections can differ or overlap. This means the same source namespace can be synchronized to more than one target when needed. -For more insights into this feature, see our [documentation](https://docs.percona.com/percona-clustersync-for-mongodb/multiple-targets.html) +For more insights into this feature, see the [documentation](https://docs.percona.com/percona-clustersync-for-mongodb/multiple-targets.html) -### Extended platform support: RHEL 10 and its derivatives, and Debian 13 +### Extended platform support: Red Hat Enterprise Linux (RHEL) 10 and its derivatives, and Debian 13 PCSM 0.10.0 adds packages for new platforms, including RHEL 10 and its derivatives, and Debian 13. @@ -47,7 +47,7 @@ PCSM 0.10.0 adds packages for new platforms, including RHEL 10 and its derivativ | RHEL 10 | — | x86_64, ARM64 | | Rocky Linux 10 | RHEL 10 | x86_64, ARM64 | | AlmaLinux 10 | RHEL 10 | x86_64, ARM64 | -| Oracle Linux 10 ([RHCK :octicons-link-external-16:](https://docs.oracle.com/en/operating-systems/oracle-linux/8/boot/boot-about_linux_kernels.html){:target="_blank"} only) | RHEL 10 | x86_64, ARM64 | +| Oracle Linux 10 ([Red Hat Compatible Kernel (RHCK) :octicons-link-external-16:](https://docs.oracle.com/en/operating-systems/oracle-linux/8/boot/boot-about_linux_kernels.html){:target="_blank"} only) | RHEL 10 | x86_64, ARM64 | | Debian 13 (Trixie) | — | x86_64, ARM64 | ## Changelog From f85993b229e7d83514b9f627f15ee46f8f2a9d5c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 15 Sep 2026 11:12:39 +0000 Subject: [PATCH 20/24] Align sharding chunk distribution docs with pre-splitting behavior Co-authored-by: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> --- docs/sharding.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/sharding.md b/docs/sharding.md index 34b13d88..95a1a32a 100644 --- a/docs/sharding.md +++ b/docs/sharding.md @@ -44,9 +44,9 @@ Before starting the initial sync, {{pcsm.short}} checks which collections are sh ### Chunk distribution -{{pcsm.short}} does not preserve chunk distribution information from the source cluster. The target cluster manages chunk distribution internally through its balancer. This means that after replication, chunks may be distributed differently on the target cluster compared to the source cluster, which is expected behavior. +For migrations between sharded clusters, {{pcsm.short}} prepares the target chunk layout before cloning data. For ranged shard keys, it uses source chunk boundaries to pre-split the target. Collections with a hashed shard key keep the initial layout created by MongoDB. -Since the target cluster already has information about which collections are sharded, it handles sharding internally. {{pcsm.short}} does not interfere with the target cluster's sharding configuration or chunk distribution. +The target cluster's balancer continues to manage chunk placement. This means chunk distribution may still differ between source and target after replication, which is expected behavior. ## Usage From 012ed7c0c61cfd5dad40b9261a6740390b5f57df Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 16 Sep 2026 11:52:37 +0530 Subject: [PATCH 21/24] Update docs/limitations.md Co-authored-by: Adnan --- docs/limitations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/limitations.md b/docs/limitations.md index 03ada8f1..058bcda9 100644 --- a/docs/limitations.md +++ b/docs/limitations.md @@ -50,7 +50,7 @@ The following limitations apply specifically to sharded cluster replication: The following limitations apply: -* You cannot resume the initial synchronization after it fails. Resolve the issue and start a new synchronization run from the beginning. +* You cannot resume the clone phase after it fails. Resolve the issue and start a new synchronization run from the beginning. * Arbitrary database upgrades during a sync are not supported. For supported staged upgrades from lower to higher MongoDB major versions, follow the cross-version replication procedure. * Reverse synchronization, from the target cluster back to the source, is not supported. * External authentication through Kerberos, LDAP, and AWS IAM is not supported. From e490bf2dd7d62349e739f6d37a27895744782b5d Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 16 Sep 2026 12:36:41 +0530 Subject: [PATCH 22/24] Update 0.10.0.md --- docs/release-notes/0.10.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index 892ca189..1c4a1d35 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -64,10 +64,10 @@ PCSM 0.10.0 adds packages for new platforms, including RHEL 10 and its derivativ * [PCSM-93](https://perconadev.atlassian.net/browse/PCSM-93): Added active-standby high availability for the replication phase. Multiple PCSM instances coordinate through a lease on the target cluster, and a standby is promoted automatically when the active instance becomes unavailable. * [PCSM-241](https://perconadev.atlassian.net/browse/PCSM-241): Improved how PCSM captures the clone start timestamp. PCSM now uses `appendOplogNote` to establish a precise replication starting point after earlier in-flight writes are durable. -* [PCSM-281](https://perconadev.atlassian.net/browse/PCSM-281): Updated the Go version used to build PCSM from 1.25 to 1.26. +* [PCSM-281](https://perconadev.atlassian.net/browse/PCSM-281): Updated the Go version used to build PCSM to 1.27.1. * [PCSM-283](https://perconadev.atlassian.net/browse/PCSM-283): Improved migrations from a sharded source cluster to a replica set target. PCSM now detects the target topology and skips sharding operations that a replica set does not support. * [PCSM-312](https://perconadev.atlassian.net/browse/PCSM-312): Added support for configuring the MongoDB connection pool size using `maxPoolSize` in the source and target connection strings. -* [PCSM-322](https://perconadev.atlassian.net/browse/PCSM-322): Improved index handling during finalization. If an index is not created successfully on the target, PCSM now checks whether the index still exists on the source before trying again. This avoids unnecessary attempts to recreate indexes that are no longer present on the source. +* [PCSM-322](https://perconadev.atlassian.net/browse/PCSM-322): Improved handling of incomplete or inconsistent source indexes during finalization. * [PCSM-328](https://perconadev.atlassian.net/browse/PCSM-328): Improved migration reliability by retrying MongoDB operations that fail because of transient errors, such as brief network interruptions or timeouts. Previously, a temporary source-side failure could stop a long-running initial data copy. PCSM now retries these operations before failing the migration. * [PCSM-330](https://perconadev.atlassian.net/browse/PCSM-330): Added support for running multiple PCSM instances against the same source cluster and synchronizing selected data to separate target clusters at the same time. Each instance can use its own namespace filters. * [PCSM-335](https://perconadev.atlassian.net/browse/PCSM-335): Updated log timestamps to use RFC 3339 format, making timestamps easier to correlate with logs from other systems. From 077c174ae517abb5b64370168636830def2c5152 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Thu, 17 Sep 2026 12:15:50 +0530 Subject: [PATCH 23/24] Update limitations.md --- docs/limitations.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/limitations.md b/docs/limitations.md index 058bcda9..a4066c88 100644 --- a/docs/limitations.md +++ b/docs/limitations.md @@ -31,7 +31,8 @@ The following limitations apply specifically to sharded cluster replication: * When both the source and target are sharded clusters, {{pcsm.short}} does not continuously replicate sharding metadata. For ranged shard keys, PCSM uses the source chunk boundaries to initialize the target during the initial sync. Subsequent chunk migrations, splits, and merges aren't reproduced on the target. * The primary shard assignment is not preserved. The target cluster can use a different primary shard. * Zone configuration is not replicated. See [Zones for sharded data :octicons-link-external-16:](https://www.mongodb.com/docs/manual/core/zone-sharding/). -* PCSM does not replicate `reshardCollection`, `unshardCollection`, or `refineCollectionShardKey` operations. Changes to sharding metadata made by these operations are not reproduced on the target. +* Don't reshard a collection during an active synchronization. +  Running `reshardCollection`, `unshardCollection`, or `refineCollectionShardKey` on a collection included in an active synchronization puts PCSM into a failure state. Complete or stop the synchronization first. * Replica set to sharded cluster migrations do not apply a shard key. PCSM can copy data from a replica set source to a sharded cluster target, but the migrated collections remain unsharded. If you need sharded collections on the target, apply the required shard key separately. ## Data types From bfb3a89d22ce7374f0c8eb7df0148e472762333d Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Thu, 17 Sep 2026 12:17:44 +0530 Subject: [PATCH 24/24] removed RHCK mention --- docs/release-notes/0.10.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes/0.10.0.md b/docs/release-notes/0.10.0.md index 1c4a1d35..f2d82f1f 100644 --- a/docs/release-notes/0.10.0.md +++ b/docs/release-notes/0.10.0.md @@ -47,7 +47,7 @@ PCSM 0.10.0 adds packages for new platforms, including RHEL 10 and its derivativ | RHEL 10 | — | x86_64, ARM64 | | Rocky Linux 10 | RHEL 10 | x86_64, ARM64 | | AlmaLinux 10 | RHEL 10 | x86_64, ARM64 | -| Oracle Linux 10 ([Red Hat Compatible Kernel (RHCK) :octicons-link-external-16:](https://docs.oracle.com/en/operating-systems/oracle-linux/8/boot/boot-about_linux_kernels.html){:target="_blank"} only) | RHEL 10 | x86_64, ARM64 | +| Oracle Linux 10| RHEL 10 | x86_64, ARM64 | | Debian 13 (Trixie) | — | x86_64, ARM64 | ## Changelog