A newer version of this documentation is available.

View Latest
February 16, 2025
+ 12
To set the global secondary index settings use POST /settings/indexes.

Description

This endpoint is used to update the global secondary index settings for the cluster. The request is handled and validated by the cluster manager and then delegated to all relevant index nodes automatically. All changes to the index settings via this method apply to all index nodes in the cluster. Parameters which are not specified are left unchanged, it is not necessary to specify all parameters in the body.

HTTP Method and URI

http
POST http://<host>:8091/settings/indexes

Body Parameters

All of the following parameters are passed in the request body as application/x-www-form-urlencoded data. The parameters are specified as key-value pairs (e.g key=value).

Optional

Name Description Type

indexerThreads

Number of threads for the indexer process to use, this applies equally to all index nodes in the cluster regardless of the number of cores on each node. A value of 0 causes the indexer process to use one thread per CPU core on each individual node.

integer

logLevel

Indexer logging level.

Possible values are:

  • silent

  • fatal

  • error

  • warn

  • info

  • verbose

  • timing

  • debug

  • trace

maxRollbackPoints

Maximum number of committed rollback points.

integer

memorySnapshotInterval

In-memory snapshotting interval in milliseconds.

integer

numReplica

The default number of index replicas to be created by the Index Service whenever CREATE INDEX is invoked. For further details, refer to Index Replication.

integer

redistributeIndexes

When true, Couchbase Server redistributes indexes when rebalance occurs, in order to optimize performance. If false (the default), such redistribution does not occur. For further details, refer to Rebalancing the Index Service.

boolean

stableSnapshotInterval

Persisted snapshotting interval in milliseconds.

integer

storageMode

The storage mode to be used for all global secondary indexes in the cluster.


In the Enterprise Edition of Couchbase Server, the options are plasma and memory_optimized. A value of plasma sets the cluster-wide index storage mode to use the Plasma storage engine, which can utilize both memory and persistent storage for index maintenance and index scans. A value of memory_optimized sets the cluster-wide index storage mode to use memory optimized global secondary indexes which can perform index maintenance and index scan faster at in-memory speeds.

This setting can only be changed while there are no index nodes in the cluster. To change from standard GSI to memory optimized GSI or vice versa, you need to remove all the index service nodes in the cluster.


If you are using the Community Edition, the default (and only) value is forestdb.

Possible values are:

  • plasma

  • memory_optimized

  • forestdb

Response Codes

Response Code Description

200

Success. Settings are updated and the new settings are returned in the response.

401

Unauthorized.

Sample Curl Command

The following example sets the global secondary index settings.

curl -v -X POST -u Administrator:password \
http://localhost:8091/settings/indexes \
-d indexerThreads=4 \
-d logLevel=verbose \
-d maxRollbackPoints=10 \
-d storageMode=plasma \
-d memorySnapshotInterval=150 \
-d stableSnapshotInterval=40000

Sample Response

200
{
  "redistributeIndexes": false,
  "numReplica": 0,
  "indexerThreads": 4,
  "memorySnapshotInterval": 150,
  "stableSnapshotInterval": 40000,
  "maxRollbackPoints": 10,
  "logLevel": "verbose",
  "storageMode": "plasma"
}
401

This response code returns an empty body.