stefan-egli commented on PR #993:
URL: https://github.com/apache/jackrabbit-oak/pull/993#issuecomment-1628602495

   Some more concerns I encountered with the detail-gc-skeleton:
   
   ##### split classic gc from detail gc
   We need a way to separate classic gc from detail gc in the sense that 
classic gc could be already fully caught up (or eg blocked by a checkpoint), 
while detail gc would still have to go on and do its repository scan. Currently 
for example there is a `ignoreDueToCheckPoint` in the 
`VersionGCRecommendations` which blocks further gc progress if a checkpoint is 
hit. That applies irrespective of whether the detail gc is actually still way 
behind. I think the code in `VersionGarbageCollector.GCJob.gc` needs to be 
split into classic and detail - and to support that, the 
`VersionGCRecommendations` also needs a `ignore` flag for detail, separated 
from classic.
   
   ##### rounding issue with modified (`-1` vs being 5sec resolution)
   There is a rounding issue with 
`SETTINGS_COLLECTION_DETAILED_GC_TIMESTAMP_PROP`.
   * when we read that value, there is currently a [`-1` 
applied](https://github.com/apache/jackrabbit-oak/blob/ca1c451a84f8eae6dc3f179ffe420cb2cbbc8d02/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGCRecommendations.java#L132)
   * later on in 
[NodeDocument.getModifiedInSecs](https://github.com/apache/jackrabbit-oak/blob/ca1c451a84f8eae6dc3f179ffe420cb2cbbc8d02/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java#L270)
 it rounds the value from millis to seconds by dividing - so eg `1657811274999` 
is rounded to `1657811274`.
   * [one line 
further](https://github.com/apache/jackrabbit-oak/blob/ca1c451a84f8eae6dc3f179ffe420cb2cbbc8d02/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java#L271)
 it does a modulo 5 - which in the example results in `1657811270`
   
   As a result it goes back a 5 sec lot - which means it will repeat the query 
and result in duplicate handling of documents


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to