-
Notifications
You must be signed in to change notification settings - Fork 4
PCSM_deployment_architecture #21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 46 commits
Commits
Show all changes
53 commits
Select commit
Hold shift + click to select a range
88e6ad4
PCSM_deployment_architecture
rasika-chivate 680dd2f
updated the Toc with this topic
rasika-chivate d8ca190
Update mkdocs-base.yml
rasika-chivate ef50466
Update architecture.md
rasika-chivate b727c1b
added image
rasika-chivate 328e22d
Update architecture.md
rasika-chivate 3ae3881
Update architecture.md
rasika-chivate 733abe3
fixed the table
rasika-chivate b3e2aaa
added image pcsm_target_node_deployment
rasika-chivate 048fe53
Update architecture.md
rasika-chivate 1075536
Update architecture.md
rasika-chivate 284b9a3
Update architecture.md
rasika-chivate 4a760a2
pcsm_source_node_deployment
rasika-chivate 62e8bd8
Update architecture.md
rasika-chivate 26c79cd
Update architecture.md
rasika-chivate 45b5a75
Update architecture.md
rasika-chivate 01e1808
Update architecture.md
rasika-chivate 7abaf96
Update architecture.md
rasika-chivate 41e8b0d
Update architecture.md
rasika-chivate 1ef28d0
Update architecture.md
rasika-chivate 145da2b
updated image
rasika-chivate b7fdbd1
Create dedicated_host.png
rasika-chivate 26939b1
renamed the file
rasika-chivate e9513e0
Update pcsm_target_node_deployment.png
rasika-chivate 37c1b63
Update dedicated_host.png
rasika-chivate b1be8cf
Update .DS_Store
rasika-chivate e4d3fc2
Update pcsm_source_node_deployment.png
rasika-chivate eac9c66
Update pcsm_source_node_deployment.png
rasika-chivate 4081bbb
made minor fixes
rasika-chivate 04f0f65
Update architecture.md
rasika-chivate adacc80
added image label
rasika-chivate 5a37b2b
Update architecture.md
rasika-chivate a0eb1e7
Update architecture.md
rasika-chivate 320edb9
Update architecture.md
rasika-chivate e1f2de3
Update architecture.md
rasika-chivate 8159810
Update docs/architecture.md
rasika-chivate f37d275
Update architecture.md
rasika-chivate bb9384c
Merge branch 'PCSM_deployment_architecture' of https://github.com/per…
rasika-chivate ed3655d
Update architecture.md
rasika-chivate 626fb6b
Update dedicated_host.png
rasika-chivate b2264f4
updated images
rasika-chivate b2dd7ee
Update .gitignore
rasika-chivate 6da9221
Update docs/architecture.md
rasika-chivate 8a2f826
Update docs/architecture.md
rasika-chivate b2a1416
Update pcsm_target_node_deployment.png
rasika-chivate c344ab6
Update pcsm_source_node_deployment.png
rasika-chivate 0fe4b3a
Merge branch 'main' into PCSM_deployment_architecture
rasika-chivate 636ea42
Update .gitignore
rasika-chivate 005551d
Update docs/architecture.md
rasika-chivate cca3176
Update pcsm_target_node_deployment.png
rasika-chivate 8d4f519
Delete pcsm_dedicated_host.png
rasika-chivate 51e0eb3
Update pcsm_source_node_deployment.png
rasika-chivate 39a0ec9
Update .gitignore
rasika-chivate File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -16,3 +16,5 @@ __pycache__/ | |
| # Allow | ||
|
|
||
| !styles/config/vocabularies/Percona/** | ||
| .DS_Store | ||
| .DS_Store | ||
rasika-chivate marked this conversation as resolved.
Show resolved
Hide resolved
|
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
rasika-chivate marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
rasika-chivate marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
rasika-chivate marked this conversation as resolved.
Show resolved
Hide resolved
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
rasika-chivate marked this conversation as resolved.
Show resolved
Hide resolved
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,101 @@ | ||
| # {{plm.full_name}} deployment architecture | ||
rasika-chivate marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| Percona ClusterSync for MongoDB (PCSM) is a middleware synchronization tool that connects source and target clusters. It reads the change stream from the source cluster and applies those changes to the target cluster. | ||
|
|
||
| Since PCSM operates as a standalone binary process, its placement within your infrastructure can significantly impact performance, particularly in terms of network latency, which can affect replication time. | ||
|
|
||
| You can deploy PCSM using one of three different architectures. | ||
|
|
||
|
|
||
| ## Dedicated host (intermediary) | ||
|
|
||
| The PCSM process runs on a dedicated machine, which can be a virtual machine, container, or physical server. This machine is logically placed between the source and target clusters. Since data migration is resource-intensive, it is recommended to install PCSM as close to the target cluster as possible to reduce network latency. | ||
|
|
||
| !!! info "Recommended use" | ||
| This deployment architecture is recommended for production environments as it provides the highest level of isolation and reliability for critical data synchronization. | ||
|
|
||
|
|
||
|  | ||
|
|
||
|
|
||
| | Pros | Cons | | ||
| |------|------| | ||
| | **Resource isolation**: PCSM has its own dedicated CPU and RAM, ensuring it does not **starve** the source or target databases.| **Network latency**: Adds an extra network hop (Source → PCSM → Target), introducing some latency, which is typically negligible in modern, low-latency networks. | | ||
| | **Stability**: In the event that PCSM crashes or becomes unresponsive, both the source and target clusters will remain completely unaffected.| **Infrastructure cost**: Requires provisioning and maintaining an additional compute resource for the PCSM service. | | ||
| | **Scalability**: The PCSM host can be vertically scaled (for example, adding memory for large in-memory buffers) without modifying database hardware. | | | ||
|
|
||
|
|
||
| ## Target node (co-located) | ||
|
|
||
| The PCSM process runs directly on a primary node in the target cluster. | ||
|
|
||
|
|
||
| !!! info "Recommended use" | ||
| This deployment architecture is recommended for **one-way migrations** where the target cluster is currently empty and not serving application traffic. | ||
|
|
||
|
|
||
|  | ||
|
|
||
| | Pros | Cons | | ||
| |------|------| | ||
| | **Efficient writes:** Write operations are performed directly on the target, which helps to minimize write latency. | **Limited vertical scalability**: Scaling PCSM on this co-located node requires scaling the entire database server (CPU, RAM, and I/O), which can be unnecessary and costly and may increase resource contention with the target database. | | ||
| | **Minimizes impact on the production source cluster:** Resource contention, such as CPU and RAM spikes, affects the target cluster while leaving the production source cluster unaffected.| | ||
|
|
||
|
|
||
| ## Source node deployment (co-located) | ||
|
|
||
| The PCSM process executes directly on a primary node in the source cluster. | ||
|
|
||
|
|
||
|  | ||
|
|
||
|
|
||
| !!! warning "Recommended use" | ||
| This deployment architecture is recommended only for low-traffic source clusters or when the source node has significant available capacity. | ||
|
|
||
|
|
||
| | Pros | Cons | | ||
| |------|------| | ||
| | **Lowest read latency**: PCSM directly reads local changes from the filesystem or loopback network, which minimizes read overhead.| **Resource contention**: PCSM competes with the running source database for CPU, RAM, and network I/O resources. During heavy synchronization phases, such as the initial sync, this competition can degrade the performance of the production source cluster.| | ||
| | **Simplicity**: There is no need to provision extra hardware.| **Failure Risk**: If PCSM uses too much memory or causes an Operation system level fault, it may crash the source node.| | ||
rasika-chivate marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
|
|
||
| ## Choosing the right deployment architecture | ||
|
|
||
| | Deployment model | Recommended for | Risk level | | ||
| | ---------------- | --------------------------------------- | ---------- | | ||
| | Dedicated host | Production workloads and large datasets | Low | | ||
| | Target node | One-way migrations to idle targets | Medium | | ||
| | Source node | Low-traffic or non-critical sources | High | | ||
|
|
||
|
|
||
| ## Use cases | ||
|
|
||
|
|
||
| === ":material-server: Dedicated host" | ||
| You can use the dedicated host (intermediary) architecture in the following scenarios: | ||
|
|
||
| - When migrating production data where stability, isolation, and predictable performance are critical. | ||
|
|
||
| - Suitable for clusters with large data sizes or sustained high write throughput, where PCSM requires significant CPU and memory resources. | ||
|
|
||
| - When neither the source nor the target database nodes can tolerate additional CPU, memory, or I/O load from replication processes. | ||
|
|
||
|
|
||
| === ":material-database-arrow-right: Target node (co-located)" | ||
| You can use the target node (co-located) deployment in the following scenarios: | ||
|
|
||
| - When migrating data into a newly provisioned target cluster that is not serving application traffic yet. | ||
|
|
||
| - Useful when the target cluster is used for validation, testing, or acceptance before being promoted to production. | ||
|
|
||
| - Appropriate when minimizing write latency on the target cluster is more important than isolating replication workloads. | ||
|
|
||
| === ":material-database-arrow-left: Source node (co-located)" | ||
| You can use the source node (co-located) deployment in the following scenarios: | ||
|
|
||
| - When the source cluster handles minimal application traffic and has sufficient spare CPU, memory, and I/O capacity to accommodate PCSM without performance degradation. | ||
|
|
||
| - Suitable for non-production environments where temporary performance impact on the source cluster is acceptable. | ||
|
|
||
| - Useful when provisioning additional compute resources (such as a dedicated PCSM host) is not possible. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -160,6 +160,7 @@ nav: | |||||
| - get-help.md | ||||||
| - About Percona Link for MongoDB: | ||||||
|
||||||
| - About Percona Link for MongoDB: | |
| - About Percona ClusterSync for MongoDB: |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.