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.2.3 以降、Data Cache はデフォルトで有効になっています。v3.1 クラスタで Data Cache を使用する場合、または以前にこの機能を手動で無効にした場合は、有効にするために次の手順を実行する必要があります。
実行時に Data Cache を動的に有効にするには、次のステートメントを実行します:
UPDATE information_schema.be_configs SET VALUE = 1
WHERE name = "starlet_use_star_cache";
動的な構成は CN ノードが再起動されると無効になります。
Data Cache を永続的に有効にするには、次の構成を CN 構成ファイル cn.conf に追加し、CN ノードを再起動する必要があります:
starlet_use_star_cache = true
Data Cache を構成する
次の CN(BE) 構成項目を使用して Data Cache を構成できます:
- storage_root_path (共有データクラスタでは、キャッシュされたデータが保存されるルートパスを指定するために使用されます。)
- starlet_use_star_cache
- starlet_star_cache_disk_size_percent
StarRocks クラスタを v3.1.7、v3.2.3、またはそれ以降のバージョンにアップグレードする前に File Cache を有効にしていた場合、構成項目 starlet_cache_evict_high_water を変更したかどうかを確認してください。この項目のデフォルト値は 0.2 であり、File Cache はストレージスペースの 80% をキャッシュデータファイルの保存に使用します。この項目を変更した場合、アップグレード時に starlet_star_cache_disk_size_percent を適切に構成する必要があります。以前に starlet_cache_evict_high_water を 0.3 に設定していた場合、StarRocks クラスタをアップグレードする際に starlet_star_cache_disk_size_percent を 70 に設定して、Data Cache が File Cache に設定したのと同じディスク容量の割合を使用するようにします。