Skip to content
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

Phase 2: Support for adding/removing databases from an xcluster replication #23325

Open
yugabyte-ci opened this issue Jul 30, 2024 · 0 comments
Assignees
Labels
jira-originated kind/new-feature This is a request for a completely new feature priority/low Low priority

Comments

@yugabyte-ci
Copy link
Contributor

yugabyte-ci commented Jul 30, 2024

Jira Link: DB-12250

@yugabyte-ci yugabyte-ci added jira-originated kind/new-feature This is a request for a completely new feature priority/low Low priority status/awaiting-triage Issue awaiting triage labels Jul 30, 2024
@yugabyte-ci yugabyte-ci removed the status/awaiting-triage Issue awaiting triage label Jul 30, 2024
gargsans-yb added a commit that referenced this issue Sep 26, 2024
…ster replication (Phase 2)

Summary:
Add/Remove new databases to/from xCluster replication using yugabyted.

Commit for Phase 1: a137121 / D34956

Modifications to existing yugabyted xcluster commands:

`yugabyted xcluster checkpoint` -> `yugabyted xcluster create_checkpoint`

- Functionality is same
- Flags are same

`yugabyted xcluster set_up` (Unchanged name)

- `--bootstrap_done` is now a mandatory flag.
- Need to complete backup/restore in case data is present on source. Need to apply the schema of the database(s) to target in case of no data.

`yugabyted xcluster status` (Unchanged completely)

`yugabyted xcluster delete` -> `yugabyted xcluster delete_replication`

- Functionality is same
- Flags are same

New commands added to yugabyted:

`yugabyted xcluster add_to_checkpoint`

- Checkpoints new database(s) to be added to an existing replication.
- Needs to be run on source cluster.
- Displays the databases for which bootstrapping is required.
- Gives out the backup/restore commands if bootstrapping is required.

Flags:
```
--databases (Mandatory Flag): Comma separated list of databases to be added to existing replication.

--replication_id (Mandatory Flag): Replication id of the xcluster replication to which database(s) is to be added.
```

`yugabyted xcluster add_to_replication`

- Add database(s) to xcluster replication.
- Needs to be run on source cluster.
- Need to complete bootstrap (backup/restore or schema apply on target) before running this command.
- `--bootstrap_done` needs to be given.

Flags:
```
--target_address (Mandatory Flag): IP of any 1 of the target cluster nodes.

--replication_id (Mandatory Flag): replication_id for which replication is to be set-up.

--databases (Mandatory Flag): Comma separated list of databases that needs to be added to the replication.

--bootstrap_done (Mandatory Flag): This flag indicates that the user has completed the required bootstrapping step.
```

`yugabyted xcluster remove_database_from_replication`

- Deletes database from xcluster replication.
- Needs to be run on source.
- If target is not available, the database will be removed from replication on source only.

Flags
```
--target_address (Mandatory Flag): IP of any 1 of the target cluster nodes.

--databases (Mandatory Flag): Database(s) that needs to be removed from the replication.

--replication_id (Mandatory Flag): replication_id of the replication which is to be deleted.
```

* Deprecating the use of `/xcluster` page parsing to get databases names for source cluster.
* Using saved masters from the config file instead of getting them from API in most of the places.
Jira: DB-12250, DB-12251

Test Plan: ./yb_build.sh --java-test 'org.yb.yugabyted.*'

Reviewers: nikhil

Reviewed By: nikhil

Subscribers: sgarg-yb

