]
Adrian Nistor updated ISPN-4697:
--------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
Integrated. Thanks!
Single cache operation generates two sequential synchronous calls to
the indexing engine
----------------------------------------------------------------------------------------
Key: ISPN-4697
URL:
https://issues.jboss.org/browse/ISPN-4697
Project: Infinispan
Issue Type: Enhancement
Components: Embedded Querying
Affects Versions: 7.0.0.Beta1
Reporter: Sanne Grinovero
Assignee: Gustavo Fernandes
Fix For: 7.0.0.CR1
For a similar reason as explained in ISPN-4650, the method
{{org.infinispan.query.backend.QueryInterceptor.processPutKeyValueCommand(PutKeyValueCommand,
InvocationContext, Object, TransactionContext)}}
is likely to invoke a {{removeFromIndexes}} first and then an {{updateIndexes}}.
When using transactions, the {{transactionContext}} will enqueue both operations for
execution in the same call to the backend, but when no transaction is in progress, this
will generate two sequential and independent calls to the backend.
When the backend happens to be the {{InfinispanIndexManager}}, this implies we're
generating two sequential synchronous RPCs rather than bacthing the two operations in a
single Update statement: the first call is completely redundant in most cases, and can be
incorporated in the second call for all remaining edge cases.