Commit Graph

103 Commits

Author SHA1 Message Date
Syed Paymaan Raza
c3e7542cda Update end year in copyright header 2024-08-02 09:40:11 -07:00
Yanqin Jin
626a8a1a5f SNOW-804199 Support restoring a cluster with a tenant in the error state (#357)
If we restore a cluster and a previously created tenant was not included in the backup, then the tenant will be marked in an error state on the management cluster. It is then up to the operator to resolve the error, generally by deleting the tenant and recreating it if needed.

There is, however, the possibility that we restored a backup that was older than we wanted, and a newer backup would have the tenant. If we tried to restore the newer backup, it would not leave the previously missing tenant in a fully usable state.

We need to have a way to deal with this case. One option is to allow us to clear the error state of a tenant, and that can be performed before (or maybe even after) the second restore.

Test plan:
Joshua test
100K ensemble: 20230613-225414-yajin-439d13ef3c6b3afd fail=0
2023-06-15 22:23:46 -07:00
Yanqin Jin
01fddb7799 Add ignore_capacity_limit to tenant create (#10173)
Similar to `tenant configure`, this PR adds `ignore_capacity_limit` as an optional argument to `tenant create`.
This allows the user of fdbcli to create a new tenant on an **assigned** cluster, ignoring the tenant group capacity
on that specific cluster.
When creating a tenant with `ignore_capacity_limit`.
- If the user does not specify `assigned_cluster`, this is an error.
- If the user specifies `assigned_cluster`,
  - user does not specify `tenant_group`, then the new tenant will be an ungrouped tenant on the `assigned_cluster` ignoring the capacity limit
  - user specifies `tenant_group`,
    - if `tenant_group` does not exist, then the new tenant will be created on the assigned cluster and the tenant group will be implicitly created.
    - if `tenant_group` already exists, then additional check will make sure the tenant_group's cluster matches what the user specifies.

Test plan:
Simulation and metacluster_fdbcli_tests.py
---------

Co-authored-by: A.J. Beamon <aj.beamon@snowflake.com>
2023-05-10 13:19:32 -07:00
Jon Fu
a7cf82adb2 Update fdbcli tenant list function to take tenant group filter, support JSON, and report tenant IDs (#9967)
* fix metacluster get segfault

* update fdbcli tenant list function to take tenant group filter, support JSON, and report tenant IDs

* code review changes

* code formatting

* additional code review changes

* account for empty tenant groups

* reformat error catching in fdbcli command

* refactor json output and address code review comments

* add back mistakenly removed hint

* keep hints after 4th token

* add to tenant management workload

* fix compile error

* fix test range

* add more asserts to metacluster case

* nest test condition inside if block

* adjust tenant test layout

* refactor some test files

* reorganize test workload logic
2023-04-20 16:22:47 -04:00
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
A.J. Beamon
5504a58a12 Fix formatting 2023-03-13 16:04:25 -07:00
A.J. Beamon
d39cda610a Merge branch 'main' into metacluster-improvements
# Conflicts:
#	fdbcli/TenantCommands.actor.cpp
2023-03-13 15:58:39 -07:00
Jon Fu
b751d0f87c Add tenant getId api to fdbcli (#9658)
* add tenant getId api to fdbcli

* add to fdbcli tests and address review comments

* fix fdbcli tests
2023-03-13 18:06:03 -04:00
A.J. Beamon
45056370b8 Merge branch 'main' into metacluster-improvements 2023-03-13 13:14:09 -07:00
A.J. Beamon
06decf1141 Fix memory error in fdbcil tenant lock command 2023-03-10 10:31:59 -08:00
A.J. Beamon
fa1f20a9ff Update the help text for some fdbcli tenant commands 2023-03-07 11:47:21 -08:00
A.J. Beamon
469e77158f Add metacluster support for tenant locking 2023-02-27 16:53:13 -08:00
Markus Pilman
6a55f0da26 Add missing newlines in tenant lock fdbcli command output 2023-02-27 14:02:29 -07:00
Markus Pilman
a0e347c7ba Merge remote-tracking branch 'origin/main' into features/tenant-lock-fdbcli 2023-02-27 09:09:20 -07:00
A.J. Beamon
217b52103c Clean up some code for the tenant configure command; Add a second test with an invalid configuration string, this time with an unknown token and a prior valid configuration string 2023-02-25 13:08:02 -08:00
A.J. Beamon
8c3ee768a2 Add an option to allow exceeding the tenant group capacity limit when changing tenant configuration 2023-02-24 21:01:36 -08:00
Markus Pilman
01fab190b3 add arrayGenerator for w|rw option 2023-02-24 12:01:43 -07:00
Markus Pilman
e0df60bd92 Apply suggestions from code review
Co-authored-by: A.J. Beamon <aj.beamon@snowflake.com>
2023-02-24 11:33:29 -07:00
Markus Pilman
6c15506c36 Fixed tests 2023-02-24 11:32:37 -07:00
Markus Pilman
193e517cc4 Address review comments and move lock ID into TenantMapEntry 2023-02-23 14:25:36 -07:00
Markus Pilman
46dd75ed06 Fix compilation issues after merging with main 2023-02-22 16:51:16 -07:00
Markus Pilman
230170a431 Merge remote-tracking branch 'sfc/features/tenant-lock-fdbcli' into features/tenant-lock-fdbcli 2023-02-22 16:29:28 -07:00
Markus Pilman
7d7ca0bb34 Apply suggestions from code review
Co-authored-by: A.J. Beamon <aj.beamon@snowflake.com>
2023-02-22 16:28:53 -07:00
Markus Pilman
b1762916fb Merge remote-tracking branch 'origin/main' into features/tenant-lock-fdbcli 2023-02-22 16:27:24 -07:00
Jon Fu
37fa579587 fix compile issues 2023-02-21 11:46:11 -08:00
Jon Fu
2d74d10a91 use MetaclusterAPI namespace over TenantAPI for TenantState 2023-02-21 11:33:36 -08:00
Jon Fu
ab15478ef9 Merge branch 'main' of github.com:apple/foundationdb into split-tenant-metadata 2023-02-16 10:04:07 -08:00
Markus Pilman
b79885d5b9 Merge remote-tracking branch 'origin/main' into features/tenant-lock-fdbcli
# Conflicts:
#	fdbserver/ApplyMetadataMutation.cpp
2023-02-15 18:37:18 +01: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
Markus Pilman
32684c802b Add tenant lock commands and fdcli tests 2023-02-14 16:05:21 +01:00
Markus Pilman
bba782cc56 Add command 2023-02-13 18:21:55 +01:00
Jon Fu
d981d5e9c2 initial commit to separate metadata 2023-02-08 10:44:26 -08:00
Xiaoxi Wang
e383ea2138 push down offset calculation to listTenants; optimize fdbcli tenant list implementation 2023-01-31 14:42:38 -08:00
Xiaoxi Wang
851b6e7e56 rename APIs 2023-01-31 11:16:17 -08:00
A.J. Beamon
fd13bc04c8 Update the tenant maps to be keyed by ID 2023-01-23 14:09:12 -08:00
Jon Fu
d2f0de7a36 use int macro 2022-11-30 14:31:01 -08:00
Jon Fu
3674637d37 address code review comments 2022-11-30 13:10:54 -08:00
Jon Fu
6096262597 fix compile errors 2022-11-29 16:59:20 -08:00
Jon Fu
1ad359a39f add comments and test case 2022-11-29 16:49:04 -08:00
Jon Fu
6f3c05452f introduce tenant deleteId 2022-11-22 11:54:24 -08:00
Jon Fu
2985b255fa remove unnecessary redeclaration 2022-11-14 16:39:13 -08:00
Jon Fu
a93eda244f sscanf on argument parsing 2022-11-14 16:09:31 -08:00
Jon Fu
93fb151e6c add fdbcli error handling, remove invalid state and change some offset logic 2022-11-10 14:29:01 -08:00
Jon Fu
8ef0411b32 address code review comments and introduce offset parameter 2022-11-03 11:39:39 -07:00
Jon Fu
098793893e move hints to correct generator 2022-10-26 14:50:59 -07:00
Jon Fu
f21fcf67ce initial commit to allow tenant list filtering in metacluster 2022-10-25 12:01:29 -07:00
Jon Fu
461e42bfe1 restructure updater code and add capacity check in metacluster management workload 2022-09-29 16:24:02 -07:00
Jon Fu
9d5879d2f5 fix off-by-1 problem in tenant command hint 2022-09-29 12:47:24 -07:00
Jon Fu
a29b853979 add assigned_cluster to tenant command hints in fdbcli 2022-09-29 12:18:30 -07:00