[infinispan-issues] [JBoss JIRA] (ISPN-4697) Single cache operation generates two sequential synchronous calls to the indexing engine
Sanne Grinovero (JIRA)
issues at jboss.org
Sun Sep 7 19:51:59 EDT 2014
[ https://issues.jboss.org/browse/ISPN-4697?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sanne Grinovero updated ISPN-4697:
----------------------------------
Description:
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.
was:
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 not be null and the backend will enqueue both operations for execution in the same call to the backend, but when there is no such context, 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.
> 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
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)
More information about the infinispan-issues
mailing list