[ https://issues.apache.org/jira/browse/OAK-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15712181#comment-15712181 ]
Stefan Egli commented on OAK-5208: ---------------------------------- Added this to the documentation in http://svn.apache.org/viewvc?rev=1772220&view=rev > Improve observation filter switching while events are queued > ------------------------------------------------------------ > > Key: OAK-5208 > URL: https://issues.apache.org/jira/browse/OAK-5208 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: jcr > Affects Versions: 1.5.14 > Reporter: Stefan Egli > > OAK-4796 changed the model how commits are filtered for processing by the > individual observation listeners. Each BackgroundObserver has a queue of > content changes (ie commits) that are ready for being filtered, converted to > events and then delivered to listeners. > Prior to OAK-4796 the filtering of those observation events happened at the > _head_ of the queue, ie at dequeue time. Thus when switching the filter for > an observation listener it would be applied to all still queued changes as > they are being processed. > With OAK-4796 and its introduction of prefiltering, this filtering now > happens at the _tail_ of the queue, ie at enqueue time first with the > _prefilter_, and later on with the _normal_ filter at dequeue time. In > essense there are now 2 filtering steps. Thus when switching the filter for > an observation listener and that listener had changes in its queue, the > effect would be that still enqueued changes would have been gone through the > prefilter based on the old filter and of the normal filter based on the new > filter. > An improvement is to pass the filter applied in the prefilter along in the > queue and use the same later on for doing the normal filtering. And the > filter change would then be applied on the prefilter alone. -- This message was sent by Atlassian JIRA (v6.3.4#6332)