MeliGraph.Store.ETS (MeliGraph v0.3.1)

Copy Markdown View Source

Implementação do Store behaviour usando ETS com TTL.

Cada entrada é armazenada como {key, value, expires_at}, onde expires_at pode ser:

  • um inteiro (monotonic ms) — a entrada expira nesse instante
  • :infinity — a entrada nunca expira (usada por embeddings LightGCN)

Entradas com TTL numérico expirado são ignoradas na leitura e removidas pelo CacheCleaner. Entradas :infinity só saem do store via delete/2, clear/1 ou substituição com put/4.

Summary

Functions

Returns a specification to start this module under a supervisor.

Remove todas as entradas expiradas. Chamado pelo plugin CacheCleaner.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

clean_expired(conf)

@spec clean_expired(MeliGraph.Config.t()) :: non_neg_integer()

Remove todas as entradas expiradas. Chamado pelo plugin CacheCleaner.

Entradas com TTL :infinity são preservadas — o guard is_integer/1 no match spec garante que apenas timestamps numéricos sejam comparados.

start_link(opts)