Hi,

I was looking into how we could align the various MBeans exposing the functionality from the file store. Currently we have GCMonitorMBean, SegmentRevisionGCMBean Segment Tar. The former exposes the status of gc and the latter its its configuration and management. As with OAK-4835 the latter should also receive a method for cancelling a running gc, I think it would make sense to make the status also part of the same MBean. To that respect I think we should merge the functionality of GCMonitorMBean into SegmentRevisionGCMBean.

See https://github.com/mduerig/jackrabbit-oak/commits/OAK-4835 where I implemented this over a couple of commits:

* https://github.com/mduerig/jackrabbit-oak/commit/5a2f20f403768a509211365a06b9860064f2b97a introduces a generic option for cancelling revision gc from oak-core (RepositoryManagementMBean and RevisionGCMBean).

* https://github.com/mduerig/jackrabbit-oak/commit/8b02bf58be99cd24fd85771c7ece041e223aab90 encapsulates gc related functionality in Segment Tar into a subclass and implements cancelling of gc without having to rely on external state. This encapsulation also simplifies avoiding concurrent calls to cleanup() and compact().

* https://github.com/mduerig/jackrabbit-oak/commit/06047e27fb1576dd3c1bcd29eae61f66286fe16a moves the functionality from GCMonitorMBean to SegmentRevisionGCMBean and removes the former.

https://github.com/mduerig/jackrabbit-oak/commit/c0e526384a25c8536d8826542f70de7463e50446 finally implements cancelling of gc in Segment Tar. (This relies on first upgrading the dependencies on oak-core).

Michael

Reply via email to