sách gpt4 ai đã đi

elasticsearch - elasticsearch 是如何处理不同任务的优先级的?

In lại 作者:行者123 更新时间:2023-12-05 04:05:45 28 4
mua khóa gpt4 Nike

假设一个 elasticsearch 服务器在很短的时间内接收到 100 个任务。有些任务很短,有些任务很耗时,有些任务是删除任务,有些是插入和搜索查询。 elasticsearch 是如何决定先运行哪个,并发执行多少任务的。

elasticsearch端是否有任务执行策略,或者它只是处理一个FIFO队列中的所有任务,并允许一些固定数量的任务同时运行?

我希望 ES 有一些任务顺序优化功能。否则,我们必须手动检查任务的状态,设置一些超时并进行一些重试,这有些不方便。

1 Câu trả lời

很好的问题,因为关于任务执行优先级的文档还不够多,我们可以查看 Elasticsearch 的源代码来了解它是如何工作的。

首先,Elasticsearch 清楚地解释说他们维护不同的线程池来执行不同类型的任务,如他们的 official documentation 中所解释的那样。 .

使用上面的文档,以下事情很清楚:

  1. 它们有不同的线程池和队列(具有不同的容量)来执行不同类型的任务,如管理任务、搜索任务、索引任务等
  2. 不同的线程池使 Elasticsearch 能够并行执行任务并避免饥饿,并且有助于安排任务/确定任务的优先级。

现在开始调度/优先级/优化任务的执行,这在文档中没有很好地解释,我查看了 Elasticsearch 源代码并找到了 Priority java class在 Elasticsearch 代码的多个地方使用,定义任务的优先级,引用 FrozenCacheService codesử dụng LOW 优先级作为更新此缓存的优先级不是太高,另一方面 slowclusterStateProcessing在 Elasticsearch 中使用称为 IMMEDIATE 的最高优先级。

您还可以看到这个 Priority 枚举也用于 PrioritizedEsThreadPoolExecutor这再次用于创建在我的帖子开头解释的不同线程池。

简而言之,Elasticsearch确实有根据任务类型对任务进行排序,以优化任务的执行。

biên tập:与优先搜索查询相关的问题 https://github.com/elastic/elasticsearch/issues/37867并在这个方向上做了一些工作https://github.com/elastic/elasticsearch/pull/57936

关于elasticsearch - elasticsearch 是如何处理不同任务的优先级的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50807069/

28 4 0
Bài viết được đề xuất: VBA Selenium Sendkeys 修改键
Bài viết được đề xuất: c# - 我如何强制 Resharper 将花括号放在同一行上?
Bài viết được đề xuất: php - 在 Woocommerce 3 中获取自定义订单项元数据
Bài viết được đề xuất: command-line-interface - 角度飞镖的命令行
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com