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]
