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