はじめに
今回は構成したキャッシュを削除する手順についてご紹介します。
参考文献 (watsonx.data 2.0.0 のマニュアル)
Enhancing the query performance through caching
File list cache については以下の記事をご参照ください。
watsonx.data 2.0.0 で File list cache を構成してみた (キャッシュ編 その1)
Data cache については以下の記事をご参照ください。
watsonx.data 2.0.0 で Data cache を構成してみた (キャッシュ編 その2)
Fragment result cache については以下の記事をご参照ください。
watsonx.data 2.0.0 で Fragment result cache を構成してみた (キャッシュ編 その3)
構成したキャッシュを削除する手順の概要は以下になります。
- Prestoのステートフルセットの削除
- "oc patch"コマンドにより wxdengine カスタム・リソースからキャッシュの設定の削除
- キャッシュの構成により作成された Persistent Volume Claim (PVC) の削除 (Data cache, Fragment result cache の場合)
- キャッシュの構成のために作成した Persistent Volume (PV) の削除 (Data cache, Fragment result cache の場合)
本投稿内の Presto は全て Presto (Java) を意味しています。
キャッシュを削除する手順
共通の手順は全てのタイプのキャッシュの削除に共通する手順です。
共通の手順の後に実行する "oc patch"コマンドでは、下記のコマンドでキャッシュを構成する時に指定したプロパティーを全て削除します。"oc patch" コマンドは statefulset を削除した直後に実行する必要があります。
oc patch wxdengine/<エンジン名> --type='json -p='[{"op": "remove", "path": "/spec/<プロパティー1>"}, {"op": "remove", "path": "/spec/<プロパティー2>"}, ...]'
共通の手順
1.OCPクラスターにログイン
"oc login" コマンドでOCPクラスターにログインします。
2.watsonx.data のプロジェクトに変更
作業中のプロジェクトをwatsonx.data がインストールされているプロジェクトに変更します。今回の環境では watsonx.data は 名前スペース zen にインストールされています。
$ export PROJECT_CPD_INST_OPERANDS=zen
$ oc project ${PROJECT_CPD_INST_OPERANDS}
3.キャッシュを構成した Presto のエンジンIDを確認
$ oc get wxdengine -o custom-columns='DISPLAY NAME:spec.engineDisplayName,ENGINE ID:metadata.labels.engineName'
DISPLAY NAME ENGINE ID
presto-01 presto-01
4.キャッシュを構成した Prestoエンジンのステートフルセットを全て削除
$ oc delete statefulset -l engineName=presto-01
statefulset.apps "ibm-lh-lakehouse-presto-01-coordinator-blue" deleted
statefulset.apps "ibm-lh-lakehouse-presto-01-presto-worker" deleted
statefulset.apps "ibm-lh-lakehouse-presto-01-single-blue" deleted
File list cache の削除方法
下記の "oc patch"コマンドで File list cache を削除します。
oc patch wxdengine/lakehouse-presto-01 --type='json' -p='[{"op": "remove", "path": "/spec/file_status_cache_expire_time"}, {"op": "remove", "path": "/spec/file_status_cache_tables"}, {"op": "remove", "path": "/spec/file_status_cache_size"}]'
Data cache の削除方法
① "oc patch"コマンドで Data cache を削除
下記の "oc patch"コマンドで Data cache を削除します。
oc patch wxdengine/lakehouse-presto-01 --type='json' -p='[{"op": "remove", "path": "/spec/cacheStorageClass"}, {"op": "remove", "path": "/spec/cacheStorageSize"}, {"op": "remove", "path": "/spec/cache_alluxio_max_cache_size"}]'
② PVC を削除
Data cache の構成時に作成された PVC を確認します。
$ oc get pvc | grep ibm-lh-cache-mount
ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-coordinator-blue-0 Bound data-cache-storage-pv2 10Gi RWO data-cache-storage 15d
ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-0 Bound data-cache-storage-pv3 10Gi RWO data-cache-storage 15d
ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-1 Bound data-cache-storage-pv4 10Gi RWO data-cache-storage 15d
ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-2 Bound data-cache-storage-pv5 10Gi RWO data-cache-storage 15d
ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-3 Bound data-cache-storage-pv6 10Gi RWO data-cache-storage 15d
ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-4 Bound data-cache-storage-pv1 10Gi RWO data-cache-storage 15d
PVC を全て削除します。
$ oc delete pvc ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-coordinator-blue-0
persistentvolumeclaim "ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-coordinator-blue-0" deleted
$ oc delete pvc ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-0
persistentvolumeclaim "ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-0" deleted
.....
$ oc delete pvc ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-4
persistentvolumeclaim "ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-4" deleted
③ PV を削除
Data cache を構成する際に作成したPVを確認します。
$ oc get pv | grep data-cache
data-cache-storage-pv1 10Gi RWO Delete Failed wxd/ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-4 data-cache-storage 15d
data-cache-storage-pv2 10Gi RWO Delete Failed wxd/ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-coordinator-blue-0 data-cache-storage 15d
data-cache-storage-pv3 10Gi RWO Delete Failed wxd/ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-0 data-cache-storage 15d
data-cache-storage-pv4 10Gi RWO Delete Failed wxd/ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-1 data-cache-storage 15d
data-cache-storage-pv5 10Gi RWO Delete Failed wxd/ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-2 data-cache-storage 15d
data-cache-storage-pv6 10Gi RWO Delete Failed wxd/ibm-lh-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-3 data-cache-storage 15d
PV を全て削除します。
$ oc delete pv data-cache-storage-pv1
persistentvolume "data-cache-storage-pv1" deleted
.....
$ oc delete pv data-cache-storage-pv6
persistentvolume "data-cache-storage-pv6" deleted
PVCとPVの削除は、Prestoエンジンのステートフルセットの削除によりPrestoのPodが削除されたタイミングで実行する必要がありますのでご注意ください。
Fragment result cache の削除方法
① "oc patch"コマンドで Fragment result cache を削除
下記の "oc patch"コマンドで Fragment result cache を削除します。
oc patch wxdengine/lakehouse-presto-01 --type='json' -p='[{"op": "remove", "path": "/spec/fragment_result_cache_enabled"}, {"op": "remove", "path": "/spec/fragment_result_cache_max_cached_entries"}, {"op": "remove", "path": "/spec/fragment_result_cache_ttl"}, {"op": "remove", "path": "/spec/fragment_result_cache_partition_statistics_based_optimization_enabled"}, {"op": "remove", "path": "/spec/fragmentCacheStorageClass"}, {"op": "remove", "path": "/spec/fragmentCacheStorageSize"}]'
② PVC を削除
Fragment result cache を構成した時に作成された PVC を確認します。
$ oc get pvc | grep ibm-lh-fragment-cache-mount
ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-coordinator-blue-0 Bound fragment-cache-storage-pv1 10Gi RWO fragment-cache-storage 15d
ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-0 Bound fragment-cache-storage-pv2 10Gi RWO fragment-cache-storage 15d
ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-1 Bound fragment-cache-storage-pv6 10Gi RWO fragment-cache-storage 15d
ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-2 Bound fragment-cache-storage-pv4 10Gi RWO fragment-cache-storage 15d
ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-3 Bound fragment-cache-storage-pv3 10Gi RWO fragment-cache-storage 15d
ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-4 Bound fragment-cache-storage-pv5 10Gi RWO fragment-cache-storage 15d
PVC を全て削除します
$ oc delete pvc ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-coordinator-blue-0
persistentvolumeclaim "ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-coordinator-blue-0" deleted
$ oc delete pvc ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-0
persistentvolumeclaim "ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-0" deleted
.....
$ oc delete pvc ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-4
persistentvolumeclaim "ibm-lh-fragment-cache-mount-ibm-lh-lakehouse-presto-01-presto-worker-4" deleted
③ PV を削除
Fragment result Cache を作成する際に作成したPVを確認します。
$ oc get pv | grep fragment-cache
fragment-cache-storage-pv1 10Gi RWO Delete Failed wxd/ibm-lh-fragment-cach -mount-ibm-lh-lakehouse-presto-01-coordinator-blue-0 fragment-cache-storage 15d
fragment-cache-storage-pv2 10Gi RWO Delete Failed wxd/ibm-lh-fragment-cach -mount-ibm-lh-lakehouse-presto-01-presto-worker-0 fragment-cache-storage 15d
fragment-cache-storage-pv3 10Gi RWO Delete Failed wxd/ibm-lh-fragment-cach -mount-ibm-lh-lakehouse-presto-01-presto-worker-3 fragment-cache-storage 15d
fragment-cache-storage-pv4 10Gi RWO Delete Failed wxd/ibm-lh-fragment-cach -mount-ibm-lh-lakehouse-presto-01-presto-worker-2 fragment-cache-storage 15d
fragment-cache-storage-pv5 10Gi RWO Delete Failed wxd/ibm-lh-fragment-cach -mount-ibm-lh-lakehouse-presto-01-presto-worker-4 fragment-cache-storage 15d
fragment-cache-storage-pv6 10Gi RWO Delete Failed wxd/ibm-lh-fragment-cach -mount-ibm-lh-lakehouse-presto-01-presto-worker-1 fragment-cache-storage 15d
PV を全て削除します。
$ oc delete pv fragment-cache-storage-pv1
persistentvolume "fragment-cache-storage-pv1" deleted
.....
$ oc delete pv fragment-cache-storage-pv6
persistentvolume "fragment-cache-storage-pv6" deleted
PVCとPVはPrestoエンジンのステートフルセットを削除する事により、PrestoのPodが削除されたタイミングで削除する必要がありますのでご注意ください。
おわりに
今回は watsonx.data 2.0.0 の Presto に構成したキャッシュを削除する手順についてご紹介しました。
Data cache や Fragment result cache の場合、PVC や PV を全て削除しないと キャッシュを再作成する際に正しく構成できませんので ご注意ください。
watsonx.data 1.1.x でも全く同じ手順でキャッシュを削除する事ができます。