[
https://issues.jboss.org/browse/ISPN-8862?page=com.atlassian.jira.plugin....
]
Dan Berindei commented on ISPN-8862:
------------------------------------
We could go the other way around and skip the store iteration if there's no eviction.
(Not sure if checking that the eviction strategy is none is enough to confirm that
there's no automatic or manual eviction, though).
If there is any kind of eviction then we always have to iterate through the store's
keys, so maybe we can pass the data container to the store and allow it to decide whether
to try and load the value+metadata from the data container if available (e.g.
{{SingleFileStore}}) or skip the data container access because reading the value
separately is too expensive (e.g. {{JdbcStringBasedStore}}).
Iteration and stream operations with passivation disabled
shouldn't use in memory
---------------------------------------------------------------------------------
Key: ISPN-8862
URL:
https://issues.jboss.org/browse/ISPN-8862
Project: Infinispan
Issue Type: Enhancement
Reporter: William Burns
Assignee: William Burns
Fix For: 9.3.0.Final
When passivation is disabled all entries are assumed to be in the cache loader/store. We
currently try to merge these together in a sloppy way [1]. This first reads in memory and
then from the store and keeps all keys from in memory to exclude them from the store.
Unfortunately the store still has to pull the entries even for the already read keys, but
just ignores them. This leads to a lot of inefficiency and memory bloat. Instead we should
just return the store entries as is when passivation is disabled.
[1]
https://github.com/infinispan/infinispan/blob/master/core/src/main/java/o...
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)