USER MANUALS

リソースグループ

複数の同時ユーザーセッションでクエリを実行する環境では、すべてのユーザーセッションの重要度が同じわけではありません。ある種のクエリを他のクエリより優先したい場合があります。Denodo 組み込み MPP は、リソースグループを使用して、さまざまなワークロードに優先順位を付ける方法を整理します。

リソースグループは、2 つの主要リソースであるCPU とメモリのクォータを管理します。さらに、同時実行性、時間、CPU 時間などの細かいリソース制約を指定できます。

リソースグループの制限は、 許可時にのみ適用されます 。クエリが実行を開始した後は、リソースグループマネージャーは何も制御しません。代わりに、リソース指定を超過したグループにはペナルティという概念が使用され、リソースグループが新しいクエリを開始する前にその制限を超過しているかどうかの確認が行われます。

Denodo 組み込み MPP のリソース管理を有効にするには、 values.yaml ファイルに presto.coordinator.resourceGroups: true を設定します。

以下に示す構成例は、配布されている構成 presto/conf/resource_groups.json であり、必要に応じて変更します。この例では、さまざまなリソースグループおよびどのクエリをどのリソースグループで実行するかを定義する 4 つのセレクターがあります。

  • 1 番目のセレクターは、 datascience からのクエリに一致し、それらを global.adhoc.datascience グループに入れます。

  • 2 番目のセレクターは、 bi からのクエリに一致し、それらを global.adhoc.bi グループに入れます。

  • 3 番目のセレクターは、 pipeline からのクエリに一致し、それらを global.pipeline グループに入れます。

  • 4 番目のセレクターは、 admin からのクエリに一致し、それらを admin グループに入れます。

  • 最後のセレクターはキャッチオールであり、どのグループにも入っていないすべてのクエリに一致します。

これらのセレクターは全体として以下のポリシーを実装します。

  • admin グループは、最大 50 個のクエリを同時実行できます (hardConcurrencyLimit)。

他のすべてのグループについて:

  • 合計で最大 100 個のクエリを同時実行できます (hardConcurrencyLimit)。

  • BI ツールからのクエリなど、非定型クエリを最大 10 個同時実行できます (hardConcurrencyLimit)。データサイエンスツールからのクエリを最大 2 個同時実行できます (hardConcurrencyLimit)。

  • 非定型以外のクエリは global.pipeline グループで実行され、合計 45 個のクエリを同時実行できます (hardConcurrencyLimit)。クエリの実行順序は FIFO です。

  • 残りのすべてのクエリは global グループに入れられます。

resource_groups.json
  {
  "rootGroups": [
      {
      "name": "global",
      "softMemoryLimit": "80%",
      "hardConcurrencyLimit": 100,
      "maxQueued": 1000,
      "schedulingPolicy": "weighted",
      "jmxExport": true,
      "subGroups": [
          {
          "name": "adhoc",
          "softMemoryLimit": "10%",
          "hardConcurrencyLimit": 50,
          "maxQueued": 1,
          "schedulingWeight": 10,
          "subGroups": [
              {
              "name": "datascience",
              "softMemoryLimit": "10%",
              "hardConcurrencyLimit": 2,
              "maxQueued": 1,
              "schedulingWeight": 10,
              "schedulingPolicy": "weighted_fair"
              },
              {
              "name": "bi",
              "softMemoryLimit": "10%",
              "hardConcurrencyLimit": 10,
              "maxQueued": 100,
              "schedulingWeight": 10,
              "schedulingPolicy": "weighted_fair"
              }
          ]
          },
          {
          "name": "pipeline",
          "softMemoryLimit": "80%",
          "hardConcurrencyLimit": 45,
          "maxQueued": 100,
          "schedulingWeight": 1,
          "jmxExport": true
          }
      ]
      },
      {
      "name": "admin",
      "softMemoryLimit": "100%",
      "hardConcurrencyLimit": 50,
      "maxQueued": 100,
      "schedulingPolicy": "query_priority",
      "jmxExport": true
      }
  ],
  "selectors": [
      {
      "source": "datascience",
      "group": "global.adhoc.datascience"
      },
      {
      "source": "bi",
      "group": "global.adhoc.bi"
      },
      {
      "source": "pipeline",
      "group": "global.pipeline"
      },
      {
      "source": "admin",
      "group": "admin"
      },
      {
      "group": "global"
      }
  ],
  "cpuQuotaPeriod": "1h"
  }

Denodo が Denodo 組み込み MPP のリソースグループメカニズムを活用するには、Denodo に同一 Denodo 組み込み MPP のデータソースを複数作成し、 applicationNamePrefix ドライバープロパティを使用して対応するリソースグループ (source) を選択する必要があります。

embedded_mpp data source driver properties

embedded_mpp データソースドライバープロパティ

Add feedback