distributed_background_insert_batch
distributed_directory_monitor_batch_inserts
挿入されたデータをバッチで送信するかどうかを切り替えます。
バッチ送信を有効にすると、Distributed テーブルエンジンは、挿入されたデータの複数のファイルを個別に送信する代わりに、1 回の操作でまとめて送信しようとします。バッチ送信により、サーバーやネットワークのリソースをより効率的に活用できるため、クラスターのパフォーマンスが向上します。
設定可能な値:
- 1 — 有効。
- 0 — 無効。
distributed_background_insert_max_sleep_time_ms
distributed_directory_monitor_max_sleep_time_ms
Distributed テーブルエンジンがデータを送信する際の最大間隔です。distributed_background_insert_sleep_time_ms 設定で指定される間隔の指数関数的な増加を制限します。
設定可能な値:
- ミリ秒単位の正の整数
distributed_background_insert_sleep_time_ms
distributed_directory_monitor_sleep_time_ms
Distributedテーブルエンジンがデータを送信する際の基本的な待機間隔です。実際の間隔は、エラーが発生すると指数関数的に増加します。
設定可能な値:
- 正の整数のミリ秒数。
distributed_background_insert_split_batch_on_failure
distributed_directory_monitor_split_batch_on_failure
障害発生時にバッチを分割する機能を有効または無効にします。
特定のバッチをリモート分片に送信する際、その後段に複雑なパイプライン (たとえば GROUP BY を含む MATERIALIZED VIEW) があると、Memory limit exceeded などのエラーで失敗することがあります。この場合、再試行しても解決せず (その結果、そのテーブルの分散送信が滞ることがあります) 、そのバッチ内のファイルを 1 つずつ送信すれば INSERT に成功する可能性があります。
そのため、この設定を 1 にすると、そのようなバッチではバッチ処理が無効になります (つまり、失敗したバッチに対して distributed_background_insert_batch が一時的に無効になります) 。
設定可能な値:
- 1 — 有効。
- 0 — 無効。
この設定は、破損したバッチにも影響します (これはサーバー (マシン) の異常終了や、Distributed テーブルエンジンで
fsync_after_insert/fsync_directories がない場合に発生することがあります) 。自動バッチ分割には依存しないでください。パフォーマンスに悪影響を及ぼす可能性があります。
distributed_background_insert_timeout
insert_distributed_timeout
distributed への INSERT クエリのタイムアウトです。この設定は、insert_distributed_sync が有効な場合にのみ適用されます。値が 0 の場合は、タイムアウトしないことを意味します。