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

Tomas Eduardo Fernandez Lobbe commented on SOLR-13942:
------------------------------------------------------

bq. You understand the difference between exposing zookeeper and exposing data 
in zookeeper, right? 
I do. We discussed making ZooKeeper an implementation detail, which means, we 
don’t want to expose any of those. Did you see the abstractions ab recently 
added? that’s the way we’ve decided we wanted to go in the past. This is just a 
step in the opposite direction.

bq. Data in Zookeeper is public data. It is not supposed to be fixed. Everyone 
knows this. 
This comment doesn’t make a ton of sense to me. What do you mean with “public 
data” and how does that relate with “it’s not supposed to be fixed”? Once you 
expose this via an API, it’s part of the API, you understand that, right? 
people will start building on top of it, and that means we either have to start 
supporting backwards compatibility of every ZooKeeper internal or we just 
disregard compatibility, and make it a mess for those users that are using the 
API. An API is a contract that needs to be respected, this includes the 
responses.

Regarding [~shalin] comments. Everything that we think is useful for debugging 
(those are good points), we should have an API that returns them. My point is 
that that API needs to have a defined format that will then be respected over 
versions. Let me give you some examples:
bq. Contents of overseer queue (mildly useful, available in /admin/zookeeper)
I’d add this to the OVERSEERSTATUS API, maybe with a parameter to not overload 
all requests
bq. Overseer election queue and current leader (former is available in 
/admin/zookeeper and latter in overseer status)
Same, this belongs to overseer status.
bq. Solr.xml (no API regardless of whether it is in ZK or filesystem)
Isn’t this static? it’s set on startup, either pushed to Zk or to the local 
node. I’m not sure we should have an API for this, but maybe I’m missing 
something.
bq. Leader election queue and current leader for each shard (available in 
/admin/zookeeper)
current leader is in CLUSTERSTATUS, election queue could be added too?
bq. Shard terms for each shard/replica (not available in any API)
This is somewhat recent. Maybe we need an API for this? I’m not sure
bq. GC logs (no API)
Is this in ZooKeeper?

bq. The overseerstatus API cannot be hit if there is no overseer so there's 
that too.
Maybe we can fix this? Some information would not be available, but it makes 
sense given that there is no OVERSEER?

Shalin, I think the best is to add the necessary information to the existing 
APIs where it fit, or if there is a need for a new API, it needs to have the 
right abstraction level? Returning ZooKeeper data is just hurting us, either 
our ability to evolve (if we decide to have compatibility of data in ZooKeeper) 
or hurt our users and their ability to upgrade Solr versions.

bq. I realize how miserable we make the life of ops guys. 
I’ve managed Solr clusters as both, dev and ops. I understand the pain of 
operating clusters. I also understand the pain of upgrading clusters. 

Ishan, you are disregarding comments because you assume people doesn’t have 
your experience? what’s with that? I’ve managed Solr clusters for long too, I 
understand the pains. I also understand how quick and easy solutions hurt the 
product in the long run. Many times I had to argue with my team/manager about 
things that helped us in some way but don’t belong to Solr because it’s not the 
right thing for it in the long term, maybe that’s something that you should 
consider.

bq. Expecting dev-ops to install and maintain additional tools for Solr is 
unreasonable. 
I don’t think so. Some things just don’t belong in Solr. 

bq. Solr should be able to let expert users peek into the data that Solr puts 
into ZK.
Disagree. This goes against the “hide ZooKeeper” strategy everyone agreed on 
recently.

bq. Having Solr let you peek into Solr's own internal state data reduces moving 
parts needed to debug Solr problems.
Agree, but with the right APIs. 

TL;DR;
I still think this needs to be reverted under the technical reason: "This new 
API makes adds exposure to internal metadata that can't be guaranteed to be 
compatible over versions. By adding this API we are agreeing to either maintain 
compatibility which will make development more complicated, or, if we decide 
not not have compatibility, we hurt users building on top of it, and make 
upgrades more difficult to them."

> /api/cluster/zk/* to fetch raw ZK data
> --------------------------------------
>
>                 Key: SOLR-13942
>                 URL: https://issues.apache.org/jira/browse/SOLR-13942
>             Project: Solr
>          Issue Type: New Feature
>          Components: v2 API
>            Reporter: Noble Paul
>            Assignee: Noble Paul
>            Priority: Blocker
>             Fix For: 8.5
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> example
> download the {{state.json}} of
> {code}
> GET http://localhost:8983/api/cluster/zk/collections/gettingstarted/state.json
> {code}
> get a list of all children under {{/live_nodes}}
> {code}
> GET http://localhost:8983/api/cluster/zk/live_nodes
> {code}
> If the requested path is a node with children show the list of child nodes 
> and their meta data



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to