[ https://issues.apache.org/jira/browse/OAK-2613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefan Egli updated OAK-2613: ----------------------------- Fix Version/s: (was: 1.2) 1.3.0 Flagged this 1.3 instead of 1.2 as this is not a blocker for most apps. > Do versionGC more frequently and at adjusted speed > -------------------------------------------------- > > Key: OAK-2613 > URL: https://issues.apache.org/jira/browse/OAK-2613 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk > Affects Versions: 1.0.12 > Reporter: Stefan Egli > Fix For: 1.3.0 > > > This is a follow-up ticket from > [here|https://issues.apache.org/jira/browse/OAK-2557?focusedCommentId=14355322&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14355322] > mixed with an offline discussion with [~mreutegg]: > * we could make the VersionGC play nicely to existing load on the system: it > could progress slower if the load is higher and vice-verca. One simple > measure could be: if the observation queue is small (eg below 10) then the > load is low and it could progress full-speed. Otherwise it could add some > artificial sleeping in between. > * we could run versionGC more regularly than once a day but instead kind of > 'continuously' let it run in the background. While the speed of the gc would > be adjusted to the load - it also would have to be assured that it doesn't > run too slow (and would never finish if instance is under some constant load) > Note that 'adjusted speed' would also imply some intelligence about the > system load, as pointed out by [~chetanm] on OAK-2557: > {quote}Version GC currently ensures that query fired is made against the > Secondary (if present). However having some throttling in such background > task would be good thing to have. But first we need to have some > SystemLoadIndicator notion in Oak which can be provide details say in > percentage 1..100 about system load. We can then expose configurable > threshold which VersionGC would listen for and adjust its working accordingly. > It can be a JMX bean which emits notification and we have our components > listen to those notification (or use OSGi SR/Events). That can be used in > other places like Observation processing, Blob GC etc > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)