[GitHub] [lucene-solr] chatman commented on pull request #1684: SOLR-14613: strongly typed placement plugin interface and implementation

2020-09-04 Thread GitBox


chatman commented on pull request #1684:
URL: https://github.com/apache/lucene-solr/pull/1684#issuecomment-687329334


   I withdraw all outstanding concerns. Verbosity, clunkiness of configuration
   etc are all my "perceptions" that I don't want to come in the way of the
   completion of this effort.
   
   >
   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[GitHub] [lucene-solr] chatman commented on pull request #1684: SOLR-14613: strongly typed placement plugin interface and implementation

2020-09-03 Thread GitBox


chatman commented on pull request #1684:
URL: https://github.com/apache/lucene-solr/pull/1684#issuecomment-686808345


   > Wow. I'm not even sure that would be polite to say to a junior engineer 
(that may be presumed to not know concurrency) than a very senior one here. I 
think you know full well that Ilan doesn't need your help writing concurrent 
code. Yet why would you offer help? I think this is a false offer (you know 
Ilan will not take you up on this); -- it's a pejorative offer that belittles 
who you offer it to as being beneath the abilities of your own. I wonder why 
you would say that? Maybe you don't believe it's worth it to make it easier for 
plugin writers at the expense of Solr having such concurrent code (i.e. where 
does the concurrency/complexity go) -- fare, but then just say that without 
belittling anyone's intelligence.
   
   Ilan is a reasonably new committer, so I am not fully aware of his 
background or his "seniority". I just offered help in writing concurrent code 
that I consider clean. But, now you have made couple of assertions that I will 
keep in mind:
   "Ilan doesn't need your help writing concurrent code"
   "Ilan will not take you up on this"
   
   
   > "pejorative offer that belittles who you offer it"
   > "as being beneath the abilities of your own"
   > "belittling [..] intelligence"
   
   Even though I won't stop you representing/misrepresenting Ilan as you have 
done above (by claiming he is not open to help in this area), at least please 
don't put misrepresent me with the motives behind my words. Just to clarify: I 
thought Ilan was inclined towards having tons of classes (and thereby 
"polluting solr-core") because he wanted to avoid having the plugins make 
concurrent requests, since I thought he perceived doing so as complicated. I am 
of course not doubting anyone's ability to write concurrent code (and of course 
not "belittling anyone's intelligence"), but I wanted to offer suggestions on 
doing so *cleanly* (without complications).



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[GitHub] [lucene-solr] chatman commented on pull request #1684: SOLR-14613: strongly typed placement plugin interface and implementation

2020-09-03 Thread GitBox


chatman commented on pull request #1684:
URL: https://github.com/apache/lucene-solr/pull/1684#issuecomment-686380223


   I broadly agree with those principals, and I'm sure everyone does.
   
   >1. placement plugin writing is easy, 
   Agree, but not at the cost of complicated server side code that resides in 
solr-core.
   
   > 2. implementation for this placement API is efficient, and 
   +1
   
   > 3. plugins do not break when Solr is refactored (plugins might be client 
private so can’t be refactored when Solr code changes).
   Mostly agree, but not at the cost of thousands of classes. There are simpler 
ways, as I think we now are clear on, to achieve the same goal.
   
   I would also like you to consider another goal (which, IMHO, is *most 
important*), which is to keeping the solr-core as lean, clean and the footprint 
of doing so as minimal as possible. Everything that can be done outside 
solr-core should be done. Autoscaling is not a first class citizen in a search 
engine, but replica assignment/placement can arguably be so.
   
   > Can we make this assumption? Plugin requests a set of properties from a 
set of nodes, and this is done efficiently.
   If so I'll gladly simplify my proposal
   
   +1. I'm glad we're all on the same page (at least on the verbosity aspect). 
Thanks for your work, @murblanc.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[GitHub] [lucene-solr] chatman commented on pull request #1684: SOLR-14613: strongly typed placement plugin interface and implementation

2020-09-03 Thread GitBox


chatman commented on pull request #1684:
URL: https://github.com/apache/lucene-solr/pull/1684#issuecomment-686357674


   > Please also remember that we are on a deadline - we need to have some kind 
of replacement for the autoscaling in 9.0.
   
   +1, this is the cause for maximum urgency at the moment.
   
   We need to:
   1. design the interfaces, 
   2. design the proper user interaction layer (DSL?), 
   3. build efficient implementations. 
   
   We cannot afford to be stuck at step 1. However, building a frankenstein 
framework as part of 1 is not conducive for overall goals of making/keeping 
Solr lean and clean.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[GitHub] [lucene-solr] chatman commented on pull request #1684: SOLR-14613: strongly typed placement plugin interface and implementation

2020-09-03 Thread GitBox


chatman commented on pull request #1684:
URL: https://github.com/apache/lucene-solr/pull/1684#issuecomment-686355702


   > @noblepaul & @chatman I find the tone of your latest comments offensive - 
that's no way to build a consensus. Please think twice before posting and calm 
down - if you have a different opinion about technical merits of this PR then 
I'm sure you can express it without personal attacks.
   
   I don't see how Noble's comments can construed as offensive. I may be biased 
