[
https://issues.apache.org/jira/browse/SOLR-15146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17581932#comment-17581932
]
Ilan Ginzburg commented on SOLR-15146:
--------------------------------------
IIRC (but it's been a while), config set operations did not need to go through
overseer and were extremely easy to execute on the node that gets the API call.
I remember (I think) some form of locking (or lookup?) being done around config
set manipulations (parent config set existing when creating a new one, and
config set not already existing with same name), but that code was subject to
race conditions anyway. Distributing config set handling (work done while
distributing Collection API and cluster state updater) was the easiest and less
risky of the three. There is no existing way to enable only that aspect to not
go through overseer but I believe it should not be too hard to add another
config flag to do so.
But... I'm writing all the above from memory without looking at the code, so
take with a grain of salt.
> Distribute Collection API command execution
> -------------------------------------------
>
> Key: SOLR-15146
> URL: https://issues.apache.org/jira/browse/SOLR-15146
> Project: Solr
> Issue Type: Sub-task
> Components: SolrCloud
> Affects Versions: 9.0
> Reporter: Ilan Ginzburg
> Assignee: Ilan Ginzburg
> Priority: Major
> Labels: collection-api, overseer
> Time Spent: 40m
> Remaining Estimate: 0h
>
> Building on the distributed cluster state update changes (SOLR-14928), this
> ticket will distribute the Collection API so that commands can execute on any
> node (i.e. the node handling the request through {{CollectionsHandler}})
> without having to go through a Zookeeper queue and the Overseer.
> This is the second step (first was SOLR-14928) after which the Overseer
> could be removed (but the code keeps existing execution options so completion
> by no means Overseer is gone, but it could be removed in a future release).
> -There is a dependency on the distributed cluster state changes because the
> Overseer locking protecting same collection (or same shard) Collection API
> commands from executing concurrently will be replaced by optimistic locking
> of the collection {{state.json}} znodes (or other znodes that will eventually
> replace/augment {{state.json}}).-
> The goal of this ticket is threefold:
> * Simplify the code (running synchronously and not going through the
> Zookeeper queues and the Overseer dequeue logic is much simpler),
> * Lead to improved performance for most/all use cases (although this is a
> secondary goal, as long as performance is not degraded) and
> * Allow a future change (in another future Jira) to the way cluster state is
> cached on the nodes of the cluster (keep less information, be less dependent
> on Zookeeper watches, do not care about collections not present on the node).
> This future work will aim to significantly increase the scale (amount of
> collections) supported by SolrCloud.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]