content/operate/rs/7.4/databases/configure/oss-cluster-api.md
Review [OSS Cluster API]({{< relref "/operate/rs/7.4/clusters/optimize/oss-cluster-api" >}}) to determine if you should enable this feature for your database.
The OSS Cluster API is supported only when a database meets specific criteria.
The database must:
all-master-shards or all-nodes.In addition, the database must not:
include or exclude in the proxy policy.The OSS Cluster API setting applies to individual databases instead of the entire cluster.
You can use the Cluster Manager UI or the rladmin utility to enable OSS Cluster API support for a database.
When you use the Cluster Manager UI to enable the OSS Cluster API, it automatically configures the [prerequisites]({{< relref "/operate/rs/7.4/databases/configure/oss-cluster-api#prerequisites" >}}).
To enable the OSS Cluster API for an existing database in the Cluster Manager UI:
From the database's Configuration tab, select Edit.
Expand the Clustering section.
Turn on the OSS Cluster API toggle.
{{<image filename="images/rs/screenshots/databases/config-clustering-oss-cluster-api.png" alt="Use the *OSS Cluster API* setting to enable the API for the selected database.">}}
Select Save.
You can also use the Cluster Manager UI to enable the setting when creating a new database.
rladmin)You can use the [rladmin utility]({{< relref "/operate/rs/7.4/references/cli-utilities/rladmin/" >}}) to enable the OSS Cluster API for Redis Enterprise Software databases, including Replica Of databases.
For Active-Active (CRDB) databases, use the crdb-cli utility.
Ensure the [prerequisites]({{< relref "/operate/rs/7.4/databases/configure/oss-cluster-api#prerequisites" >}}) have been configured. Then, enable the OSS Cluster API for a Redis database from the command line:
$ rladmin tune db <database name or ID> oss_cluster enabled
To determine the current setting for a database from the command line, use rladmin info db to return the value of the oss_cluster setting.
$ rladmin info db test | grep oss_cluster:
oss_cluster: enabled
The OSS Cluster API setting applies to the specified database only; it does not apply to the cluster.
Ensure the [prerequisites]({{< relref "/operate/rs/7.4/databases/configure/oss-cluster-api#prerequisites" >}}) have been configured. Then, use the crdb-cli utility to enable the OSS Cluster API for Active-Active databases:
$ crdb-cli crdb update --crdb-guid <GUID> --oss-cluster true
For best results, you should do this when you first create the database.
Here's the basic process:
Create the Active-Active database:
$ crdb-cli crdb create --name <name> \
--memory-size 10g --port <port> \
--sharding true --shards-count 2 \
--replication true --oss-cluster true --proxy-policy all-master-shards \
--instance fqdn=<fqdn>,username=<user>,password=<pass> \
--instance fqdn=<fqdn>,username=<user>,password=<pass> \
--instance fqdn=<fqdn>,username=<user>,password=<pass>
Obtain the CRDB-GUID ID for the new database:
$ crdb-cli crdb list
CRDB-GUID NAME REPL-ID CLUSTER-FQDN
<CRDB-GUID> Test 4 cluster1.local
Use the CRDB-GUID ID to enable the OSS Cluster API:
$ crdb-cli crdb update --crdb-guid <CRDB-GUID> \
--oss-cluster true
The OSS Cluster API setting applies to all of the instances of the Active-Active database.
To deactivate OSS Cluster API support for a database, either:
Use the Cluster Manager UI to turn off the OSS Cluster API toggle from the database Configuration settings.
Use the appropriate utility to deactivate the OSS Cluster API setting.
For standard databases, including Replica Of, use rladmin:
$ rladmin tune db <name or ID> oss_cluster disabled
For Active-Active databases, use crdb-cli:
$ crdb-cli crdb update --crdb-guid <CRDB-GUID> \
--oss-cluster false
When you enable the OSS Cluster API for a database, [multi-key commands]({{< relref "/operate/rc/databases/configuration/clustering#multikey-operations" >}}) are only allowed when all keys are mapped to the same slot.
To verify that your database meets this requirement, make sure that the CLUSTER KEYSLOT reply is the same for all keys affected by the multi-key command. To learn more, see [multi-key operations]({{< relref "/operate/rs/7.4/databases/durability-ha/clustering#multikey-operations" >}}).