Looking further I think I can achieve the same by checking if NodeStore is instanceof org.apache.jackrabbit.oak.spi.state.Clusterable which was introduced with OAK-3529 and is currently implemented by DocumentNodeStore Chetan Mehrotra
On Tue, Nov 15, 2016 at 3:39 PM, Stefan Egli <[email protected]> wrote: > Hi Chetan, > > I think the discoverylite and the new 'clustered' property options have > different characteristics. The former describes the current status of the > cluster, irrespective of whether it can be clustered at all. While the > latter is about a capability whether the node store supports clustering or > not. And assuming that you're after the capability 'cluster support' > alone, then I think handling this separate is indeed more appropriate. > > Cheers, > Stefan > > On 15/11/16 10:37, "Chetan Mehrotra" <[email protected]> wrote: > >>Hi Team, >> >>For OAK-2108 Killing a cluster node may stop async index update to to >>30 minutes. >> >>One possible fix can be that AsyncIndexUpdate can determine if the >>repository is part of cluster or its a single instance. In case its a >>single instance we can reduce the timeout as its known that there are >>no other processes involved. >> >>Currently for SegmentNodeStore a Descriptor with name >>'oak.discoverylite.clusterview' is registered whose value is as below >> >>--- >>{"seq":1,"final":true,"me":1,"id":"80a1fb91-83bc-4eac-b855-53d7b8a04092"," >>active":[1],"deactivating":[],"inactive":[]} >>--- >> >>AsyncIndexerService can get access to 'Descriptors' and look for that >>key and check if 'active' is 1. >> >>However there should be a better way to detect this. Can we have an >>explicit descriptor defined say OAK_CLUSTERED having boolean value. A >>false means its not a cluster while true means it "might" be part of >>cluster. >> >>Thoughts? >> >>Chetan Mehrotra > >
