When using the composite node store for blue-green deployments, multiple versions of a index can exist at the same time, for a short period of time (while both blue and green are running at the same time).
OAK-8721 we support automatically pick the latest active index version for this case.
What we don't support so far is merged indexes. Those are indexes that combine customizations, and changes to the base index.
The algorithm to decide which version of an index to use should be:
- If this is a not a composite repository (if it doesn't have non-default mounts), use the index (shortcut).
- Collect all indexes of the same base name (e.g. damAssetLucene). We can use at most one of them.
- For the given base name, use the latest version that is active (latest means the highest index version, where xxx-5 < xxx-6 < xxx-6-custom-1 < xxx-6-custom-2 < xxx-7.
- It's possible that for a given base name, no index is active (in case of app version 1 for a new index).
An index is active if it has a hidden child node that starts with ":oak:mount-", OR if it is an active merged index.
An index is an active merged index if it has the property "merges", and that property points to index definitions, and each of those indexes is either active, disabled, or removed.