[ 
https://issues.apache.org/jira/browse/GEODE-9602?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alberto Gomez reassigned GEODE-9602:
------------------------------------

    Assignee: Alberto Gomez

> QueryObserver improvements
> --------------------------
>
>                 Key: GEODE-9602
>                 URL: https://issues.apache.org/jira/browse/GEODE-9602
>             Project: Geode
>          Issue Type: Bug
>          Components: querying
>            Reporter: Alberto Gomez
>            Assignee: Alberto Gomez
>            Priority: Major
>
> The QueryObserver interface allows to create classes that would be notified 
> about query events.
> The way to set a QueryObserver is by means of the QueryObserverHolder class, 
> that is able to hold a single instance of a QueryObserver.
> This mechanism currently has two problems:
>  * The QueryObserverHolder class is not thread-safe. The observer instance to 
> be returned by the getInstance() class could return an undefined value.
>  * Given that the observer is retrieved via the 
> QueryObserverHolder::getInstance() method at different points of the query 
> execution, it is possible that if several queries with different observers 
> are run in parallel, the observers for the queries will be changed in the 
> middle of the query execution with unexpected results for the queries.
> In order to solve the above problems, the following is proposed:
>  * Make the QueryObserverHolder class thread-safe.
>  * Allow for having an observer per query. A simple way to allow this is to 
> set the observer in the query context when the query is started. That way, 
> several queries could be run in parallel, each with its own observer.
> Apart from the above, it's been observed that there are no QueryObserver 
> before/after iteration evaluation 'callbacks' invoked when the query is using 
> indexes.
> It is also proposed to add these before/after IterationEvaluation callbacks 
> so that they are called also when the query is using indexes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to