Linux - Disco/sistema de arquivos como cache LRU (com expiração transparente)

Linux - Disco/sistema de arquivos como cache LRU (com expiração transparente)

Tenho um caso em que gostaria de usar o disco local como cache LRU para arquivos (quentes) de um serviço da Web separado (algo como S3). Se o arquivo não existir no disco, o arquivo será lido pela Internet, gravado no disco local e, em seguida, solicitações futuras poderão usar o cache local em vez de lê-lo na fonte original.

Como a quantidade de dados armazenados no serviço da Web excederá o armazenamento local, desejo eliminar os arquivos locais de forma automática e transparente quando um novo arquivo for gravado, se o armazenamento já estiver cheio. Se possível, gostaria de evitar uma situação em que tenho uma tarefa cron que verifica um horário e expira os arquivos após um determinado período, pois não há motivo específico para expirar itens de cache com base no tempo, se nenhum arquivo estiver sendo gravado.

Eu tentei encontrar algo como tmpfs que me permite implementar algo semelhante a um cache puramente baseado em disco (em SSDs) da forma mais transparente possível para o aplicativo que usa o cache, mas não consegui encontrar nada que implemente essa funcionalidade (semelhante ao que o CacheFS faz para o NFS, mas de uma forma mais geral).

Responder1

Você pode tentar o cache de arquivos nginx para isso, se estiver de acordo com a interface http. Vercache de conteúdo nginx.

informação relacionada