Documentation for a newer release is available. View Latest

TTL Indexes

Esta página proporciona orientación sobre la configuración de índices TTL (Time-To-Live), que eliminan automáticamente los datos expirados después de una duración especificada.

Properties file

Algunas propiedades para el índice TTL son configurables y pueden establecerse usando el siguiente archivo de propiedades:

package com.iconsolutions.ipf.core.platform.scheduler.persistent.mongo;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.time.Duration;

@Data
@ConfigurationProperties(prefix = "ipf.persistent.scheduler.ttl")
public class MongoIndexProperties {

    /**
     * The name of the field that will be used for TTL index
     */
    private String timestampFieldName;

    /**
     * The duration a record is considered to be expired
     */
    private Duration expiry;

    /**
     * a toggle to either create or not the indexes
     */
    private Boolean createIndexesFlag;
}
  • timestampFieldName: campo usado para el índice ttl

  • expire: Duración para que el registro se considere expirado

  • createIndexesFlag: por defecto es true. Un interruptor para crear el índice

El siguiente ejemplo lo configura para expirar el campo deleteTime para registros de más de 1 hora:

ipf {
  persistent {
    scheduler {
      ttl {
        timestamp-field-name = "deleteTime"
        expiry = 1h
        create-indexes-flag = true
      }
    }
  }
}

Index creation

La creación de índices puede deshabilitarse globalmente con:

ipf.mongodb.create-indexes=false

Para deshabilitar la indexación globalmente pero mantenerla para el scheduler, aplique lo siguiente, manteniendo el orden:

ipf.mongodb.create-indexes=false
ipf.persistent.scheduler.ttl.create-indexes-flag = true

El commit quorum puede controlarse de manera similar con:

ipf.persistent.scheduler.ttl.commit-quorum=1

O sobrescribirse globalmente con:

ipf.mongodb.commit-quorum=1