jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vikas Saurabh <vikas.saur...@gmail.com>
Subject Decide if a composite node store setup expose multiple checkpoint mbeans
Date Thu, 05 Jul 2018 21:59:34 GMT

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
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


View raw message