avoid run-away PVS caching - clear if over 50,000 entries.

This commit is contained in:
2023-02-24 16:23:08 -06:00
parent 1baf7d8f86
commit 8a8f0d6e6f

View File

@ -56,6 +56,7 @@ import com.kingsrook.qqq.backend.core.utils.ListingHash;
import com.kingsrook.qqq.backend.core.utils.Pair; import com.kingsrook.qqq.backend.core.utils.Pair;
import com.kingsrook.qqq.backend.core.utils.StringUtils; import com.kingsrook.qqq.backend.core.utils.StringUtils;
import com.kingsrook.qqq.backend.core.utils.ValueUtils; import com.kingsrook.qqq.backend.core.utils.ValueUtils;
import static com.kingsrook.qqq.backend.core.logging.LogUtils.logPair;
/******************************************************************************* /*******************************************************************************
@ -417,6 +418,15 @@ public class QPossibleValueTranslator
} }
} }
for(Map.Entry<String, Map<Serializable, String>> entry : possibleValueCache.entrySet())
{
int size = entry.getValue().size();
if(size > 50_000)
{
LOG.debug("Found a big PVS cache - clearing it.", logPair("name", entry.getKey()), logPair("size", size));
}
}
for(String tableName : fieldsByPvsTable.keySet()) for(String tableName : fieldsByPvsTable.keySet())
{ {
Set<Serializable> values = new HashSet<>(); Set<Serializable> values = new HashSet<>();