in favour of my own comments, but I apologise if they were perceived as such. 
In any case, there is no personal attack anywhere.
   
   > By all means, if you disagree so strongly with the approach presented here 
then please do so - just be sure that you actually will do it instead of just 
complaining.
   
   I find choice of such words (" instead of just complaining") as 
unprofessional. This is a proposal, and comments are added to critique the 
design, not complain.
   
   On the other hand, Ilan wrote this on Slack:
   
   > If there’s consensus for Noble’s approach (or for that matter no consensus 
that goals 1-3 above are good guiding principles), I will stop work on 
SOLR-14613 and move on to other unrelated topics.
   
   Such threats of "stop work" unless one's design is agreed upon should cease, 
and constructive ways to collaborate should be explored.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[GitHub] [lucene-solr] chatman commented on pull request #1684: SOLR-14613: strongly typed placement plugin interface and implementation

2020-09-03 Thread GitBox


chatman commented on pull request #1684:
URL: https://github.com/apache/lucene-solr/pull/1684#issuecomment-686320915


   > Yeah, the solution to API surface area problem is to make them inner 
classes/interfaces. This is such a elegant & simple proposition. We should try 
the same in other places in Solr where there is a surface area problem.
   
   Totally disagree, @noblepaul. I hope you're not serious here. Having getter 
methods like getFreeDiskSpace() etc. are better than having a FreeDiskProperty 
class, no matter it is inner or outer.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[GitHub] [lucene-solr] chatman commented on pull request #1684: SOLR-14613: strongly typed placement plugin interface and implementation

2020-09-03 Thread GitBox


chatman commented on pull request #1684:
URL: https://github.com/apache/lucene-solr/pull/1684#issuecomment-686316250


   > If the plugin requests data node by node, it's either sequential or forces 
the plugin to implement the concurrency mechanism itself, making it more 
complicated.
   
   Plugin making concurrent requests is "complicated"? Java is hard, but I can 
help you write a plugin that can make concurrent requests cleanly. Please don't 
pollute solr-core because of your perceived inability to do so cleanly from a 
plugin.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[GitHub] [lucene-solr] chatman commented on pull request #1684: SOLR-14613: strongly typed placement plugin interface and implementation

2020-09-03 Thread GitBox


chatman commented on pull request #1684:
URL: https://github.com/apache/lucene-solr/pull/1684#issuecomment-686308531


   > You need to make a realistic proposal here IMO @noblepaul.
   > And we need something that already exists. If placement plugins depend on 
some
   > future rehaul of configuration in SolrCloud, we're pushing this way out 
because
   > from past discussion there doesn't seem to be a consensus on how/if to 
   > remove solr.xml and how to support its features differently.
   
   Noble has made an instructive example of how to deal with configuration 
properly (using clusterprops.json, not solr.xml): 
https://github.com/apache/lucene-solr/pull/1813
   How much more hand holding do you need in order to do the right thing? If 
you want solr.xml to go away completely before using clusterprops, then let us 
wait until that is done. Using solr.xml (per node config) for a cluster wide 
replica assignment policy is not acceptable. The reasons have been stated many 
times, but I'm happy to do one more round and explain to you as simply or in as 
much detail as you would like.
   
   
   > I think use of solr.xml for this is pragmatic/realistic with the Solr we 
have today.
   
   This is absolutely untrue. Pragmatic/realistic is a joke. Using solr.xml 
means new configuration cannot take effect unless that file is hand-edited and 
node is restarted. Even bigger problem, in context of replica 
assignment/placement, is the possibility of different nodes having different 
configurations for the placement plugins, and hence cause cluster wide 
inconsistency.
   
   > And it's flexible -- can go on the node or in ZK as you desire, and can 
hold structured
   > information (not just a bag of name-value pairs). This matter can be 
improved in the future.
   
   Oh, my goodness! Such thinking is the reason why our project is in a total 
mess today. Putting solr.xml in ZK is a hack, which we don't need to carry 
forward any longer. Even though I have expressed my reluctant agreement to 
carry on with solr.xml for now and switch to clusterprops.json before release, 
such flawed reasoning in favour of using solr.xml pushes me towards -1'ing this 
issue on this basis.
   
   > the other one [requirement] was efficiency: being able to fetch ALL needed 
properties
   > from a remote Node at once 
   
   Efficiency is a matter of implementation, and not a characteristic of the 
interfaces.
   
   Lets look at two approaches where the plugin requests for 10 properties.
   
   Design 1 (your design): Interface contains 10 different classes for the 10 
properties, and solr-core returns 10 different objects for those properties to 
the plugin.
   Design 2 (proper design): Interface contains 1 class containing (at least) 
10 getter methods for those properties (all typed as Optional). Solr-core 
returns that 1 object containing those 10 optional values filled in.
   
   In terms of interface design, design 2 is clearly more efficient because it 
requires the creation of 10 less objects.
   Lets look at efficiency from implementation point of view.
   
   In the design 2, solr-core (on a remote node) can populate all properties in 
the same object (even if it needs 10 multi-threaded calls). If there are 
multiple nodes from where those 10 properties need to be fetched, the plugin 
can make n multi-threaded calls to n remote nodes and receive n objects (each 
containing those 10 properties that are needed).
   
   How is any of this inefficient?



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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