43 Commits

Author SHA1 Message Date
A.J. Beamon
807646675c Refactor the metacluster project into smaller files, and reorganize the namespaces. Move some metacluster and tenant testing helpers into the metacluster project. 2023-03-30 16:20:09 -07:00
A.J. Beamon
e61748c7d5 Move metacluster into its own directory and static library 2023-03-30 16:07:49 -07:00
Jon Fu
6c337e5c7a
fix metacluster get segfault (#9693) 2023-03-23 14:21:25 -04:00
A.J. Beamon
6b2185c707 Fix off-by-one in token hint generator for metacluster restore 2023-03-10 18:50:34 -08:00
A.J. Beamon
cbc330697c Disallow repopulating a management cluster from a data cluster with matching tenant ID prefix unless forced. Remember the largest used tenant ID on the data cluster and use it to update the management cluster tenant ID when force repopulating the same ID. 2023-03-10 15:36:37 -08:00
Nim Wijetunga
eca98afcb0 metacluster check tenant mode 2023-02-24 13:59:54 -08:00
A.J. Beamon
a5a8c57a38 Fix some merge issues and missing updates to use new boolean parameters 2023-02-22 12:52:58 -08:00
A.J. Beamon
ec79ecce73 Add a boolean parameter for ForceRemove; rename ForceJoinNewMetacluster to ForceJoin 2023-02-22 12:26:24 -08:00
A.J. Beamon
7284e691fb Fix a few minor restore bugs and add a dry-run mode. Some improvements to the fdbcli output. 2023-02-14 12:28:55 -08:00
A.J. Beamon
958ff862e0 Fix some merge issues 2023-02-13 12:59:48 -08:00
A.J. Beamon
98407809d9 Merge branch 'main' into metacluster-mgmt-restore
# Conflicts:
#	fdbcli/MetaclusterCommands.actor.cpp
#	fdbclient/Metacluster.cpp
#	fdbclient/include/fdbclient/MetaclusterManagement.actor.h
#	fdbserver/workloads/MetaclusterManagementWorkload.actor.cpp
#	tests/CMakeLists.txt
2023-02-13 12:30:33 -08:00
A.J. Beamon
e6021f8326 Add Jon's metacluster concurrency test and fix various bugs that it found 2023-02-11 15:15:32 -08:00
A.J. Beamon
4b13c9c211 Make a few minor fixes, refactor some code for clarity, and improve throughput of repopulating a management cluster 2023-02-10 10:41:55 -08:00
A.J. Beamon
f9a68056ac Add support for modifying a data cluster that is being restored so that we can manage conflicts 2023-02-09 15:33:40 -08:00
Nim Wijetunga
b7ef50d1f8 inital commit 2023-02-09 14:32:29 -08:00
A.J. Beamon
2d59c5681d Bug fixes and test improvements for management cluster restoration 2023-02-09 08:42:23 -08:00
A.J. Beamon
0410f7d9a1 Add intial support for restoring a management cluster in a metacluster 2023-02-07 15:08:46 -08:00
A.J. Beamon
56b716040f Various fixes and cleanup 2023-01-30 13:34:45 -08:00
A.J. Beamon
be5b0f451d Expand the restore test; fix some bugs mainly around renaming and changing tenant configuration during a restore 2023-01-30 13:34:45 -08:00
A.J. Beamon
af55feb493 Fix some test issues 2023-01-30 13:34:18 -08:00
A.J. Beamon
91f5347551 Add some simulated testing to the metacluster restore process; fix various issues found by the testing. 2023-01-30 13:34:18 -08:00
Sagar Vemuri
7d705ea6cd Remove duplicate code for connection string parsing now that a few other restore options are removed 2023-01-30 13:25:30 -08:00
Sagar Vemuri
8fcc393994 Misc fixes
- Added a blurb for the restore command
- Remove unnecessary if checks
- Fix the next loop start values.
2023-01-30 13:25:30 -08:00
Sagar Vemuri
226976f0a7 Change option to repopulate_from_data_cluster 2023-01-30 13:25:30 -08:00
Sagar Vemuri
22d5546206 Revert to getting the tenants from Management cluster in a loop 2023-01-30 13:25:30 -08:00
Sagar Vemuri
718074a016 Metacluster support for restoring a data cluster 2023-01-30 13:24:07 -08:00
Yanqin Jin
d461dbdd7b
Extend metacluster status on non-management clusters (#9179)
The metacluster status command in fdbcli currently reports some useful metacluster information when run on a
management cluster. We should update this command to report a status even on data clusters of a metacluster and
standalone clusters that do not belong to any metacluster.

- On data clusters, this would report that the cluster is a data cluster as well its name and the name of the metacluster it is a part of.
- On standalone clusters, status should report that the cluster is not part of a metacluster.

Test plan:
- CI
- Manual test
- Added new test `metacluster_fdbcli_tests.py` that can be run with ctest `ctest -R metacluster_fdbcli_tests`
2023-01-26 13:04:22 -08:00
Jon Fu
0fa462fca9 initial commit to trace metacluster metrics 2022-09-26 15:56:45 -07:00
A.J. Beamon
cd82f65ef5 Change the data cluster entry to use a state field rather than a locked boolean 2022-08-09 11:53:57 -07:00
A.J. Beamon
e5bf838c83 Fix metacluster register command hints, fix bug in cluster registration on retries, extend the length of the tenant management concurrency test 2022-07-28 21:02:12 -07:00
A.J. Beamon
65cfc839a6 Some various cleanup 2022-07-28 13:35:24 -07:00
A.J. Beamon
2990294f6a Make the metacluster experimental by updating the name of the command used to configure one. 2022-07-24 19:11:25 -07:00
A.J. Beamon
eccf244ba6 Add an index that allows us to allocate tenants from the non-full cluster with the most tenants already assigned to it. 2022-06-27 12:28:55 -07:00
A.J. Beamon
4b69723a2f Cleanup metadata associated with a cluster when force removing it. Move some metacluster metadata into the normal key-space. Cleanup some todos. 2022-06-24 14:55:57 -07:00
A.J. Beamon
9f3819752f Change the command to create a metacluster from using 'configure tenant_mode=management' to 'metacluster create <NAME>'. Distribute this name to all processes in a metacluster. Eliminate the tenant mode entirely from metacluster clusters, instead relying on a metacluster registration key. 2022-06-22 12:15:43 -07:00
A.J. Beamon
96fad987eb Add new command to get total metacluster capacity. Fix bug where removing a data cluster could make it impossible to create new tenants on it. Add knobs for max data clusters and max tenants. 2022-06-17 10:42:03 -07:00
A.J. Beamon
9773261a03 Expand support for tenant groups. Track where each tenant group is assigned and used groups to help assign tenants. Fix tenant state tracking bugs. Add help hints for metacluster remove FORCE. 2022-05-24 11:58:40 -07:00
A.J. Beamon
367e59dc33 Add support for getting tenant and cluster metadata in fdbcli in a JSON format 2022-05-18 14:53:25 -07:00
A.J. Beamon
98c3813431 Refactor the register logic so that only two write transactions take place. The first is to the data cluster, the second to the management cluster. 2022-05-18 11:21:39 -07:00
A.J. Beamon
e8e26c9f7c Remove the internal special key-space mechanism (at least for now), instead relying on the local logic to implement the metacluster functions. Add ability to force remove a cluster. Improve idempotency of register operation. 2022-05-18 08:18:25 -07:00
A.J. Beamon
80a3c8dd50 All metacluster operations to the management cluster go through the management cluster special key space 2022-05-09 14:50:07 -07:00
A.J. Beamon
7c3b99f5bd Add support for connection to clusters via a connection string. Start work on multi-cluster operations with data cluster registration. 2022-05-06 09:53:53 -07:00
A.J. Beamon
7e860dc92c Some initial metacluster implementation 2022-05-03 12:53:35 -07:00