ロードバランサーが Data Marketplace と Design Studio のコネクションを閉じないようにする¶
一部のプロキシとロードバランサーは、しばらく非アクティブだった (通過するデータの流れがなかった) コネクションを閉じます。時間がかかるオペレーションは、この影響を受けます。たとえば、Design Studio で "obtain the top 10 customers grouped by country" のようなクエリを実行する場合、クエリが返す行数はわずかですが、結果を返すまでに数分かかる可能性があります。サーバーがクエリを実行している間、ユーザーがまだクエリの完了を待っているにもかかわらず、ロードバランサーがユーザーのブラウザーと Design Studio の間のコネクションは非アクティブであると見なして、コネクションを閉じる可能性があります。
Data Marketplace と Design Studio は、ユーザーのブラウザーとアプリケーション (すなわち Denodo Platform の Web コンテナー) の間のこのようなコネクションを保持する機能を備えています。
この機能が有効な場合、ユーザーがデータを返すのに数分かかる可能性があるオペレーションを実行すると、アプリケーションはこのコネクション経由でデータを返さないまま数分間が経過したときに "no-op" メッセージを返してコネクションを保持します。
Data Marketplace でこの機能が有効な場合にメリットを得られるオペレーションを以下に示します。
メタデータの同期。
クエリの実行。
クエリのエクスポート。
VQL Shell: クエリの実行、クエリのエクスポート、および実行トレースのダウンロード。
Design Studio でこの機能が有効な場合にメリットを得られるオペレーションを以下に示します。
ビューおよびストアドプロシージャの [Query panel] から実行されるクエリ ([Execute and download] を含む)。
VQL シェル: [Execute and Download] を含む任意のステートメントの実行。
基本ビューを作成するパネル (ソースデータベースのカタログ、スキーマ、およびテーブルを一覧表示する場合)。
[File] メニューの以下の操作: [Export]、[Export database]、および [Import]。
ビューの場合、[OPTIONS] > [Statistics] の 統計情報を収集する 操作。
リモートテーブルとサマリビューの作成。
注釈
ping コネクションを使用する [Execute and Download] 機能は、クエリが大量の行を返す場合、実行速度が多少低下する可能性があります。
Data Marketplace でのこの機能の有効化¶
Data Marketplace では、この機能はデフォルトで無効になっています。有効にするには、以下の手順に従います。
Data Marketplace でこれを有効にするには、ファイル
<DENODO_HOME>/conf/data-catalog/DataCatalogBackend.propertiesを編集し、以下のプロパティを追加します。
# This property
connection-ping.enabled=true
# Every time this interval passes (in milliseconds) without sending data,
# the application sends a "noop" message to keep the connection alive.
#
# In this example, the value is two minutes
connection-ping.polling-interval=120000
connection-ping.core-pool-size=20
connection-ping.max-pool-size=40
connection-ping.queue-capacity=50
Data Marketplace を再起動します。
この機能はスレッドプールを使用します。上記のプロパティはこのプールを制御します。上記で推奨しているデフォルト値は、どのユースケースでも有効なはずです。
スレッド数が
connection-ping.core-pool-size未満の場合、アプリケーションは新しいスレッドを作成して新しいタスクを実行します。スレッド数が
connection-ping.core-pool-sizeと同じ (またはそれ以上の) 場合、アプリケーションはタスクをキューに入れます。キューがいっぱいで、スレッド数が
connection-ping.max-pool-size未満の場合、アプリケーションは新しいスレッドを作成して、そのスレッド内でタスクを実行します。キューがいっぱいで、スレッド数が
connection-ping.max-pool-size以上の場合、アプリケーションはタスクを拒否します。
Design Studio でのこの機能の有効化¶
Design Studio でこの機能を有効にするには、 Design Studio の設定領域 - アプリケーションの設定 に移動します (この機能を有効にする方法については、「 アプリケーションの設定 」セクションで説明しています)。
