[JBoss JIRA] (ISPN-8628) Simplify QueryEngine handling of Broadcast vs Fetch queries
by Tristan Tarrant (Jira)
[ https://issues.jboss.org/browse/ISPN-8628?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-8628:
----------------------------------
Fix Version/s: 9.4.7.Final
(was: 9.4.6.Final)
> Simplify QueryEngine handling of Broadcast vs Fetch queries
> -----------------------------------------------------------
>
> Key: ISPN-8628
> URL: https://issues.jboss.org/browse/ISPN-8628
> Project: Infinispan
> Issue Type: Task
> Reporter: Gustavo Fernandes
> Assignee: Adrian Nistor
> Priority: Minor
> Fix For: 9.4.7.Final
>
>
> [~anistor] commented
> The existence of RemoteQueryDefinition and HsQueryRequest seems to be a symptom of misplaced responsibility. It all starts with QueryDefinition.initialize, which IMO should actually be placed inside QueryEngine, not QueryDefinition. Doing that refactoring will remove the need for RemoteQueryDefinition, which now exists just to differentiate between embedded and remote case, but that differentiation can be done inside the query engine itself. Also, HsQueryRequest is just a data holder that carries the return value of QueryEngine.createHsQuery. If QueryDefinition.initialize is moved to QueryEngine we would also not need this anymore.
> I did not think about it in detail but maybe we would also need to make QueryDefinition mutable for QueryEngine and immutable for external parties. In that case we can extract QueryDefinition as an immutable interface (exposing getters only) and it's implementation class could have package local setters accessible to QueryEngine only.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 2 months
[JBoss JIRA] (ISPN-6220) Speedup index rebuilds but using ADD rather than UPDATE statements when safe
by Tristan Tarrant (Jira)
[ https://issues.jboss.org/browse/ISPN-6220?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-6220:
----------------------------------
Fix Version/s: 9.4.7.Final
(was: 9.4.6.Final)
> Speedup index rebuilds but using ADD rather than UPDATE statements when safe
> ----------------------------------------------------------------------------
>
> Key: ISPN-6220
> URL: https://issues.jboss.org/browse/ISPN-6220
> Project: Infinispan
> Issue Type: Enhancement
> Components: Embedded Querying
> Reporter: Sanne Grinovero
> Priority: Major
> Fix For: 9.4.7.Final
>
>
> The {{DistributedExecutorMassIndexer}} relies on update commands to index the new entries, but when we just run a full purge of the index it should be safe to use Add commands instead if we know that there aren't concurrent updates.
> The lack of concurrent updates might be tricky but I think we can find such a condition when using Affinity as the index is being fully controlled by the current indexing engine, similarly to the checks to see if it's safe to use an NRT workspace.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 2 months
[JBoss JIRA] (ISPN-8643) ClientConnectionPoolingTest.testMaxActiveReached random failures
by Tristan Tarrant (Jira)
[ https://issues.jboss.org/browse/ISPN-8643?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-8643:
----------------------------------
Fix Version/s: 9.4.7.Final
(was: 9.4.6.Final)
> ClientConnectionPoolingTest.testMaxActiveReached random failures
> ----------------------------------------------------------------
>
> Key: ISPN-8643
> URL: https://issues.jboss.org/browse/ISPN-8643
> Project: Infinispan
> Issue Type: Bug
> Components: Test Suite - Server
> Affects Versions: 9.2.0.Beta2
> Reporter: Dan Berindei
> Priority: Major
> Labels: testsuite_stability
> Fix For: 9.4.7.Final
>
>
> Looks like waiting for 1s for all the connections to be releases is not enough:
> {noformat}
> java.lang.AssertionError:
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:229)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:211)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:187)
> at org.infinispan.client.hotrod.ClientConnectionPoolingTest.testMaxActiveReached(ClientConnectionPoolingTest.java:208)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> {noformat}
> http://ci.infinispan.org/job/Infinispan/job/master/336
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 2 months
[JBoss JIRA] (ISPN-6224) Simplify configuration of Query with Indexing Affinity
by Tristan Tarrant (Jira)
[ https://issues.jboss.org/browse/ISPN-6224?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-6224:
----------------------------------
Fix Version/s: 9.4.7.Final
(was: 9.4.6.Final)
> Simplify configuration of Query with Indexing Affinity
> ------------------------------------------------------
>
> Key: ISPN-6224
> URL: https://issues.jboss.org/browse/ISPN-6224
> Project: Infinispan
> Issue Type: Enhancement
> Components: Embedded Querying
> Reporter: Sanne Grinovero
> Priority: Major
> Fix For: 9.4.7.Final
>
>
> We should try to enable the "Index Affinity" capabilities in an easier way from a configuration point of view.
> For example I wonder if the capabilities provided by the {{AffinityPartitioner}} could not be enabled by default, for example automatically decorating any user defined {{HashFunctionPartitioner}} so that people can't neither forget to enable it, nor override it.
> Second, should it be enabled by default when the cache configuration suggests it, for example in most clustered caches?
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 2 months
[JBoss JIRA] (ISPN-6279) Refactor CacheLoader API to make it thread safe
by Tristan Tarrant (Jira)
[ https://issues.jboss.org/browse/ISPN-6279?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-6279:
----------------------------------
Fix Version/s: 9.4.7.Final
(was: 9.4.6.Final)
> Refactor CacheLoader API to make it thread safe
> -----------------------------------------------
>
> Key: ISPN-6279
> URL: https://issues.jboss.org/browse/ISPN-6279
> Project: Infinispan
> Issue Type: Feature Request
> Components: Loaders and Stores
> Reporter: Sebastian Łaskawiec
> Priority: Minor
> Fix For: 9.4.7.Final
>
>
> h3. Introduction
> Currently {{CacheLoader}} thread safety can be easily compromised by broken implementations. We should provide a better implementation to make it more convenient and less error prone.
> h3. Problem statement
> CacheLoader API looks like this:
> {code}
> public interface AdvancedCacheLoader<K, V> extends CacheLoader<K, V> {
> ...
> void process(KeyFilter<? super K> filter, CacheLoaderTask<K, V> task, Executor executor, boolean fetchValue, boolean fetchMetadata);
> ...
> }
> {code}
> The CacheLoader implementation controls {{CacheLoaderTask}} as well as the number of threads used for processing (specified by {{Executor}}). If one wants to collect all keys (similarly to [AdvancedCacheLoader|https://github.com/infinispan/infinispan/blob/master/...]) it is very easy to hit concurrently issues while adding them to the set (See previous JIRAs: ISPN-3938 and ISPN-6276).
> h3. Solution
> The solution should take away currently control (Executor) and keyset (the simplest idea is to add it to {{CacheLoaderTask}}) from from the implementation. One of the ideas is to create a Lambda expression for pulling records from Cache Store. Note that similar changes will need to be performed to {{CacheWriter}} (to make it similar).
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 2 months