summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorGabriel Marks <gabriel.marks@mongodb.com>2022-10-21 17:00:26 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-10-21 17:34:36 +0000
commit916753069a2d1b0fda32eadf83b9006b9d09b906 (patch)
treef4e32b18df0038d6afa5ed246fc6cabad84ad325 /docs
parentba447fc286f908ce175046b1b9d3068f06167b88 (diff)
downloadmongo-916753069a2d1b0fda32eadf83b9006b9d09b906.tar.gz
SERVER-66158 Update architecture guide for Serverless Cluster Parameters
Diffstat (limited to 'docs')
-rw-r--r--docs/server-parameters.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/docs/server-parameters.md b/docs/server-parameters.md
index 3e37f97cdf0..3e58b2edd67 100644
--- a/docs/server-parameters.md
+++ b/docs/server-parameters.md
@@ -194,6 +194,10 @@ Lastly, a `setFromString` method must always be provided with the following sign
Status {name}::setFromString(StringData value, const boost::optional<TenantId>& tenantId);
```
+Note that by default, server parameters are not tenant aware and thus will always have `boost::none`
+provided as `tenantId`, unless defined as cluster server parameters (discussed
+[below](#cluster-server-parameters)).
+
Each server parameter encountered will produce a block of code to run at process startup similar to
the following:
```cpp
@@ -275,6 +279,14 @@ the current version of the cluster server parameter.
* `reset()` must be implemented and should update the cluster server parameter back to its default
value.
+All cluster server parameters are tenant-aware, meaning that on serverless clusters, each tenant has
+an isolated set of parameters. The `setClusterParameter` and `getClusterParameter` commands will pass
+the `tenantId` on the command request to the `ServerParameter`'s methods. On dedicated
+(non-serverless) clusters, `boost::none` will be passed. IDL-defined cluster server parameters will
+handle the passed-in `tenantId` automatically and store separate parameter values per-tenant.
+Specialized server parameters will have to take care to correctly handle the passed-in `tenantId` and
+to enforce tenant isolation.
+
See [server_parameter_specialized_test.idl][specialized-cluster-server-param-test-idl] and
[server_parameter_specialized_test.h][specialized-cluster-server-param-test-data] for examples.