[ 
https://issues.apache.org/jira/browse/OAK-9888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17578021#comment-17578021
 ] 

Julian Sedding commented on OAK-9888:
-------------------------------------

[PR #663|https://github.com/apache/jackrabbit-oak/pull/663] implements the 
required changes.

> Support more flexible SplitPersistence setups via OSGi
> ------------------------------------------------------
>
>                 Key: OAK-9888
>                 URL: https://issues.apache.org/jira/browse/OAK-9888
>             Project: Jackrabbit Oak
>          Issue Type: Story
>          Components: segment-azure, segment-tar
>    Affects Versions: 1.44.0
>            Reporter: Julian Sedding
>            Assignee: Julian Sedding
>            Priority: Major
>
> 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|https://docs.osgi.org/specification/osgi.cmpn/8.0.0/service.component.html#service.component-target.property]
>  for references).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to