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

Fred Krone updated GEODE-1303:
------------------------------
    Labels: offheap  (was: )

> CqServiceImpl.processEntryEvent(CacheEvent, Profile, Profile[], 
> FilterRoutingInfo)
> ----------------------------------------------------------------------------------
>
>                 Key: GEODE-1303
>                 URL: https://issues.apache.org/jira/browse/GEODE-1303
>             Project: Geode
>          Issue Type: Improvement
>          Components: offheap
>            Reporter: Darrel Schneider
>              Labels: offheap
>
> Currently CqServerImpl.processEntryEvent copies each off-heap value it adds 
> to cqUnfilteredEventsSet_newValue to the heap in this code:
>       if (cqUnfilteredEventsSet_newValue.isEmpty() && 
> (event.getOperation().isCreate() ||  event.getOperation().isUpdate())) {
>         Object newValue = entryEvent.getNewValue(); // TODO OFFHEAP: optimize 
> by not copying the value on to the heap
>         if (newValue != null) {
>           //We have a new value to run the query on
>           cqUnfilteredEventsSet_newValue.add(newValue);
>         }
>       }
> The cqUnfilteredEventsSet_newValue does not live past this method call. The 
> values in it are later passed to evaluateQuery.
> It would be nice if we didn't need to copy the values to the heap in this 
> code. It would be easy enough to retain them and then release everything in 
> cqUnfilteredEventsSet_newValue in a finally block. But can evaluateQuery 
> handle an offheap reference? If so then this would be a nice optimization for 
> cqs on offheap regions.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to