Set GSI Settings

  • reference
    To set the global secondary index settings use POST /settings/indexes.


    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

    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).


    Name Description Type


    Selects the index rebalance method. When set to the default false value, Index Servers rebuild any index that are newly assigned to them during a rebalance. When set to true, Couchbase Server moves a reassigned index’s files between Index Servers.



    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.



    Indexer logging level.

    Possible values are:

    • silent

    • fatal

    • error

    • warn

    • info

    • verbose

    • timing

    • debug

    • trace


    Maximum number of committed rollback points.



    In-memory snapshotting interval in milliseconds.



    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.



    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.



    Persisted snapshotting interval in milliseconds.



    Whether Bloom filters are enabled for memory management. The default is that they are disabled. See Per Page Bloom Filters.



    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


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



    Sample Curl Command

    The following example sets the global secondary index settings.

    curl -v -X POST \
    -u Administrator:password \
    -d indexerThreads=4 \
    -d logLevel=verbose \
    -d maxRollbackPoints=2 \
    -d storageMode=plasma \
    -d redistributeIndexes=false \
    -d numReplica=0 \
    -d enablePageBloomFilter=false

    Sample Response

      "redistributeIndexes": false,
      "numReplica": 0,
      "enablePageBloomFilter": false,
      "enableShardAffinity": false,
      "indexerThreads": 4,
      "memorySnapshotInterval": 200,
      "stableSnapshotInterval": 5000,
      "maxRollbackPoints": 2,
      "logLevel": "verbose",
      "storageMode": "plasma"

    This response code returns an empty body.