You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Fred Krone (JIRA)" <ji...@apache.org> on 2017/06/15 20:39:00 UTC

[jira] [Updated] (GEODE-1303) CqServiceImpl.processEntryEvent(CacheEvent, Profile, Profile[], FilterRoutingInfo)

     [ 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)