[
https://issues.apache.org/jira/browse/OAK-3403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15354672#comment-15354672
]
Chetan Mehrotra commented on OAK-3403:
--------------------------------------
Uniqueness constraint can be safely enforced if in a 2 store setup (private and
shared) the private one is immutable. As current logic check the presence of
given uuid in all the stores and only when none is found it proceeds to create
one. So if one of them is immutable this would work fine.
Problem would come if both allow writes as in that case its not possible to
atomically ensure the given node does not exist in both easily. I would update
the approach to fail if both default and other mount allow writes at same time.
Also can add a tooling which would check when a system with the new private
repo is joined to a shared repo checks if the uuid it has are all unique
> Multiplexing store support in Property indexes
> ----------------------------------------------
>
> Key: OAK-3403
> URL: https://issues.apache.org/jira/browse/OAK-3403
> Project: Jackrabbit Oak
> Issue Type: Technical task
> Components: query
> Reporter: Chetan Mehrotra
> Assignee: Chetan Mehrotra
> Attachments: OAK-3403-v1.patch
>
>
> In Oak one can define an index anywhere in the repository under a special
> node name {{oak:index}}. For e.g. if you want a property index for
> {{sling:resourceType}} at root level then you can create the index at
> /oak:index/resourceType and this index would store the index content at
> /oak:index/resourceType/:index.
> # Writing - At time of commit the IndexEditor would need to decide where the
> indexed content for a given path should be stored. To start with it can make
> use of PathToStoreMapper to decide which node to use the indexed content. For
> e.g. for /libs the indexed content is stored under :index-pr and for /content
> :index-sr is used. This is simpler for PropertyIndex where IndexStoreStrategy
> can be passed the right node
> # Reading - At time of reading the QueryIndex implementation would need to
> provide a union cursor which can perform lookup from all such store
> directories for a given index.
> *Open Items*
> # Supporting unique indexes
> # Introducing new oak:index - Node under oak:index node are special.
> Depending on parent path it might be possible that they would have to be
> created in both repositories. For e.g. /oak:index would have to be present in
> both PR and SR. While /content/foo/oak:index can live only in SR.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)