2016-09-02 3 views
4

私のaerospikeクラスタは50%のディスク使用率を記録し、レコードは追い出され始めています。 私はクラスタに毎日多くのレコードを書き込まないことは疑いがあります。私たちは90日間のTTLセットと名前空間のデフォルトTTLを持つレコードは30日です。AerospikeでTTL 0でレコードを検索

私の懸念事項は、追放されず使用されていないTTLが0のレコードがあると仮定しています。 0 TTLのレコード(オブジェクトの数)を、デフォルトのTTLに即時に変更する必要があります。

ありがとうございました。あなたは、次のログ行を探し

+1

これを行うスクリプトをお探しですか? –

答えて

3

2016年9月2日15時14分00秒GMT:INFO(NSUP):(thr_nsup.c:1114){テスト}レコード:3725361、0 0-VT、 0(0)は期限切れ、0(0)は削除され、0(0)は削除を削除します。エビクトttl:0。待機:0,0,0。合計時間:765 ms

これは 'test'というネームスペースで報告されているネームスペースの管理者であり、372561個のレコードには0個のvtまたはvoid時間があるレコードがあると言います。

TTLは、現在の時刻と(期限切れになる)レコードの無効時間との間のデルタであるため、無効時間が0のレコードは期限切れになることも、追い出されることもありません。物事の

4

カップル:

エアロスパイク・ログは次の行に「0 VT」のレコード数を探し、任意の有効期限を持っていないどのように多くのレコードを教えてくれます(私の例では、ここにある0) :

{ns-name} Records: 37118670, 0 0-vt, 0(377102877) expired, 185677(145304222) evicted, 0(0) set deletes, 0(0) set evicted. Evict ttls: 34560,38880,0.118. Waits: 0,0,8743. Total time: 45467 ms

この意志すぐにそのネームスペースの非期限切れレコードの「割合」(あなたは右隣にレコードの合計数を持っているので)。

有効期限が設定されているレコードを完全に識別するためには、レコードをスキャンして更新する必要があります。this repoのセット(または名前空間)をスキャンするサンプルコードがjavaにあります。しかし、他のはるかに洗練されたソリューションがあるかもしれませんが、それらはまだ少しのコードを書くことを伴います。

関連する問題