[ 
https://issues.apache.org/jira/browse/SOLR-3755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13451408#comment-13451408
 ] 

Yonik Seeley commented on SOLR-3755:
------------------------------------

bq. Make Slice subclass ZkNodeProps

After a lot of code modification, I've realized that "ZkNodeProps" was probably 
supposed to be the same as "Replica".  I was fooled by thinking it was generic 
properties in ZK on any type of node (slice, replica, or whatever), and that 
was reinforced by it's use in other context as generic properties (messages in 
the overseer queue use ZkNodeProps as general properties - Overseer.java:125)

Given that Node also has another meaning (A Node is a CoreContainer/JVM that 
can contain multiple cores), I'm leaning toward renaming ZkNodeProps to 
Replica, and making a truly generic class ZkProps that Replica, Slice, etc, can 
subclass from.

Here's an example of the types of code changes I've been making to hopefully 
make things more readable:

{code}
-    for (Map.Entry<String,Slice> entry : slices.entrySet()) {
-      Slice slice = entry.getValue();
-      Map<String,ZkNodeProps> shards = slice.getShards();
-      Set<Map.Entry<String,ZkNodeProps>> shardEntries = shards.entrySet();
-      for (Map.Entry<String,ZkNodeProps> shardEntry : shardEntries) {
-        final ZkNodeProps node = shardEntry.getValue();
-        if 
(clusterState.liveNodesContain(node.get(ZkStateReader.NODE_NAME_PROP))) {
-          return new ZkCoreNodeProps(node).getCoreUrl();
+    for (Slice slice : slices.values()) {
+      for (Replica replica : slice.getReplicas()) {
+        if 
(clusterState.liveNodesContain(replica.get(ZkStateReader.NODE_NAME_PROP))) {
+          return new ZkCoreNodeProps(replica).getCoreUrl();
{code}

Unfortunately, when I got all done, ZK related tests were no longer passing.
I'm going to try and make another attempt and see if I can make more 
incremental changes (so that I can run tests periodically).

                
> shard splitting
> ---------------
>
>                 Key: SOLR-3755
>                 URL: https://issues.apache.org/jira/browse/SOLR-3755
>             Project: Solr
>          Issue Type: New Feature
>          Components: SolrCloud
>            Reporter: Yonik Seeley
>         Attachments: SOLR-3755.patch, SOLR-3755.patch
>
>
> We can currently easily add replicas to handle increases in query volume, but 
> we should also add a way to add additional shards dynamically by splitting 
> existing shards.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to