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

Ian Boston commented on OAK-3547:
---------------------------------

I have tested the patch in Sling and AEM 6.2+Oak 1.6, no functional regressions 
or errors were seen.
There is an indication that opening the index is significantly slower with the 
patch as, in order to verify all the files in the index the files are read and 
a sha1 is generated from those files to ensure that the files are not damaged. 
Instrumenting the OakDirectory constructor call, which in the generational 
version validates the contents of the directory before opening, reveals.

WIthout OAK-3547 patch
{code}
t       count   max     mean    min     stddev  p50     p75     p95     p98     
p99     p999    mean_rate       m1_rate m5_rate m15_rate        rate_unit       
duration_unit
1475066389      40      10.221184       0.148839        0.022663        
0.882145        0.072211        0.072211        0.078419        0.15831 0.15831 
10.221184       0.07476 0.00111 0.227486        0.687796        calls/second    
milliseconds
{code}

With OAK-3547 patch
{code}
t       count   max     mean    min     stddev  p50     p75     p95     p98     
p99     p999    mean_rate       m1_rate m5_rate m15_rate        rate_unit       
duration_unit
1475063657      40      571.811075      378.76475       0.125733        
209.479519      492.429012      492.429012      492.429012      571.811075      
571.811075      571.811075      0.082329        0.002645        0.269424        
0.727275        calls/second    milliseconds
{code}

How much the difference is will depend on the size of the index files. The 
patch may also transfer the IO read operation on the index from outside the 
OakDirectory constructor to inside the OakDirectory constructor, so these 
readings may or may not be significant.

If they prove to be significant, then the SHA1 on files could be dropped on 
every open directory open and some other check be performed. Other checks won't 
be as robust as a full SHA1 check.

> Improve ability of the OakDirectory to recover from unexpected file errors
> --------------------------------------------------------------------------
>
>                 Key: OAK-3547
>                 URL: https://issues.apache.org/jira/browse/OAK-3547
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: lucene
>    Affects Versions: 1.4
>            Reporter: Ian Boston
>             Fix For: 1.6
>
>
> Currently if the OakDirectory finds that a file is missing or in some way 
> damaged, and exception is thrown which impacts all queries using that index, 
> at times making the index unavailable. This improvement aims to make the 
> OakDirectory recover to a previously ok state by storing which files were 
> involved in previous states, and giving the code some way of checking if they 
> are valid.



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

Reply via email to