[
https://issues.apache.org/jira/browse/SOLR-5477?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13872573#comment-13872573
]
Anshum Gupta commented on SOLR-5477:
------------------------------------
I have a few questions regrading my approach for making the CoreAdmin calls
async:
Approach #1:
* CoreAdmin requests get submitted to zk.
* Core watches it's zk node for submitted tasks. Request object is the data in
the node (when submitted).
* On completion, the core deletes the submitted task and puts a new node with
the response and other metadata into zk.
* Collection API watches the node when it submits a task, waits for it to
complete.
* On completion of the Collection API call, delete all related core admin
request nodes in zk that were generated.
* Cleaning up of request nodes in zk happens through an explicit API call.
* Having something on the following lines in zk would be helpful:
{code:title=ZK Path}
/tasks
../collections/collection1/task1
../cores/core1/collection1/task1/coretask1
{/code}
This would help us delete the entire group of tasks associated to a
core/collection/core task/collection task.
Questions:
* This move would mean having a lot more clients talk to and write to zk. Does
this approach make sense as far as the intended direction of SolrCloud is
concerned?
* Any suggestions/concerns about scalability of zk as far as having multiple
updates coming into zk is concerned.
Approach #2 (Not the best option, and more like the option if zk has
scalability issues with everyone writing/watching):
* Not have CoreAdmin calls as async but instead introduce a tracking mode. Once
the task is submitted [with async = "taskid"], track this request using an
in-memory data structure. Even if the request times out, the client can go back
and query about the task status.
> Async execution of OverseerCollectionProcessor tasks
> ----------------------------------------------------
>
> Key: SOLR-5477
> URL: https://issues.apache.org/jira/browse/SOLR-5477
> Project: Solr
> Issue Type: Sub-task
> Components: SolrCloud
> Reporter: Noble Paul
> Assignee: Anshum Gupta
> Attachments: SOLR-5477-CoreAdminStatus.patch, SOLR-5477.patch
>
>
> Typical collection admin commands are long running and it is very common to
> have the requests get timed out. It is more of a problem if the cluster is
> very large.Add an option to run these commands asynchronously
> add an extra param async=true for all collection commands
> the task is written to ZK and the caller is returned a task id.
> as separate collection admin command will be added to poll the status of the
> task
> command=status&id=7657668909
> if id is not passed all running async tasks should be listed
> A separate queue is created to store in-process tasks . After the tasks are
> completed the queue entry is removed. OverSeerColectionProcessor will perform
> these tasks in multiple threads
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]