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

Jason Huynh reassigned GEODE-966:
---------------------------------

    Assignee: Jason Huynh

> HashIndex with Overflow region detection/conversion needs to occur sooner
> -------------------------------------------------------------------------
>
>                 Key: GEODE-966
>                 URL: https://issues.apache.org/jira/browse/GEODE-966
>             Project: Geode
>          Issue Type: Bug
>          Components: querying
>            Reporter: Jason Huynh
>            Assignee: Jason Huynh
>
> We maintain a map of indexes in the index manager, where the indexTask is the 
> key and the FutureTask or Index is the value.
> At the same time we convert hash indexes to compact range indexes when used 
> for overflow regions.
> At the first pass, say a process creates hash index task (TASK1) and stuffs 
> the future task into the map.
> At some future time, (before the hash index future task completes) another 
> index task (TASK2) comes in with the same expression
> When the hash index task completes, it does an indexes.put(index task, index).
> This put uses the equals method of the index task which has multiple stages. 
> It first matches by name, then has a short circuit to detect if this is an 
> index lookup and then it matches by index expression. Because we have changed 
> the actual index type of the hash index to that of a functional index for 
> overflow regions, this put will actually match TASK2 depending on the order 
> in which we traverse the map keys (possibly related to why we didn't see this 
> problem pre 1.8?)
> We end up with a map where the TASK1 still maps to a future task and get this 
> weird behavior.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to