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

David Smiley commented on SOLR-11522:
-------------------------------------

Memory efficiency and streaming and serialization and interfaces is all well 
and good -- I think those goals were already met prior to these get methods.

Here's one specific reason why I feel the design is off:  MapWriter is 
fundamentally about something that can write itself to a Map -- and it's 
javadocs confirm this obvious point.  But "get" methods are not in line with 
that; get methods suggest the current object *is* a Map.  Yet how could these 
get methods even work at all right now?  (as I asked myself in disbelief)  It's 
very non-obvious but after chasing through the rabbit, hole I'm led to 
Utils.getVal(Object obj, String key, int idx)  (line 491) which does a 
MapWriter instanceof check then proceeds to call writeMap in order to find the 
particular key that matches.  Yuck!  And of course this is {{O(N)}}.

[~hossman] do you have any opinions here?

> Suggestions/recommendations to rebalance replicas
> -------------------------------------------------
>
>                 Key: SOLR-11522
>                 URL: https://issues.apache.org/jira/browse/SOLR-11522
>             Project: Solr
>          Issue Type: Sub-task
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: AutoScaling
>            Reporter: Noble Paul
>            Priority: Major
>
> It is possible that a cluster is unbalanced even if it is not breaking any of 
> the policy rules. Some nodes may have very little load while some others may 
> be heavily loaded. So, it is possible to move replicas around so that the 
> load is more evenly distributed. This is going to be driven by preferences. 
> The way we arrive at these suggestions is going to be as follows
>  # Sort the nodes according to the given preferences
>  # Choose a replica from the most loaded node ({{source-node}}) 
>  # try adding them to the least loaded node ({{target-node}})
>  # See if it breaks any policy rules. If yes , try another {{target-node}} 
> (go to #3)
>  # If no policy rules are being broken, present this as a {{suggestion}} . 
> The suggestion contains the following information
>  #* The {{source-node}} and {{target-node}} names
>  #* The actual v2 command that can be run to effect the operation
>  # Go to step #1
>  # Do this until the a replicas can be moved in such a way that the {{target 
> node}} is more loaded than the {{source-node}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to