Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-11823

Incorrect number of replica calculation when using Restore Collection API

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 7.1
    • Fix Version/s: 7.5, master (8.0)
    • Component/s: Backup/Restore
    • Security Level: Public (Default Security Level. Issues are Public)
    • Labels:
      None

      Description

      I'm running Solr 7.1 (didn't test other versions) in SolrCloud mode ona a 3-node cluster and tried using the backup/restore API for the first time. Backup worked fine, but when trying to restore the backed-up collection I ran into an unexpected problem with the replication factor setting.

      I expected the command below to restore a backup of the collection "demo" with 3 shards, creating 2 replicas per shard. Instead it's trying to create 6 replicas per shard:

      # curl -s -k 'https://localhost:8983/solr/admin/collections?action=restore&name=demo&location=/srv/backup/solr/solr-dev&collection=demo&maxShardsPerNode=2&replicationFactor=2'
      {
        "error": {
          "code": 400,
          "msg": "Solr cloud with available number of nodes:3 is insufficient for restoring a collection with 3 shards, total replicas per shard 6 and maxShardsPerNode 2. Consider increasing maxShardsPerNode value OR number ofavailable nodes.",
          "metadata": [
            "error-class",
            "org.apache.solr.common.SolrException",
            "root-error-class",
            "org.apache.solr.common.SolrException"
          ]
        },
        "exception": {
          "rspCode": 400,
          "msg": "Solr cloud with available number of nodes:3 is insufficient for restoring a collection with 3 shards, total replicas per shard 6 and maxShardsPerNode 2. Consider increasing maxShardsPerNode value OR number of available nodes."
        },
        "Operation restore caused exception:": "org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Solr cloud with available number of nodes:3 is insufficient for restoring a collection with 3 shards, total replicas per shard 6 and maxShardsPerNode 2. Consider increasing maxShardsPerNode value OR number of available nodes.",
        "responseHeader": {
          "QTime": 28,
          "status": 400
        }
      }
      

      Restoring a collection with only 2 shards tries to create 6 replicas as well, so it looks to me like the restore API multiplies the replication factor with the number of nodes, which is not how the replication factor behaves in other contexts. The documentation also didn't lead me to expect this behavior:

      replicationFactor

      The number of replicas to be created for each shard.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                varunthacker Varun Thacker
                Reporter:
                awiechers Ansgar Wiechers
              • Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: