Data Cache
v3.1.7 および v3.2.3 以降、StarRocks は共有データクラスタにおけるクエリを高速化するために Data Cache を導入し、以前のバージョンでの File Cache を置き換えました。Data Cache は必要に応じてリモートストレージからデータをブロック単位(MB 単位)でロードしますが、File Cache は必要なデータ行数に関係なく、毎回バックグラウンドでデータファイル全体をロードします。
File Cache と比較して、Data Cache には以下の利点があります:
- オブジェクトストレージからの読み取りが少なく、オブジェクトストレージへのアクセスコストが削減されます(オブジェクトストレージがアクセス頻度に基づいて課金される場合)。
- ローカルディスクへの書き込み圧力と CPU 使用率が低下し、他のロードやクエリタスクへの影響が少なくなります(バックグラウンドのロードスレッドが不要になるため)。
- キャッシュの効果が最適化されます(File Cache がファイル内のあまり使用されないデータをロードする可能性があるため)。
- キャッシュされたデータの制御が最適化され、File Cache によって削除されなかった過剰なデータによってローカルディスクが圧迫されることを回避します。
Data Cache の有効化
v3.4.0 以降、StarRocks は共有データクラスタ内の external catalog およびクラウドネイティブテーブルに対するクエリに対して統一された Data Cache インスタンスを使用します。
Data Cache の設定
以下の CN(BE) 設定項目を使用して Data Cache を設定できます:
キャッシュディレクトリ
- storage_root_path (共有データクラスタでは、この項目はキャッシュされたデータが保存されるルートパスを指定するために使用されます。)
キャッシュディスクサイズ
共有データクラスタ内のキャッシュのディスクサイズは、datacache_disk_size と starlet_star_cache_disk_size_percent のうち大きい方の値を取ります。
Data Cache の状態を確認
-
キャッシュされたデータを保存するルートパスを確認するには、次のステートメントを実行します:
SELECT * FROM information_schema.be_configs
WHERE NAME LIKE "%storage_root_path%";通常、キャッシュされたデータは
storage_root_pathのサブパスdatacache/に保存されます。 -
Data Cache が使用できるストレージの最大割合を確認するには、次のステートメントを実行します:
SELECT * FROM information_schema.be_configs
WHERE NAME LIKE "%starlet_star_cache_disk_size_percent% or %datacache_disk_size%";
Data Cache の監視
StarRocks は Data Cache を監視するためのさまざまなメトリクスを提供します。
ダッシュボードテンプレート
StarRocks 環境に基づいて、以下の Grafana ダッシュボードテンプレートをダウンロードできます:
重要なメトリクス
fslib read io_latency
Data Cache の読み取りレイテンシーを記録します。
fslib write io_latency
Data Cache の書き込みレイテンシーを記録します。
fslib star cache meta memory size
Data Cache の推定メモリ使用量を記録します。
fslib star cache data disk size
Data Cache の実際のディスク使用量を記録します。
Data Cache の無効化
Data Cache を無効にするには、CN 設定ファイル cn.conf に次の設定を追加し、CN ノードを再起動します:
datacache_enable = false
storage_root_path =