You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ma...@apache.org on 2010/01/19 18:29:40 UTC
svn commit: r900856 - in /lucene/solr/branches/cloud/src:
java/org/apache/solr/cloud/ java/org/apache/solr/core/
java/org/apache/solr/handler/component/ test/org/apache/solr/
test/org/apache/solr/cloud/
Author: markrmiller
Date: Tue Jan 19 17:29:40 2010
New Revision: 900856
URL: http://svn.apache.org/viewvc?rev=900856&view=rev
Log:
some name refactoring to drop public facing slice and addition of Slices for multiple slices per collection
Added:
lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/Slice.java
- copied unchanged from r900847, lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/Slice.java
lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/Slices.java
Modified:
lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/CloudDescriptor.java
lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/CloudState.java
lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/ZkController.java
lucene/solr/branches/cloud/src/java/org/apache/solr/core/CoreContainer.java
lucene/solr/branches/cloud/src/java/org/apache/solr/handler/component/QueryComponent.java
lucene/solr/branches/cloud/src/test/org/apache/solr/BaseDistributedSearchTestCase.java
lucene/solr/branches/cloud/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
lucene/solr/branches/cloud/src/test/org/apache/solr/cloud/ZkControllerTest.java
Modified: lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/CloudDescriptor.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/CloudDescriptor.java?rev=900856&r1=900855&r2=900856&view=diff
==============================================================================
--- lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/CloudDescriptor.java (original)
+++ lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/CloudDescriptor.java Tue Jan 19 17:29:40 2010
@@ -19,7 +19,7 @@
public class CloudDescriptor {
- private String slice;
+ private String shardId;
private String collectionName;
private String role = "none";
@@ -31,12 +31,12 @@
this.role = role;
}
- public void setSlice(String slice) {
- this.slice = slice;
+ public void setShardId(String shardId) {
+ this.shardId = shardId;
}
- public String getSlice() {
- return slice;
+ public String getShardId() {
+ return shardId;
}
public String getCollectionName() {
Modified: lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/CloudState.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/CloudState.java?rev=900856&r1=900855&r2=900856&view=diff
==============================================================================
--- lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/CloudState.java (original)
+++ lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/CloudState.java Tue Jan 19 17:29:40 2010
@@ -24,16 +24,16 @@
// effectively immutable
public class CloudState {
- private Map<String,Slice> collectionStates = new HashMap<String,Slice>();
+ private Map<String,Slices> collectionStates = new HashMap<String,Slices>();
private List<String> nodes = null;
// nocommit
- public void addSlice(String collection, Slice slice) {
- collectionStates.put(collection, slice);
+ public void addSlices(String collection, Slices slices) {
+ collectionStates.put(collection, slices);
}
// nocommit
- public Slice getSlice(String collection) {
+ public Slices getSlices(String collection) {
return collectionStates.get(collection);
}
Added: lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/Slices.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/Slices.java?rev=900856&view=auto
==============================================================================
--- lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/Slices.java (added)
+++ lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/Slices.java Tue Jan 19 17:29:40 2010
@@ -0,0 +1,25 @@
+package org.apache.solr.cloud;
+
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.ArrayList;
+
+
+public class Slices extends ArrayList<Slice> {
+
+}
Modified: lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/ZkController.java?rev=900856&r1=900855&r2=900856&view=diff
==============================================================================
--- lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/solr/branches/cloud/src/java/org/apache/solr/cloud/ZkController.java Tue Jan 19 17:29:40 2010
@@ -68,7 +68,7 @@
private final static Pattern URL_PREFIX = Pattern.compile("(https?://).*");
// package private for tests
- static final String SLICES_ZKNODE = "/slices";
+ static final String SHARDS_ZKNODE = "/shards";
// nocommit : ok to be public? for corecontainer access
public static final String CONFIGS_ZKNODE = "/configs";
static final String COLLECTIONS_ZKNODE = "/collections";
@@ -150,9 +150,9 @@
* conditions
* @param collection2
*/
- private void addZkShardsNode(String slice, String collection) throws IOException {
+ private void addZkShardsNode(String shardId, String collection) throws IOException {
- String shardsZkPath = COLLECTIONS_ZKNODE + "/" + collection + SLICES_ZKNODE + "/" + slice;
+ String shardsZkPath = COLLECTIONS_ZKNODE + "/" + collection + SHARDS_ZKNODE + "/" + shardId;
try {
// shards node
@@ -163,7 +163,7 @@
// makes shards zkNode if it doesn't exist
zkClient.makePath(shardsZkPath, CreateMode.PERSISTENT, null);
- // ping that there is a new collection (nocommit : or now possibly a new slice)
+ // ping that there is a new collection (nocommit : or now possibly a new shardId?)
zkClient.setData(COLLECTIONS_ZKNODE, (byte[])null);
}
} catch (KeeperException e) {
@@ -398,13 +398,15 @@
List<String> collections = getCollectionNames();
// nocommit : load all collection info
for (String collection : collections) {
- String slicePaths = COLLECTIONS_ZKNODE + "/" + collection + SLICES_ZKNODE;
- List<String> sliceNames = zkClient.getChildren(slicePaths, null);
- for(String sliceZkPath : sliceNames) {
- Map<String,ZkNodeProps> shards = readShards(slicePaths + "/" + sliceZkPath);
- Slice slice = new Slice(shards);
- cloudInfo.addSlice(collection, slice);
+ String shardIdPaths = COLLECTIONS_ZKNODE + "/" + collection + SHARDS_ZKNODE;
+ List<String> shardIdNames = zkClient.getChildren(shardIdPaths, null);
+ Slices slices = new Slices();
+ for(String shardIdZkPath : shardIdNames) {
+ Map<String,ZkNodeProps> shardsMap = readShards(shardIdPaths + "/" + shardIdZkPath);
+ Slice slice = new Slice(shardsMap);
+ slices.add(slice);
}
+ cloudInfo.addSlices(collection, slices);
}
@@ -549,11 +551,11 @@
String collection = cloudDesc.getCollectionName();
String nodePath = null;
- String shardsZkPath = COLLECTIONS_ZKNODE + "/" + collection + SLICES_ZKNODE + "/" + cloudDesc.getSlice();
+ String shardsZkPath = COLLECTIONS_ZKNODE + "/" + collection + SHARDS_ZKNODE + "/" + cloudDesc.getShardId();
// build layout if not exists
// nocommit : consider how we watch shards on all collections
- addZkShardsNode(cloudDesc.getSlice(), collection);
+ addZkShardsNode(cloudDesc.getShardId(), collection);
// create node
ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -629,8 +631,8 @@
collections = zkClient.getChildren(COLLECTIONS_ZKNODE, null);
for(String collection : collections) {
- for(String slice : zkClient.getChildren(COLLECTIONS_ZKNODE + "/" + collection + SLICES_ZKNODE, null)) {
- zkClient.getChildren(COLLECTIONS_ZKNODE + "/" + collection + SLICES_ZKNODE + "/" + slice, shardWatcher);
+ for(String shardId : zkClient.getChildren(COLLECTIONS_ZKNODE + "/" + collection + SHARDS_ZKNODE, null)) {
+ zkClient.getChildren(COLLECTIONS_ZKNODE + "/" + collection + SHARDS_ZKNODE + "/" + shardId, shardWatcher);
}
}
}
Modified: lucene/solr/branches/cloud/src/java/org/apache/solr/core/CoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/cloud/src/java/org/apache/solr/core/CoreContainer.java?rev=900856&r1=900855&r2=900856&view=diff
==============================================================================
--- lucene/solr/branches/cloud/src/java/org/apache/solr/core/CoreContainer.java (original)
+++ lucene/solr/branches/cloud/src/java/org/apache/solr/core/CoreContainer.java Tue Jan 19 17:29:40 2010
@@ -80,7 +80,7 @@
protected String solrConfigFilenameOverride;
protected String solrDataDirOverride;
protected String zkPortOverride;
- private String testSliceOverride;
+ private String testShardIdOverride;
private ZkController zooKeeperController;
private String zkHost;
@@ -185,7 +185,7 @@
cores = new CoreContainer();
cores.solrDataDirOverride = dataDir;
cores.zkPortOverride = zkPortOverride;
- cores.testSliceOverride = testShardListOverride;
+ cores.testShardIdOverride = testShardListOverride;
if (fconf.exists())
cores.load(solrHome, fconf);
else {
@@ -363,14 +363,14 @@
p.setSchemaName(opt);
}
// nocommit : default shard list to SHARD: + host:port + context + core
- opt = DOMUtil.getAttr(node, "slice", null);
- if(testSliceOverride != null && name.equals("")) {
- p.getCloudDescriptor().setSlice(testSliceOverride);
+ opt = DOMUtil.getAttr(node, "shardId", null);
+ if(testShardIdOverride != null && name.equals("")) {
+ p.getCloudDescriptor().setShardId(testShardIdOverride);
} else if(zooKeeperController != null) {
if(opt == null) {
- opt = "SLICE:" + zooKeeperController.getHostName() + ":" + hostPort + "_" + hostContext + "_" + (name.length() == 0 ? "" : "_" + name);
+ opt = "SHARDID:" + zooKeeperController.getHostName() + ":" + hostPort + "_" + hostContext + "_" + (name.length() == 0 ? "" : "_" + name);
}
- p.getCloudDescriptor().setSlice(opt);
+ p.getCloudDescriptor().setShardId(opt);
}
opt = DOMUtil.getAttr(node, "role", null);
if(opt != null) {
Modified: lucene/solr/branches/cloud/src/java/org/apache/solr/handler/component/QueryComponent.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/cloud/src/java/org/apache/solr/handler/component/QueryComponent.java?rev=900856&r1=900855&r2=900856&view=diff
==============================================================================
--- lucene/solr/branches/cloud/src/java/org/apache/solr/handler/component/QueryComponent.java (original)
+++ lucene/solr/branches/cloud/src/java/org/apache/solr/handler/component/QueryComponent.java Tue Jan 19 17:29:40 2010
@@ -41,6 +41,7 @@
import org.apache.solr.util.SolrPluginUtils;
import org.apache.solr.cloud.CloudState;
import org.apache.solr.cloud.Slice;
+import org.apache.solr.cloud.Slices;
import org.apache.solr.cloud.ZkNodeProps;
@@ -150,14 +151,16 @@
cloudState = req.getCore().getCoreDescriptor().getCoreContainer().getZooKeeperController().getCloudState();
}
String sliceStr = rb.slices[i];
- Slice slice = cloudState.getSlice(sliceStr);
+ Slices slices = cloudState.getSlices(sliceStr);
- if (slice==null) {
+ if (slices==null || slices.size() == 0) {
// TODO: we could treat this as "all servers down" for a slice if partial results are enabled.
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "no such slice: " + sliceStr);
}
- Map<String, ZkNodeProps> sliceShards = slice.getShards();
+
+ // nocommit : just using the first slice
+ Map<String, ZkNodeProps> sliceShards = slices.get(0).getShards();
// For now, recreate the | delimited list of equivalent servers
StringBuilder sliceShardsStr = new StringBuilder();
Modified: lucene/solr/branches/cloud/src/test/org/apache/solr/BaseDistributedSearchTestCase.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/cloud/src/test/org/apache/solr/BaseDistributedSearchTestCase.java?rev=900856&r1=900855&r2=900856&view=diff
==============================================================================
--- lucene/solr/branches/cloud/src/test/org/apache/solr/BaseDistributedSearchTestCase.java (original)
+++ lucene/solr/branches/cloud/src/test/org/apache/solr/BaseDistributedSearchTestCase.java Tue Jan 19 17:29:40 2010
@@ -192,8 +192,8 @@
return createJetty(baseDir, dataDirName, null, null);
}
- public JettySolrRunner createJetty(File baseDir, String dataDirName, String slice) throws Exception {
- return createJetty(baseDir, dataDirName, slice, null);
+ public JettySolrRunner createJetty(File baseDir, String dataDirName, String shardId) throws Exception {
+ return createJetty(baseDir, dataDirName, shardId, null);
}
public JettySolrRunner createJetty(File baseDir, String dataDirName, String shardList, String solrConfigOverride) throws Exception {
Modified: lucene/solr/branches/cloud/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/cloud/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java?rev=900856&r1=900855&r2=900856&view=diff
==============================================================================
--- lucene/solr/branches/cloud/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java (original)
+++ lucene/solr/branches/cloud/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java Tue Jan 19 17:29:40 2010
@@ -57,13 +57,13 @@
String invalidField="invalid_field_not_in_schema";
protected void createServers(int numShards) throws Exception {
- controlJetty = createJetty(testDir, "control", "control_slice");
+ controlJetty = createJetty(testDir, "control", "control_shardId");
controlClient = createNewSolrServer(controlJetty.getLocalPort());
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= numShards; i++) {
if (sb.length() > 0) sb.append(',');
- JettySolrRunner j = createJetty(testDir, "jetty" + i, "slice" + (i + 2));
+ JettySolrRunner j = createJetty(testDir, "jetty" + i, "shardId" + (i + 2));
jettys.add(j);
clients.add(createNewSolrServer(j.getLocalPort()));
sb.append("localhost:").append(j.getLocalPort()).append(context);
Modified: lucene/solr/branches/cloud/src/test/org/apache/solr/cloud/ZkControllerTest.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/cloud/src/test/org/apache/solr/cloud/ZkControllerTest.java?rev=900856&r1=900855&r2=900856&view=diff
==============================================================================
--- lucene/solr/branches/cloud/src/test/org/apache/solr/cloud/ZkControllerTest.java (original)
+++ lucene/solr/branches/cloud/src/test/org/apache/solr/cloud/ZkControllerTest.java Tue Jan 19 17:29:40 2010
@@ -57,7 +57,7 @@
AbstractZkTestCase.makeSolrZkNode();
zkClient = new SolrZkClient(ZOO_KEEPER_ADDRESS, TIMEOUT);
- String shardsPath = "/collections/collection1/slices/slice1";
+ String shardsPath = "/collections/collection1/shards/shardid1";
zkClient.makePath(shardsPath);
zkClient.makePath("collections/collection1/config=collection1");
@@ -76,13 +76,15 @@
"localhost", "8983", "/solr");
zkController.updateCloudState();
CloudState cloudInfo = zkController.getCloudState();
- Slice slice = cloudInfo.getSlice("collection1");
- assertNotNull(slice);
+ Slices slices = cloudInfo.getSlices("collection1");
+ assertNotNull(slices);
if (DEBUG) {
- for (String shard : slice.getShards().keySet()) {
- System.out.println("shard:" + shard);
+ for(Slice slice : slices) {
+ for (String shard : slice.getShards().keySet()) {
+ System.out.println("shard:" + shard);
+ }
}
}