Setting a Replica-Minimum

    +
    A required minimum can be established for the number of replicas configured for a bucket.

    HTTP Methods and URIs

    POST /settings/dataService
    
    GET /settings/dataService

    Description

    Used with the POST method, the URI specifies an integer that establishes a required minimum for the number of replicas subsequently configured for every new bucket. Existing buckets are unaffected, and may continue to be used with their existing replica-configuration, even if the number is below the new minimum.

    Used with the GET method, the URI returns the current minimum.

    Curl Syntax

    curl -X POST http://<ip-address-or-domain-name>:8091/settings/dataService
      -u <username>:<password>
      -d minReplicasCount=<integer>
    
    curl -X GET http://<ip-address-or-domain-name>:8091/settings/dataService
      -u <username>:<password>

    The integer specified as the value of the minReplicasCount parameter must be an integer from 0 to 3. This integer establishes a minimum for the number of replicas that may be configured.

    Responses

    Failure to authenticate returns 401 Unauthorized. An incorrectly expressed URI returns 404 Object Not Found. Specifying a minimum outside the required range returns 400 Bad Request, and the following object: {"errors":{"minReplicasCount":"The value must be in range from 0 to 3"}}.

    Examples

    The following example establishes 2 as the minimum number of replicas required for each subsequently created bucket.

    curl -v -X POST http://localhost:8091/settings/dataService -d minReplicasCount=2 -u Administrator:password

    If successful, the call returns the following confirmation:

    {"minReplicasCount":2}

    The current established minimum number can be returned as follows:

    curl -v -X GET http://localhost:8091/settings/dataService -u Administrator:password

    Again, if the call is successful, the following confirmation is returned:

    {"minReplicasCount":2}

    In consequence of the established minimum, any attempt to create a bucket with a number of replicas that is less than the minimum generates an error, and the bucket is not created. The following example attempts to create a bucket with only 1 replica, while the established minimum is 2. The output is piped to the jq program, to facilitate readability:

    curl -v -X POST http://localhost:8091/pools/default/buckets -d name=testBucket1 -d ramQuota=100 -d replicaNumber=1 -u Administrator:password  | jq '.'

    This call fails with 400 Bad Request, and returns the following summary:

    {
      "errors": {
        "replicaNumber": "Replica number must be equal to or greater than 2"
      },
      "summaries": {
        "ramSummary": {
          "total": 1610612736,
          "otherBuckets": 0,
          "nodesCount": 3,
          "perNodeMegs": 100,
          "thisAlloc": 314572800,
          "thisUsed": 0,
          "free": 1296039936
        },
        "hddSummary": {
          "total": 396484890624,
          "otherData": 17181011926,
          "otherBuckets": 0,
          "thisUsed": 0,
          "free": 379303878698
        }
      }
    }

    The value of replicaNumber is a string describing the error. The summaries subdocument contains two objects: ramSummary and hddSummary, which respectively describe quota and usage for memory and disk. Figures are in Bytes, unless otherwise stated.

    See Also

    An explanation of replication is provided in vBuckets.