Hitachi

インメモリデータグリッド Hitachi Elastic Application Data Store ユーザーズガイド


10.9.1 キャッシュデータファイルをコンパクションする手順

キャッシュデータファイルをコンパクションする手順について説明します。

〈この項の構成〉

(1) コンパクションの効果を確認する

eztool listecf -sコマンドを実行して,コンパクションの効果を確認します。

eztool listecf -s

コマンド実行例

[図データ]

(2) クラスタを閉塞状態にする(任意)

必要に応じて,eztool closeコマンドを実行し,クラスタを閉塞状態にします。

参考

EADSサーバが稼働状態(running)の場合もコンパクションは実行できますが,性能に影響が出るおそれがあります。

eztool close

コマンド実行例

[図データ]

(3) 閉塞していることを確認する(任意)

10.9.1(2) クラスタを閉塞状態にする(任意)」でクラスタを閉塞状態にした場合は,eztool statusコマンドを実行して,クラスタの状態を確認します。

eztool status

コマンド実行例

[図データ]

閉塞している場合,State欄にclosedが表示されます。

(4) キャッシュデータファイルをコンパクションする

eztool compactionコマンドを実行して,コンパクションを実行します。

eztool compaction

コマンド実行例

[図データ]

注意事項

コンパクションは長時間実行される場合が多いため,必要に応じて,タイムアウト時間の設計をしてください。

(a) データを格納した順に削除するような運用をする場合

データを格納(put)した順に削除(remove)するような運用をする場合,データを削除するごとに,キャッシュデータファイル中に無効なデータが増えていきます。このような運用の場合には,無効なデータだけになったキャッシュデータファイルを対象にコンパクションを実行します。--thresholdオプションでしきい値を100%にしてeztool compactionコマンドを実行してください。

参考

データを格納(put)した順と削除(remove)する順が完全に一致しないような運用の場合は,しきい値を100%より小さい値に設定してください。

(b) データを格納した順とは無関係に,ランダムにデータの格納や削除をするような運用をする場合

データを格納(put)した順とは無関係に,ランダムにデータの格納(put)や削除(remove)をするような運用をする場合,キャッシュデータファイルごとにファイルの使用率が異なります。そのため,データの追加や削除に備えて未使用ファイルを確保しておく必要があります。このような運用の場合は,未使用ファイル数を基準にして,定期的にコンパクションを実行します。確保しておく必要のある未使用ファイル数を--unused_fcオプションに指定して,eztool compactionコマンドを実行してください。

コンパクションを実行しても,予定の未使用ファイル数まで到達しない場合には,--thresholdオプションでしきい値を下げて再実行してください。

(c) 早急にキャッシュデータファイルの空き容量を確保したい場合

例えば未使用ファイル数が非常に少なく,早急にキャッシュデータファイルの空き容量を確保したいような場合は,--thresholdオプションで指定するしきい値を小さくしてコンパクションを実行します。--cacheオプション,--rangeオプションで該当するキャッシュやレンジを優先して,eztool compactionコマンドを実行してください。

なお,このとき,すでにコンパクションを実行中の場合は,実行中のコンパクションを中断してから,再度eztool compactionコマンドを実行します。コンパクションを中断する手順については,「10.9.2 コンパクションを中断する手順」を参照してください。

参考

キャッシュデータファイルの空き容量が非常に少ないような状態の場合は,可能であれば,クラスタを閉塞状態にしてからコンパクションを実行することを推奨します。

(5) クラスタの閉塞状態を解除する(任意)

10.9.1(2) クラスタを閉塞状態にする(任意)」でクラスタを閉塞状態にした場合は,eztool openコマンドを実行し,クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

[図データ]

(6) 閉塞状態が解除できていることを確認する(任意)

10.9.1(2) クラスタを閉塞状態にする(任意)」でクラスタを閉塞状態にした場合は,eztool statusコマンドを実行して,全EADSサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

[図データ]

閉塞状態が解除できている場合,State欄にrunningが表示されます。