Skip to content

Commit 85a1813

Browse files
authored
About the ZDM phases (#209)
* hcd migration path links * update other data migration tools options * update migration process overview page
1 parent 4c0e668 commit 85a1813

File tree

4 files changed

+73
-37
lines changed

4 files changed

+73
-37
lines changed

modules/ROOT/pages/components.adoc

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,19 @@ You can use {dsbulk-migrator} alone or with {product-proxy}.
129129

130130
For more information, see xref:ROOT:dsbulk-migrator.adoc[].
131131

132-
=== Custom data migration processes
132+
=== Other data migration processes
133133

134-
If you want to write your own custom data migration processes, you can use a tool like Apache Spark(TM).
134+
Depending on your source and target databases, there might be other data migration tools available for your migration.
135+
For example, if you want to write your own custom data migration processes, you can use a tool like Apache Spark(TM).
136+
137+
To use a data migration tool with {product-proxy}, it must meet the following requirements:
138+
139+
* Built-in data validation functionality or compatibility with another data validation tool, such as {cass-migrator-short}.
140+
141+
* Avoids or minimizes changes to your data model, including column names and data types.
142+
+
143+
Because {product-proxy} requires that both databases can successfully process the same read/write statements, migrations that perform significant data transformations might not be compatible with {product-proxy}.
144+
The impact of data transformations depends on your specific data model, database platforms, and the scale of your migration.
145+
146+
For data-only migrations that aren't concerned with live application traffic or minimizing downtime, your chosen tool depends on your source and target databases, the compatibility of the data models, and the scale of your migration.
147+
Describing the full range of these tools is beyond the scope of this document, which focuses on full-scale platform migrations with the {product-short} tools and verified {product-short}-compatible data migration tools.

modules/ROOT/pages/hcd-migration-paths.adoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ During the {product-short} process, you use a xref:ROOT:migrate-and-validate-dat
2525

2626
{company} recommends that you do the following:
2727

28-
* Choose a data migration tool that also includes strong validation capabilities, such as [{cass-migrator} ({cass-migrator-short})].
28+
* Choose a data migration tool that also includes strong validation capabilities, such as xref:ROOT:cassandra-data-migrator.adoc[{cass-migrator} ({cass-migrator-short})].
2929
* Be aware of incompatible data types that can fail to migrate from your old cluster.
3030
//For example, {hcd-short} 1.2.3 doesn't support tuples in {dse-short} versions 6.8.4 and earlier.
3131

@@ -44,7 +44,7 @@ For information about clusters that are eligible for {product} to {hcd-short}, s
4444
To begin your {product} to {hcd-short}, go to xref:ROOT:introduction.adoc[].
4545

4646
You must set up your {hcd-short} clusters before you can enable the {product-proxy}.
47-
For information about installing and configuring {hcd-short}, see the xref:1.1@hyper-converged-database:get-started:get-started-hcd.adoc[{hcd-short} documentation].
47+
For information about installing and configuring {hcd-short}, see the xref:hyper-converged-database:get-started:get-started-hcd.adoc[{hcd-short} documentation].
4848

4949
== Migrate your code
5050

@@ -67,7 +67,7 @@ However, you might want to update your code to take advantage of features and im
6767
For example, {hcd-short} includes an {astra} {data-api} server that you can use for application development with your {hcd-short} databases, including vector search and hybrid search capabilities.
6868
It provides several client libraries and direct access over HTTP.
6969

70-
For more information about connecting to {hcd-short} databases, see the xref:1.1@hyper-converged-database:get-started:get-started-hcd.adoc[{hcd-short} documentation].
70+
For more information about connecting to {hcd-short} databases, see the xref:hyper-converged-database:get-started:get-started-hcd.adoc[{hcd-short} documentation].
7171

7272
== Get support for your migration
7373

modules/ROOT/pages/introduction.adoc

Lines changed: 43 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
:description: Before you begin, learn about migration concepts, software components, and the sequence of operations.
44
:page-tag: migration,zdm,zero-downtime,zdm-proxy,introduction
55

6-
With {product}, your applications can continue to run while you migrate data from one {cass-short}-based cluster to another, resulting in little or no downtime and minimal service interruptions.
6+
With {product}, your applications can continue to run while you migrate data from one {cass-short}-based database to another, resulting in little or no downtime and minimal service interruptions.
77

88
.Why migrate?
99
[%collapsible]
@@ -21,9 +21,9 @@ For example, you might move from self-managed clusters to a cloud-based Database
2121
* You want to consolidate client applications running on separate clusters onto one shared cluster to minimize sprawl and maintenance.
2222
====
2323
24-
{product-short} is comprised of {product-proxy}, {product-utility}, and {product-automation}, which orchestrate activity-in-transition on your clusters.
24+
{product-short} is comprised of {product-proxy}, {product-utility}, and {product-automation}, which orchestrate activity-in-transition on your databases.
2525
To move and validate data, you use {sstable-sideloader}, {cass-migrator}, or {dsbulk-migrator}.
26-
{product-proxy} keeps your clusters in sync at all times by a dual-write logic configuration, which means you can stop the migration or xref:rollback.adoc[roll back] at any point.
26+
{product-proxy} keeps your databases in sync at all times by a dual-write logic configuration, which means you can stop the migration or xref:rollback.adoc[roll back] at any point.
2727
For more information about these tools, see xref:ROOT:components.adoc[].
2828

2929
When the migration is complete, the data is present in the new database, and you can update your client applications to connect exclusively to the new database.
@@ -40,33 +40,29 @@ For more information, see xref:ROOT:feasibility-checklists.adoc[]
4040

4141
A migration project includes preparation for the migration and five migration phases.
4242

43-
The following sections describe the major events in each phase and how your client applications perform read and write operations on your origin and target clusters during each phase.
43+
The following sections describe the major events in each phase and how your client applications perform read and write operations on your origin and target databases during each phase.
4444

4545
The _origin_ is is your existing {cass-short}-based environment, which can be {cass}, {dse-short}, or {astra-db}.
4646
The _target_ is your new {cass-short}-based environment where you want to migrate your data and client applications.
4747

48-
=== Pre-migration client application operations
48+
=== Migration planning
4949

50-
Here's a look at a pre-migration from a high-level view.
51-
At this point, your client applications are performing read/write operations with an existing CQL-compatible database such as {cass}, {dse-short}, or {astra-db}.
50+
Before you begin a migration, your client applications perform read/write operations with your existing CQL-compatible database, such as {cass}, {dse-short}, {hcd-short}, or {astra-db}.
5251

5352
image:pre-migration0ra9.png["Pre-migration environment."]
5453

55-
//The text from this note is duplicated on the feasibility checks page.
56-
[TIP]
54+
While your application is stable with the current data model and database platform, you might need to make some adjustments before enabling {product-proxy}.
55+
56+
[IMPORTANT]
5757
====
58-
For the migration to succeed, the origin and target clusters must have matching schemas.
58+
For the migration to succeed, the origin and target databases must have matching schemas, including keyspace names, table names, column names, and data types.
5959
60-
A CQL statement that your client application sends to {product-proxy} must be able to succeed on both the origin and target clusters.
60+
A CQL statement that your client application sends to {product-proxy} must be able to succeed on both databases.
6161
62-
This means that any keyspace that your client application uses must exist on both the origin and target clusters with the same name.
63-
The table names, column names, and data types must also match.
6462
For more information, see xref:feasibility-checklists.adoc#_schemakeyspace_compatibility[Schema/keyspace compatibility].
6563
====
6664

67-
=== Migration planning
68-
69-
Before you begin the migration, plan and prepare for the migration:
65+
Before you begin the migration, plan and prepare for the migration by setting up your target infrastructure, reviewing compatibility requirements for {product-proxy}, and understanding when you can rollback the migration if necessary:
7066

7167
* xref:ROOT:feasibility-checklists.adoc[]
7268
* xref:ROOT:deployment-infrastructure.adoc[]
@@ -77,43 +73,55 @@ Before you begin the migration, plan and prepare for the migration:
7773

7874
In this first phase, deploy the {product-proxy} instances and connect client applications to the proxies.
7975
This phase activates the dual-write logic.
80-
Writes are bifurcated (sent to both the origin and target), while reads are executed on the origin only.
76+
Writes are sent to both the origin and target databases, while reads are executed on the origin only.
77+
78+
For more information and instructions, see xref:ROOT:phase1.adoc[].
8179

8280
image:migration-phase1ra9.png["Migration Phase 1."]
8381

8482
=== Phase 2: Migrate data
8583

86-
In this phase, migrate existing data using {sstable-sideloader}, {cass-migrator}, or {dsbulk-migrator}.
87-
For information about these tools, see xref:ROOT:components.adoc[].
84+
In this phase, you use a data migration tool to copy your existing data to the target database.
85+
{product-proxy} continues to perform dual writes so that you can focus on moving data that was present before you connected {product-proxy}.
86+
Then, you thoroughly validate the migrated data, resolving missing and mismatched records, before moving on to the next phase.
8887

89-
{product-proxy} will continue to perform dual writes while you move data and validate that the migrated data is correct.
88+
For more information and instructions, see xref:ROOT:migrate-and-validate-data.adoc[].
9089

9190
image:migration-phase2ra9a.png["Migration Phase 2."]
9291

9392
=== Phase 3: Enable asynchronous dual reads
9493

95-
In this optional phase, you can enable the _asynchronous dual reads_ feature to test the target cluster's ability to handle a production workload before you permanently switch your applications to the target cluster at the end of the migration process.
94+
This phase is optional but recommended.
95+
96+
In this phase, you can enable the _asynchronous dual reads_ feature to test the target database's ability to handle a production workload before you permanently switch your applications to the target database at the end of the migration process.
9697

97-
When enabled, {product-proxy} sends asynchronous read requests to the secondary cluster in addition to the synchronous read requests that are sent to the primary cluster by default.
98+
When enabled, {product-proxy} sends asynchronous read requests to the secondary database in addition to the synchronous read requests that are sent to the primary database by default.
9899

99100
For more information, see xref:ROOT:enable-async-dual-reads.adoc[] and xref:ROOT:components.adoc#how_zdm_proxy_handles_reads_and_writes[How {product-proxy} handles reads and writes].
100101

101102
image:migration-phase3ra.png["Migration Phase 3."]
102103

103-
=== Phase 4: Route reads to the target cluster
104+
=== Phase 4: Route reads to the target database
104105

105-
In this phase, read routing on {product-proxy} is switched to the target cluster so that all reads are executed on the target.
106-
Writes are still sent to both clusters.
106+
In this phase, read routing on {product-proxy} is switched to the target database so that all reads are executed on the target.
107+
Writes are still sent to both databases in case you need to rollback the migration.
107108

108-
At this point, the target becomes the primary cluster.
109+
At this point, the target database becomes the primary database.
110+
111+
For more information and instructions, see xref:ROOT:change-read-routing.adoc[].
109112

110113
image:migration-phase4ra9.png["Migration Phase 4."]
111114

112-
=== Phase 5: Connect directly to the target cluster
115+
=== Phase 5: Connect directly to the target database
116+
117+
In the final phase of the migration, you move your client applications off {product-proxy} and connect them directly to the target database.
118+
119+
Once this happens, the migration is complete, and you now exclusively use the target database.
113120

114-
In this phase, you move your client applications off {product-proxy} and connect them directly to the target cluster.
121+
Whether you choose to destroy to retain the origin database depends on your organization's policies and whether you might need to revert to it in the future.
122+
However, be aware that the origin database is no longer synchronized with the target database, and the origin database won't contain writes that happen after you disconnect {product-proxy}.
115123

116-
Once this happens, the migration is complete, and you now exclusively use the target cluster.
124+
For more information, see xref:ROOT:connect-clients-to-target.adoc[].
117125

118126
image:migration-phase5ra9.png["Migration Phase 5."]
119127

@@ -128,4 +136,9 @@ All browsers are supported except Safari.
128136
You don't need to install anything because the lab uses a pre-configured GitPod environment.
129137

130138
This lab provides an interactive, detailed walkthrough of the migration process, including pre-migration preparation and each of the five migration phases.
131-
The lab describes and demonstrates all steps and automation required to prepare for and complete a migration from any supported origin database to any supported target database.
139+
The lab describes and demonstrates all steps and automation required to prepare for and complete a migration from any supported origin database to any supported target database.
140+
141+
== Get help with your migration
142+
143+
* xref:ROOT:troubleshooting-tips.adoc[]
144+
* xref:ROOT:faqs.adoc[]

modules/ROOT/pages/migrate-and-validate-data.adoc

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,16 @@ You can use {dsbulk-migrator} alone or with {product-proxy}.
3636

3737
For more information, see xref:ROOT:dsbulk-migrator.adoc[].
3838

39-
== Custom data migration processes
39+
== Other data migration processes
4040

41-
If you want to write your own custom data migration processes, you can use a tool like Apache Spark(TM).
41+
Depending on your source and target databases, there might be other {product-short}-compatible data migration tools available, or you can write your own custom data migration processes with a tool like Apache Spark(TM).
42+
43+
To use a data migration tool with {product-proxy}, it must meet the following requirements:
44+
45+
* Built-in data validation functionality or compatibility with another data validation tool, such as {cass-migrator-short}.
46+
This is crucial to a successful migration.
47+
48+
* Preserves the data model, including column names and data types, so that {product-proxy} can send the same read/write statements to both databases successfully.
49+
+
50+
Migrations that perform significant data transformations might not be compatible with {product-proxy}.
51+
The impact of data transformations depends on your specific data model, database platforms, and the scale of your migration.

0 commit comments

Comments
 (0)