Back to Redis

Revamp

content/operate/rs/references/rest-api/requests/bdbs/actions/revamp.md

latest4.1 KB
Original Source
MethodPathDescription
PUT/v1/bdbs/{uid}/actions/revampUpdate database configuration and optimize shard placement

Revamp database {#put-bdbs-actions-revamp}

sh
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 nameRoles
[update_bdb_with_action]({{< relref "/operate/rs/references/rest-api/permissions#update_bdb_with_action" >}})admin
cluster_member
db_member

Request {#put-request}

You can include the following parameters in the request JSON body to update their values:

FieldType/ValueDescription
avoid_nodesarray of stringsCluster node UIDs to avoid when placing the database's shards and binding its endpoints.
bigstore_ram_sizeintegerMemory size of bigstore RAM part.
memory_sizeinteger (default: 0)Database memory limit in bytes. 0 is unlimited.
replicationbooleanIf true, enable in-memory database replication mode.
shards_countinteger, (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

sh
PUT /v1/bdbs/1/actions/revamp
{
    "replication": true,
    "shards_count": 12
}

Dry-run example:

sh
PUT /v1/bdbs/1/actions/revamp?dry_run=true
{
  "replication": true,
  "shards_count": 12
}

URL parameters

FieldTypeDescription
uidintegerThe unique ID of the database to update.

Query parameters

FieldTypeDescription
dry_runbooleanIf true, returns a blueprint of the database update without actually changing the database. Default is false.
pause_persistencebooleanIf true, pause the persistence during the update. Default is false.

Response {#put-response}

  • If dry_run is false, returns an action_uid. You can track the action's progress with a [GET /v1/actions/<action_uid>]({{<relref "/operate/rs/references/rest-api/requests/actions#get-action">}}) request.

  • If dry_run is true, returns a blueprint of the database update.

Example response

If dry_run is false:

sh
{
  "action_uid": "21ad01d5-55aa-4ec6-b5c0-44dc95176486"
}

If dry_run is true:

sh
[
  {
    "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 {#put-status-codes}

CodeDescription
200 OKWhen dry_run is false: The request is accepted and is being processed. The database state will be active-change-pending until the request has been fully processed.
When dry_run is true: No error.
404 Not FoundAttempting to perform an action on a nonexistent database.
406 Not AcceptableThe requested configuration is invalid.
409 ConflictAttempting 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.