-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement client-side updates w/ mget to prune stale docs #155770
Comments
Pinging @elastic/response-ops (Team:ResponseOps) |
/cc @pmuellr |
@kobelb looks like a POC of this is here: main...kobelb:kibana:task_clientside_update Is that right? |
@pmuellr main...kobelb:kibana:task_clientside_update was a super early attempt at this that I wouldn't recommend treating as a proof-of-concept for this implementation. #150769 minus the parts that do "task partitioning" are closer to what we want here. Happy to discuss further. |
@pmuellr here's a PR (#157156) to what I did for ON week, it contains some client-side update code that you can pick from as well (minus the cost parts). I removed a little bit of RxJS as well. If ever we wanted to explore having the search -> update logic in a worker thread, I've POC'ed it here: mikecote#5. I've also POC'ed how to skip the claiming phase if ever we wanted to save an update -> mikecote#6. But it may be useful to not do this if ever we decide to use worker threads.. |
see elastic#155770 Make the task manager task claiming algorithm selectable, to allow alternative implementations in the future. No other implementations are provided here, this is setup for adding the next one.
see #155770 Make the task manager task claiming algorithm selectable, to allow alternative implementations in the future. No other implementations are provided here, this is setup for adding the next algorithm. Task Manager behavior should not be changed by this PR - code has just be re-org'd. This exposes a new config key which is exposed to Docker - `xpack.task_manager.claim_strategy`. The only allowed value is `default`. No plans at present to document this, or allow-list for the cloud. We may end up changing the config key to just test for serverless instead, when we implement the next task claiming algorithm (see referenced issue ^^^, which is aimed for serverless). The jest tests were coarsely re-org'd. Once we have > 1 algorithm, we'll like want to re-org a bit more, so we can test all the implementations "in a loop".
Here's a rollout plan after discussing with @kobelb:
Following this plan should allow us to implement the new polling mechanism while mitigating risk. cc @pmuellr |
resolves: elastic#155770 Adds a new task claiming strategy `mget`, which can be used instead of the default one `default`. Add the following to your `kibana.yml` to enable it: xpack.task_manager.claim_strategy: 'mget'
resolves elastic/kibana#155770 Change the task manager task claiming algorithm to use a _search to retrieve candidate tasks, a _mget to prune the docs whose version number doesn't match, and then a _bulk to claim the tasks. This will increase the background task capacity in Serverless.
Feature Description
Change the task manager task claiming algorithm to use a _search to retrieve candidate tasks, a _mget to prune the docs whose version number doesn't match, and then a _bulk to claim the tasks. This will increase the background task capacity in Serverless.
Business Value
Increased background task capacity, reducing the COGS for running alerting rules and actions, and providing a lower MTTD/MTTR.
Definition of Done
Phases
Implementation: multiple PRs:
The text was updated successfully, but these errors were encountered: