Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-9888

Support more flexible SplitPersistence setups via OSGi

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.44.0
    • 1.46.0
    • segment-azure, segment-tar
    • None

    Description

      I am working on implementing a use-case where we want to use a SplitPesistence that starts with a TarPersistence base "seed" repository and layers its mutable storage on top using an AzurePersistence.

      Currently, in OSGi, it is only possible to configure the reverse of this setup, i.e. an AzurePersistence as the base and a TarPersistence as the mutable layer on top.

      I propose to add a generic mechanism to configure and use a SplitPersistence instance in the following way:

      • support configuration of an optional "role" property for AzureSegmentStoreService
      • create a TarPersistenceService to allow configuring and registering a TarPersistence instance in OSGi, also with an optional "role" property
      • create a SplitPersistenceService to allow configuring and registering a SplitPersistence instance in OSGi, also with an optional "role" property

      By default the SplitPersistenceService references its read-only persistence with the target filter "(role=split-persistence-ro)" and its read-write persistence with the target filter "(role=split-persistence-rw)". It registers itself with "role=split-persistence".

      Finally, in order to use the SplitPersistence a SegmentNodeStoreService (or SegmentNodeStoreFactory) can be configured with "customSegmentStore=true" and "segmentStore.target=(role=split-persistence)" (leveraging the feature of OSGi Declarative Services to configure target filters for references).

      Attachments

        Issue Links

          Activity

            People

              jsedding Julian Sedding
              jsedding Julian Sedding
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: