mirror of https://github.com/apache/lucene.git
SOLR-11586: Restored collection should use stateFormat=2 instead of 1
This commit is contained in:
parent
12d9d67dab
commit
95d287e866
|
@ -95,6 +95,8 @@ Bug Fixes
|
||||||
* SOLR-11560: Specifying the replicationFactor parameter while restoring a collection would lead to extra tlog
|
* SOLR-11560: Specifying the replicationFactor parameter while restoring a collection would lead to extra tlog
|
||||||
and pull replicas being created (Peter Szantai-Kis, Varun Thacker)
|
and pull replicas being created (Peter Szantai-Kis, Varun Thacker)
|
||||||
|
|
||||||
|
* SOLR-11586: Restored collection should use stateFormat=2 instead of 1. (Varun Thacker)
|
||||||
|
|
||||||
Optimizations
|
Optimizations
|
||||||
----------------------
|
----------------------
|
||||||
* SOLR-11285: Refactor autoscaling framework to avoid direct references to Zookeeper and Solr
|
* SOLR-11285: Refactor autoscaling framework to avoid direct references to Zookeeper and Solr
|
||||||
|
|
|
@ -36,13 +36,13 @@ import java.util.Set;
|
||||||
import org.apache.solr.client.solrj.cloud.DistributedQueue;
|
import org.apache.solr.client.solrj.cloud.DistributedQueue;
|
||||||
import org.apache.solr.client.solrj.cloud.autoscaling.PolicyHelper;
|
import org.apache.solr.client.solrj.cloud.autoscaling.PolicyHelper;
|
||||||
import org.apache.solr.cloud.overseer.OverseerAction;
|
import org.apache.solr.cloud.overseer.OverseerAction;
|
||||||
import org.apache.solr.common.cloud.ReplicaPosition;
|
|
||||||
import org.apache.solr.common.SolrException;
|
import org.apache.solr.common.SolrException;
|
||||||
import org.apache.solr.common.SolrException.ErrorCode;
|
import org.apache.solr.common.SolrException.ErrorCode;
|
||||||
import org.apache.solr.common.cloud.ClusterState;
|
import org.apache.solr.common.cloud.ClusterState;
|
||||||
import org.apache.solr.common.cloud.DocCollection;
|
import org.apache.solr.common.cloud.DocCollection;
|
||||||
import org.apache.solr.common.cloud.ImplicitDocRouter;
|
import org.apache.solr.common.cloud.ImplicitDocRouter;
|
||||||
import org.apache.solr.common.cloud.Replica;
|
import org.apache.solr.common.cloud.Replica;
|
||||||
|
import org.apache.solr.common.cloud.ReplicaPosition;
|
||||||
import org.apache.solr.common.cloud.Slice;
|
import org.apache.solr.common.cloud.Slice;
|
||||||
import org.apache.solr.common.cloud.ZkNodeProps;
|
import org.apache.solr.common.cloud.ZkNodeProps;
|
||||||
import org.apache.solr.common.cloud.ZkStateReader;
|
import org.apache.solr.common.cloud.ZkStateReader;
|
||||||
|
@ -65,18 +65,19 @@ import static org.apache.solr.cloud.OverseerCollectionMessageHandler.CREATE_NODE
|
||||||
import static org.apache.solr.cloud.OverseerCollectionMessageHandler.NUM_SLICES;
|
import static org.apache.solr.cloud.OverseerCollectionMessageHandler.NUM_SLICES;
|
||||||
import static org.apache.solr.cloud.OverseerCollectionMessageHandler.RANDOM;
|
import static org.apache.solr.cloud.OverseerCollectionMessageHandler.RANDOM;
|
||||||
import static org.apache.solr.cloud.OverseerCollectionMessageHandler.SHARDS_PROP;
|
import static org.apache.solr.cloud.OverseerCollectionMessageHandler.SHARDS_PROP;
|
||||||
|
import static org.apache.solr.common.cloud.DocCollection.STATE_FORMAT;
|
||||||
import static org.apache.solr.common.cloud.ZkStateReader.COLLECTION_PROP;
|
import static org.apache.solr.common.cloud.ZkStateReader.COLLECTION_PROP;
|
||||||
import static org.apache.solr.common.cloud.ZkStateReader.SHARD_ID_PROP;
|
import static org.apache.solr.common.cloud.ZkStateReader.MAX_SHARDS_PER_NODE;
|
||||||
|
import static org.apache.solr.common.cloud.ZkStateReader.NRT_REPLICAS;
|
||||||
|
import static org.apache.solr.common.cloud.ZkStateReader.PULL_REPLICAS;
|
||||||
|
import static org.apache.solr.common.cloud.ZkStateReader.REPLICATION_FACTOR;
|
||||||
import static org.apache.solr.common.cloud.ZkStateReader.REPLICA_TYPE;
|
import static org.apache.solr.common.cloud.ZkStateReader.REPLICA_TYPE;
|
||||||
|
import static org.apache.solr.common.cloud.ZkStateReader.SHARD_ID_PROP;
|
||||||
|
import static org.apache.solr.common.cloud.ZkStateReader.TLOG_REPLICAS;
|
||||||
import static org.apache.solr.common.params.CollectionParams.CollectionAction.CREATE;
|
import static org.apache.solr.common.params.CollectionParams.CollectionAction.CREATE;
|
||||||
import static org.apache.solr.common.params.CollectionParams.CollectionAction.CREATESHARD;
|
import static org.apache.solr.common.params.CollectionParams.CollectionAction.CREATESHARD;
|
||||||
import static org.apache.solr.common.params.CommonAdminParams.ASYNC;
|
import static org.apache.solr.common.params.CommonAdminParams.ASYNC;
|
||||||
import static org.apache.solr.common.params.CommonParams.NAME;
|
import static org.apache.solr.common.params.CommonParams.NAME;
|
||||||
import static org.apache.solr.common.cloud.ZkStateReader.REPLICATION_FACTOR;
|
|
||||||
import static org.apache.solr.common.cloud.ZkStateReader.NRT_REPLICAS;
|
|
||||||
import static org.apache.solr.common.cloud.ZkStateReader.PULL_REPLICAS;
|
|
||||||
import static org.apache.solr.common.cloud.ZkStateReader.TLOG_REPLICAS;
|
|
||||||
import static org.apache.solr.common.cloud.ZkStateReader.MAX_SHARDS_PER_NODE;
|
|
||||||
|
|
||||||
public class RestoreCmd implements OverseerCollectionMessageHandler.Cmd {
|
public class RestoreCmd implements OverseerCollectionMessageHandler.Cmd {
|
||||||
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
||||||
|
@ -153,6 +154,9 @@ public class RestoreCmd implements OverseerCollectionMessageHandler.Cmd {
|
||||||
Map<String, Object> propMap = new HashMap<>();
|
Map<String, Object> propMap = new HashMap<>();
|
||||||
propMap.put(Overseer.QUEUE_OPERATION, CREATE.toString());
|
propMap.put(Overseer.QUEUE_OPERATION, CREATE.toString());
|
||||||
propMap.put("fromApi", "true"); // mostly true. Prevents autoCreated=true in the collection state.
|
propMap.put("fromApi", "true"); // mostly true. Prevents autoCreated=true in the collection state.
|
||||||
|
if (properties.get(STATE_FORMAT) == null) {
|
||||||
|
propMap.put(STATE_FORMAT, "2");
|
||||||
|
}
|
||||||
|
|
||||||
// inherit settings from input API, defaulting to the backup's setting. Ex: replicationFactor
|
// inherit settings from input API, defaulting to the backup's setting. Ex: replicationFactor
|
||||||
for (String collProp : COLL_PROPS.keySet()) {
|
for (String collProp : COLL_PROPS.keySet()) {
|
||||||
|
|
|
@ -323,6 +323,8 @@ public abstract class AbstractCloudBackupRestoreTestCase extends SolrCloudTestCa
|
||||||
assertEquals("Different count of TlogReplica. Backup collection state=" + backupCollection + "\nRestore" +
|
assertEquals("Different count of TlogReplica. Backup collection state=" + backupCollection + "\nRestore" +
|
||||||
" collection state=" + restoreCollection, numTlogReplicas, restoreCollection.getNumTlogReplicas().intValue());
|
" collection state=" + restoreCollection, numTlogReplicas, restoreCollection.getNumTlogReplicas().intValue());
|
||||||
|
|
||||||
|
assertEquals("Restore collection should use stateFormat=2", 2, restoreCollection.getStateFormat());
|
||||||
|
|
||||||
|
|
||||||
// assert added core properties:
|
// assert added core properties:
|
||||||
// DWS: did via manual inspection.
|
// DWS: did via manual inspection.
|
||||||
|
|
Loading…
Reference in New Issue