Revamp database requests
REST API requests to update database configuration and optimize shard placement
| Redis Enterprise Software | 
|---|
| Method | Path | Description | 
|---|---|---|
| PUT | /v1/bdbs/{uid}/actions/revamp | Update database configuration and optimize shard placement | 
Revamp database
PUT /v1/bdbs/{int: uid}/actions/revamp
Updates the topology-related configurations of an active database and optimizes the shard placement for the new configuration.
Required permissions
| Permission name | Roles | 
|---|---|
| update_bdb_with_action | admin cluster_member db_member | 
Request
You can include the following parameters in the request JSON body to update their values:
| Field | Type/Value | Description | 
|---|---|---|
| avoid_nodes | array of strings | Cluster node UIDs to avoid when placing the database's shards and binding its endpoints. | 
| bigstore_ram_size | integer | Memory size of bigstore RAM part. | 
| memory_size | integer (default: 0) | Database memory limit in bytes. 0 is unlimited. | 
| replication | boolean | If true, enable in-memory database replication mode. | 
| shards_count | integer, (range: 1-512) (default: 1) | Number of database server-side shards. | 
| shards_placement | "dense" "sparse" | Control the density of shards. Values: dense: Shards reside on as few nodes as possible. sparse: Shards reside on as many nodes as possible. | 
Example HTTP request
PUT /v1/bdbs/1/actions/revamp
{
    "replication": true,
    "shards_count": 12
}
Dry-run example:
PUT /v1/bdbs/1/actions/revamp?dry_run=true
{
  "replication": true,
  "shards_count": 12
}
URL parameters
| Field | Type | Description | 
|---|---|---|
| uid | integer | The unique ID of the database to update. | 
Query parameters
| Field | Type | Description | 
|---|---|---|
| dry_run | boolean | If true, returns a blueprint of the database update without actually changing the database. Default is false. | 
| pause_persistence | boolean | If true, pause the persistence during the update. Default is false. | 
Response
- 
If dry_runisfalse, returns anaction_uid. You can track the action's progress with aGET /v1/actions/<action_uid>request.
- 
If dry_runistrue, returns a blueprint of the database update.
Example response
If dry_run is false:
{
  "action_uid": "21ad01d5-55aa-4ec6-b5c0-44dc95176486"
}
If dry_run is true:
[
  {
    "nodes": [
      {
        "node_uid": "3",
        "role": "master"
      },
      {
        "node_uid": "1",
        "role": "slave"
      }
    ],
    "slot_range": "5461-10922"
  },
  {
    "nodes": [
      {
        "node_uid": "3",
        "role": "master"
      },
      {
        "node_uid": "1",
        "role": "slave"
      }
    ],
    "slot_range": "10923-16383"
  },
  {
    "nodes": [
      {
        "node_uid": "3",
        "role": "master"
      },
      {
        "node_uid": "1",
        "role": "slave"
      }
    ],
    "slot_range": "0-5460"
  }
]
Status codes
| Code | Description | 
|---|---|
| 200 OK | When dry_runis false: The request is accepted and is being processed. The database state will beactive-change-pendinguntil the request has been fully processed.When dry_runis true: No error. | 
| 404 Not Found | Attempting to perform an action on a nonexistent database. | 
| 406 Not Acceptable | The requested configuration is invalid. | 
| 409 Conflict | Attempting to change a database while it is busy with another configuration change. In this context, this is a temporary condition and the request should be re-attempted later. |