InfluxDBのデータ保存期間がよくわからない

習慣化177日目

InfluxDBをインストールしてみたが、データの保存期間がよくわからない。
デフォルトでは無期限と記載してあるが…

> SHOW RETENTION POLICIES
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true

という感じで、shardGroupDuration という項目に168時間(=7日間)が設定されている。
これはいったい何なんだ?

参考

InfluxDB 1.7 の使い方 その2( RETENTION POLICY , CONTINUOUS QUERY ) - bnote
https://www.bnote.net/centos/influxdb_basic_usage01.html

InfluxDB にデータベースを作成すると autogen という名前の保持期間無期限のポリシーが作成されます。作成されているポリシーを確認するには、「 SHOW RETENTION POLICIES 」コマンドを実行します。

InfluxDBの内部構造入門 パート1 | Yakst
https://yakst.com/ja/posts/4931

durationはオプションで指定するデータ保持期間です(データを破棄しないのであれば、durationはINFに設定してください)。SHARD DURATIONはデータ保持期間内のデータの粒度です。例えば、24時間のdurationでshard durationを1時間に設定すると、データベースは24の1時間のシャードで保存するよう設定します。毎時間一番古いシャードがデータベースから削除されます。レプリケーションファクター、つまりクラスター内でシャードの複製をいくつ保持するか、を設定するにはREPLICATIONを指定してください。

InfluxDB: Retention Policies & Shard Groups - OzNetNerd.com
https://oznetnerd.com/2017/06/11/influxdb-retention-policies-shard-groups/
→自分の認識とここの記載に食い違いがある。どっちが正しい?

InfluxDBのディスクがいっぱいになったので古いデータを削除した - Qiita https://qiita.com/Kameneko/items/3c0356dc800161a20535
→デフォルトのボリシーが適用されており、データ保存するフォルダが「1」「9」「17」と8飛びで作成されている
→→起動から何日目かがフォルダの数字になっている?→ちょい違うっぽい、自分の環境だと最初に「3」が作成された

なんとなくの把握

  • duration で指定している時間で実データが削除される
  • duration が 0s で設定されていると削除されない
  • InfluxDBはデータを扱いやすいようにブロック分けしている(キャッシュとかレプリケーションのため?)
  • shardGroupDuration で指定した期間でブロックが分割される

いったんデータを入れてみて、8日後にどうなっているか確認してみるかな。

現状

[root@centos6 ~]# find /var/lib/influxdb/data/ -type f -name "*tsm"
/var/lib/influxdb/data/mydb1/autogen/3/000000001-000000001.tsm
/var/lib/influxdb/data/_internal/monitor/1/000000001-000000001.tsm