Differential Revision: https://phorge.dev.yugabyte.com/D37902
fizaaluthra pushed a commit that referenced this issue Sep 27, 2024
Summary:
 12b2c40 [#23999] DocDB: Big shared memory segments
 b1e6329 [PLAT-15279] Add gzip compression to core dumps from DB.
 06472d5 [#24050] docdb: Fix re-packing rows after alter table add column with default value
 9009d11 [#23837] YSQL: Temporarily disable some tests with Connection Manager enabled
 11acca7 [#23325][#23326] yugabyted: Support for adding new databases for xCluster replication (Phase 2)
 96703da [PLAT-15465][PLAT-15466] Minor fixes in YNP
 c5aca3b [PLAT-14924][PLAT-12829][PLAT-15446] - ui bugs and improvements
 6e82692 [#23770] [#23797] YSQL: Stabilise some test failures with Connection Manager enabled
 b50bd1b [PLAT-15279] Adjusting the core pattern to create the cores with the core_ prefix for collect cores to catch it
 f692a60 [PLAT-14045] UBI-8 images don't have hostname
 d6a19da [PLAT-15377] Adding a global uncaught exception handler to yugaware
 acbb1ba [PLAT-15225] Verify there is no running master on nodes selected for master replacement
 Excluded: 3e93354 [#23686] YSQL: Build relcache foreign key list from YB catcache

Test Plan: Jenkins: rebase: pg15-cherrypicks

Reviewers: tfoucher, fizaa, telgersma

Differential Revision: https://phorge.dev.yugabyte.com/D38503
gargsans-yb added a commit that referenced this issue Oct 4, 2024
…atabases for xCluster replication (Phase 2)

Summary:
Add/Remove new databases to/from xCluster replication using yugabyted.

Commit for Phase 1: a137121 / D34956

Modifications to existing yugabyted xcluster commands:

`yugabyted xcluster checkpoint` -> `yugabyted xcluster create_checkpoint`

- Functionality is same
- Flags are same

`yugabyted xcluster set_up` (Unchanged name)

- `--bootstrap_done` is now a mandatory flag.
- Need to complete backup/restore in case data is present on source. Need to apply the schema of the database(s) to target in case of no data.

`yugabyted xcluster status` (Unchanged completely)

`yugabyted xcluster delete` -> `yugabyted xcluster delete_replication`

- Functionality is same
- Flags are same

New commands added to yugabyted:

`yugabyted xcluster add_to_checkpoint`

- Checkpoints new database(s) to be added to an existing replication.
- Needs to be run on source cluster.
- Displays the databases for which bootstrapping is required.
- Gives out the backup/restore commands if bootstrapping is required.

Flags:
```
--databases (Mandatory Flag): Comma separated list of databases to be added to existing replication.

--replication_id (Mandatory Flag): Replication id of the xcluster replication to which database(s) is to be added.
```

`yugabyted xcluster add_to_replication`

- Add database(s) to xcluster replication.
- Needs to be run on source cluster.
- Need to complete bootstrap (backup/restore or schema apply on target) before running this command.
- `--bootstrap_done` needs to be given.

Flags:
```
--target_address (Mandatory Flag): IP of any 1 of the target cluster nodes.

--replication_id (Mandatory Flag): replication_id for which replication is to be set-up.

--databases (Mandatory Flag): Comma separated list of databases that needs to be added to the replication.

--bootstrap_done (Mandatory Flag): This flag indicates that the user has completed the required bootstrapping step.
```

`yugabyted xcluster remove_database_from_replication`

- Deletes database from xcluster replication.
- Needs to be run on source.
- If target is not available, the database will be removed from replication on source only.

Flags
```
--target_address (Mandatory Flag): IP of any 1 of the target cluster nodes.

--databases (Mandatory Flag): Database(s) that needs to be removed from the replication.

--replication_id (Mandatory Flag): replication_id of the replication which is to be deleted.
```

* Deprecating the use of `/xcluster` page parsing to get databases names for source cluster.
* Using saved masters from the config file instead of getting them from API in most of the places.

Jira: DB-12250, DB-12251

Original commit: 11acca7 / D37902

Test Plan: ./yb_build.sh --java-test 'org.yb.yugabyted.*'

Reviewers: nikhil

Reviewed By: nikhil

Subscribers: sgarg-yb

Differential Revision: https://phorge.dev.yugabyte.com/D38505
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
jira-originated kind/new-feature This is a request for a completely new feature priority/low Low priority
Projects
None yet
Development

No branches or pull requests

2 participants