Hi, We recently discovered OAK-7610 [0] where ActiveDeletedBlobCollectorMBeanImpl got confused due to multiple implementations of CheckpointMBean being exposed in composite node store setups (since OAK-6315 [1] which implemented checkpoint bean for composite node store)
While, for the time being, we are going to avoid that confusion by changing ActiveDeletedBlobCollectorMBeanImpl to keep on returning oldest checkpoint timestamp if all CheckpointMBean implementations report the same oldest checkpoint timestamp. But that "work-around" works currently because composite node store uses global node store to list checkpoint to get oldest timestamp... but the approach is incorrect in general as there's no such guarantee. So, here's the question for the discussion: how should the situation be handled correctly. Afaict, there are a few options (in decreasing order of my preference): 1. there's only a single checkpoint mbean exposed (that implies that mounted node store services need to "know" that they are mounted stores and hence shouldn't expose their own bean) 2. composite node store's checkpointMBean implementation can expose some metadata (say implement a marker interface) - discovering such implementation can mean "use this implementation for repository level functionality" 3. keep the work-around to be implemented in OAK-7610 [0] but document (ensure??) that the assumption that "all implementations would have same oldest checkpoint timestamp" Would love to get some feedback. [0]: https://issues.apache.org/jira/browse/OAK-7610 [1]: https://issues.apache.org/jira/browse/OAK-7315 Thanks, Vikas
