aws / aws/aws-lambda-snapstart-java-rules

Missing rules when using expirable maps/caches from popular open source libraries

Abierto
#37 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Java
Estrellas
53
Forks
10
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

In case the expirable cache is initialized in the constructor of the Lambda class and some entries are put as well it may happen that the entries are not there anymore after the SnapStart snapshot is restored. The should be a warning of usage of time-based cached with the SnapStart is enabled.

In particular I'm thinking of the usage of 2 popular open source libraries:

- Google Guava ( artifact id **guava** and group id **com.google.guava**) and the code like this

myCache = CacheBuilder.newBuilder().expireAfterAccess(3600, TimeUnit.SECONDS) .build();
myCache.put("key", "value");

- Using artifact id **expiringmap** and the group id **net.jodah** and the code like this

expiredMap = ExpiringMap.builder().expiration(3600, TimeUnit.SECONDS).build();
expiredMap.put("key", "value");

I know that it's difficult to spot such use cases because both open source libraries offer standard and not expirable caches. But the invocation of the methods like **CacheBuilder.newBuilder().expireAfterAccess/expireAfterWrite** or multiple variations of methods **ExpiringMap.builder().expiration*** when creating the cache using these open source tools is a clear indication of the creation of expirable cache.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.