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 ダッシュボードテンプレートをダウンロードできます: