rétention et compaction dans une base de données temporelle

Camil Lepetit 40 Points de réputation
2026-09-18T12:31:39.7966667+00:00

La base de données temporelle ne parvient pas à supprimer automatiquement les séries de données dépassant la durée de rétention définie. Comment forcer manuellement le processus de compaction pour libérer l'espace disque ?

Windows pour les entreprises | Windows 365 Business
0 commentaires Aucun commentaire

1 réponse

  1. Domic Vo 34,160 Points de réputation Conseiller indépendant
    2026-09-18T13:04:08.91+00:00

    Bonjour,

    Le comportement que vous décrivez correspond à une base de données temporelle qui ne déclenche pas correctement la purge automatique des séries expirées. Pour forcer manuellement la compaction et libérer l’espace disque, la méthode dépend du moteur utilisé.

    Si vous êtes sur InfluxDB, la rétention est gérée par les retention policies et le moteur TSM. Lorsque les shards expirés ne sont pas supprimés, vous pouvez lancer manuellement la compaction avec :

    Code

    influxd inspect compact-shards
    

    Cela force la réécriture et la suppression des shards obsolètes. Vous pouvez également exécuter :

    Code

    influxd inspect delete-expired
    

    afin de supprimer directement les séries dépassant la durée de rétention. Vérifiez ensuite dans le répertoire /var/lib/influxdb/data/<database>/<retention_policy>/ que les fichiers .tsm et .wal ont bien été purgés.

    Si vous êtes sur TimescaleDB, la rétention est gérée par les jobs créés via add_retention_policy. Si le job ne s’exécute pas automatiquement, vous pouvez le déclencher manuellement avec :

    SQL

    SELECT run_job(job_id) 
    FROM timescaledb_information.jobs 
    WHERE job_type='retention';
    

    Cela lance immédiatement la suppression des chunks dépassant la durée définie. Vous pouvez ensuite contrôler l’espace disque libéré avec pg_total_relation_size sur l’hypertable concernée.

    Dans les deux cas, assurez-vous que les droits d’accès du service permettent bien la suppression des fichiers, et que la configuration de la rétention est correcte. Si malgré ces actions la compaction ne libère pas l’espace, il est possible que vous soyez confronté à un bug connu dans la version utilisée. Dans ce cas, la meilleure pratique est de mettre à jour vers la dernière version stable, car plusieurs correctifs ont été apportés sur la gestion de la compaction et du garbage collection.

    Je vous recommande de préciser si vous utilisez InfluxDB ou TimescaleDB afin que je puisse vous fournir la commande exacte adaptée à votre environnement.

    DV.

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire

Votre réponse

Les réponses peuvent être marquées comme « Acceptées » par l’auteur de la question et « Recommandées » par les modérateurs, ce qui aide les utilisateurs à savoir que la réponse a résolu le problème de l’auteur.