インデックステーブルのオンラインサービスを設定することで、リアルタイムインデックス作成、メモリ使用量、インデックスロードポリシー、ストレージとコンピューティングの分離を制御できます。
設定例
{
"realtime": true,
"cluster_config": {
"table_name": "my_table"
},
"online_index_config": {
"online_keep_version_count": 2,
"on_disk_flush_realtime_index": true,
"enable_async_dump_segment": true,
"build_config": {
"build_total_memory": 2048
},
"max_realtime_memory_use": 4096,
"need_read_remote_index": true,
"need_deploy_index": true,
"load_config": [
{
"file_patterns": [
"/index/title",
"/attribute/.*",
],
"load_strategy": "mmap",
"load_strategy_param": {
"slice": 409600,
"lock": true,
"interval": 2
},
"remote": false,
"deploy": true
}
],
"speedup_primary_key_reader": true
},
"build_option_config": {
"async_queue_size": 10000,
"max_recover_time": 600,
"async_build": true
}
}
パラメーター説明
-
realtime: リアルタイムモードを有効にするかどうかを指定します。有効な値:trueおよびfalse。 -
cluster_config:-
table_name: インデックステーブルの名前。
-
-
online_index_config: インデックステーブルのオンライン制御パラメーター。リアルタイムビルドのパラメーターおよびインデックスロードポリシーが含まれます。-
online_keep_version_count: オンラインサービスで保持する増分インデックスバージョンの数。この値を超えると、システムは最も古いバージョンを削除します。 -
on_disk_flush_realtime_index: リアルタイムインデックスをディスクにフラッシュするかどうかを指定します。有効な値:trueおよびfalse。デフォルト値:false。有効にすると、リアルタイムインデックスのサイズがbuild_total_memoryの値に達したときに、システムはインデックスをローカルディスクにダンプし、load_configポリシーに基づいてロードします。これにより、同じ量のリアルタイムメモリでより多くのリアルタイムインデックスをサポートできます。データ更新量が多いアプリケーションに推奨します。 -
enable_async_dump_segment: リアルタイムインデックスの非同期ダンプを有効にするかどうかを指定します。有効な値:trueおよびfalse。デフォルト値:false。有効にすると、ダンプはリアルタイムインデックスのビルドをブロックしません。推奨値:true。 -
build_config: リアルタイムインデックスのビルドパラメーター。-
build_total_memory: リアルタイムインデックスビルドの総メモリ量 (MB 単位)。この制限を超えると、リアルタイムインデックスのダンプがトリガーされます。on_disk_flush_realtime_indexパラメーターは、インデックスをメモリまたはディスクにダンプするかどうかを決定します。注: この値はmax_realtime_memory_useの値より小さくする必要があります。
-
-
max_realtime_memory_use: リアルタイムインデックスの総メモリ量 (MB 単位)。ビルド中のインデックスと既にダンプされたインデックスのメモリが含まれます。メモリ使用量がこの制限に達すると、ビルドプロセスは停止します。増分インデックスのマージによってリアルタイムデータがオンラインサービスに切り替わった後、システムはリアルタイムインデックスからデータをクリアし、メモリを解放します。注: この値はbuild_total_memoryの値より大きくする必要があります。 -
need_read_remote_index: ストレージとコンピューティングの分離を有効にするかどうかを指定します。デフォルト値:false。有効にすると、データノードは分散ストレージから直接インデックスデータを読み取ります。これにより起動時間が短縮され、データ容量が増加し、コストが削減されますが、クエリパフォーマンスに影響します。 -
need_deploy_index: インデックスをローカルディスクにデプロイするかどうかを指定します。デフォルト値:true。インデックスを事前にローカルディスクにデプロイすることで、検索パフォーマンスを向上させることができます。 -
load_config: インデックステーブルのロードポリシー。インデックスをメモリにロードする方法を制御し、きめ細かいメモリ制御、メモリオーバーヘッドの削減、検索パフォーマンスの向上を実現します。詳細については、「インデックステーブルのロードポリシー」をご参照ください。need_read_remote_index、need_deploy_index、load_configパラメーターは連携して、コストを削減しながらストレージとコンピューティングの分離によるパフォーマンスへの影響を最小限に抑えます。
-
-
build_option_config: オンラインサービスがインデックステーブルをロードする際のプロセスレベルパラメーター。-
async_build: リアルタイムデータの読み取りおよびビルドプロセスに非同期モードを使用するかどうかを指定します。デフォルト値:false。適時性が求められるアプリケーション、またはデータ更新量が多いアプリケーションの場合、推奨値はtrueです。 -
async_queue_size:async_buildがtrueに設定されている場合のワークキューサイズ。デフォルト値: 10000。 -
max_recover_time: プロセス開始後、データノードがメッセージキューからリアルタイムデータに追いつくための最大時間 (秒単位)。たとえば、値が 600 の場合、プロセスはインデックスのロード後、最大 10 分間データに追いつくことに費やします。この期間の後、データ遅延が残っている場合でも、サービスは利用可能になります。リアルタイムデータがほとんどなく、遅延が検出されない場合、プロセスは直ちにステータスを正常に設定し、リクエストの処理を開始します。
-