[
https://issues.jboss.org/browse/ISPN-7806?page=com.atlassian.jira.plugin....
]
Radim Vansa updated ISPN-7806:
------------------------------
Description:
Currently in {{visitPrepareCommand}} the query interceptor is loading data directly from
data container. That's wrong - if the entry is passivated/evicted, the previous value
is incorrect.
As the data is not loaded (from DC/persistence) at current QI position, we should move
QueryInterceptor after EntryWrappingInterceptor, CacheLoaderInterceptor -and
xDistributionInterceptor (which may load the data from remote node),- and load the
previous entry from context instead. The same approach should be taken for non-tx command,
rather than relying on their return value.
**EDIT**: we should not move it below xDistributionInterceptor because on backup owner
(which may be write-owner but not a read-owner) we would retrieve the updated value
(affected by the current command), not the previous one.
There will still be issues if the command has SKIP_CACHE_LOAD flag: I suggest warning
message if it doesn't have SKIP_INDEXING flag as well.
was:
Currently in {{visitPrepareCommand}} the query interceptor is loading data directly from
data container. That's wrong - if the entry is passivated/evicted, the previous value
is incorrect.
As the data is not loaded (from DC/persistence) at current QI position, we should move
QueryInterceptor after EntryWrappingInterceptor, CacheLoaderInterceptor and
xDistributionInterceptor (which may load the data from remote node), and load the previous
entry from context instead. The same approach should be taken for non-tx command, rather
than relying on their return value.
There will still be issues if the command has SKIP_CACHE_LOAD flag: I suggest warning
message if it doesn't have SKIP_INDEXING flag as well.
QueryInterceptor should not load entries from DC but context
------------------------------------------------------------
Key: ISPN-7806
URL:
https://issues.jboss.org/browse/ISPN-7806
Project: Infinispan
Issue Type: Bug
Components: Embedded Querying
Affects Versions: 9.0.0.Final
Reporter: Radim Vansa
Assignee: Gustavo Fernandes
Currently in {{visitPrepareCommand}} the query interceptor is loading data directly from
data container. That's wrong - if the entry is passivated/evicted, the previous value
is incorrect.
As the data is not loaded (from DC/persistence) at current QI position, we should move
QueryInterceptor after EntryWrappingInterceptor, CacheLoaderInterceptor -and
xDistributionInterceptor (which may load the data from remote node),- and load the
previous entry from context instead. The same approach should be taken for non-tx command,
rather than relying on their return value.
**EDIT**: we should not move it below xDistributionInterceptor because on backup owner
(which may be write-owner but not a read-owner) we would retrieve the updated value
(affected by the current command), not the previous one.
There will still be issues if the command has SKIP_CACHE_LOAD flag: I suggest warning
message if it doesn't have SKIP_INDEXING flag as well.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)