[ 
https://issues.apache.org/jira/browse/OAK-3606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15726728#comment-15726728
 ] 

Manfred Baedke commented on OAK-3606:
-------------------------------------

To make this work properly, we have to cope with the fact that on the one hand 
the current AsyncIndexUpdate code persists nothing if it doesn't detect visible 
changes, while on the other hand such a noop is of course a successful run that 
should increase the timestamp "StartLastSuccessIndexedTime" that we are going 
to introduce (we also should choose another name).
Since quite some effort has been made to avoid repo writes in this scenario 
(see OAK-1292) I'm reluctant to handle this with a persistent property (which 
would be simple).

But even if we used a persistent property, the caller of the MBean would still 
have no way to detect if it wasn't a different unknown operation that forwarded 
the timestamp - they would just know that some operation triggered a successful 
index update after they started their own operation. Not really helpful.

[~edivad], [~chetanm], [~icing]: thoughts?

> Improvements for IndexStatsMBean usage
> --------------------------------------
>
>                 Key: OAK-3606
>                 URL: https://issues.apache.org/jira/browse/OAK-3606
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core, lucene
>    Affects Versions: 1.3.9
>            Reporter: Thierry Ygé
>            Assignee: Manfred Baedke
>             Fix For: 1.6, 1.5.15
>
>         Attachments: adding_new_MBean.patch, 
> new_mbean_interface_and_implementation.patch
>
>
> When running integration tests, it is common to have the need to wait for the 
> async indexes to have been executed. So that the test can successfully 
> validate operations that depend on the search result.
> With the current IndexStatsMBean implementation it cannot return the start 
> time of the last successful indexing. It provide a "LastIndexedTime" which is 
> not sufficient to know if changes made recently are now indexed.
> The idea is to set the start time as value of a new attribute (i.e 
> "StartLastSuccessIndexedTime") to the IndexStatsMBean.
> Then create a new Mbean that calculate from all existing IndexStatsMBean (as 
> multiple are possible now) the oldest "StartLastSuccessIndexedTime".
> That will allow integration tests to be able to wait until that oldest 
> "StartLastSuccessIndexedTime" is greater than the time it started to wait.
> Attached is a sample patch containing the necessary changes (for a Oak core 
> 1.4.0-SNAPSHOT).



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

Reply via email to