[Feature] It's time to discard the resource queue #1721
-
DescriptionIt's time to discard the resource queue According to the evolution trend of GPDB, the following changes are suggested for CBDB resource management: 1. Abandoned resource queue function.Resource queues were an early resource management approach implemented by GPDB. Because cgroup was not yet mature at that time, GPDB fully implemented the CPU resource control function on its own. Later, the resource group management function was added, with the aim of replacing the resource queue. From the current perspective, resource groups can already cover all the functions of resource queues. The GPDB community has repeatedly expressed plans for deprecating resource queue, and judging from the code evolution trend, it is also moving in this direction. 2. A new resource management method of type "none" has been added and set as the default value.GPDB has added a "none" type of resource management, which adopts PostgreSQL's native resource management approach, utilizing neither resource queue nor resource group. Setting "none" as the default resource management method reduces access to global locks. Currently, CBDB defaults to the resource queue method, where each query acquires the ResQueueLock global lock at least twice. Under high concurrency, the cost associated with global locks increases sharply. See greenplum-db/gpdb-archive@82851a0 中文: 是时候废弃资源队列了 按照GPDB的演进趋势,建议CBDB资源管理做以下变更: 1. 废弃资源队列功能资源队列是GPDB早期实现的资源管理方式。因为当时cgroup尚不成熟,所以GPDB完全是自行实现了CPU资源控制功能。 GPDB社区曾经多次表达了废弃资源队列的计划,从代码演进趋势来看也是朝着这个方向。 2. 新增none类型的资源管理方式,并作为默认值。GPDB新增了一种none类型的资源管理方式,即:采用PgSQL原有的资源管理方式,既不使用资源队列也不使用资源组。 参阅:greenplum-db/gpdb-archive@82851a0 Use case/motivationNo response Related issuesNo response Are you willing to submit a PR?
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
|
It's so hard to decide. This code has been with us for so many years. But generally, I agree that resource queues don't work. Once, by mistake, we turned them on in one of the production clusters, and then we spent a long time to find out why performance dropped so much. It is better to remove them. Outdated functionality only confuses users. |
Beta Was this translation helpful? Give feedback.
It's so hard to decide. This code has been with us for so many years. But generally, I agree that resource queues don't work. Once, by mistake, we turned them on in one of the production clusters, and then we spent a long time to find out why performance dropped so much. It is better to remove them. Outdated functionality only confuses users.