jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jukka Zitting (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-597) Uniqueness validator instead of unique index
Date Thu, 31 Jan 2013 10:21:12 GMT

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

Jukka Zitting commented on OAK-597:

This could be made to work would be to run the commit hook that updates the query indexes
first and only then the validator to check for uniqueness violations. The way I see it, that's
more complicated and also less efficient than having the indexer directly refuse duplicates
of unique entries.

Alternatively, if having the uniqueness check being a part of the normal index update is considered
too complicated, I'd rather consider decoupling the uniqueness checks entirely from the query
mechanism. The check for uniqueness could simply maintain it's own hidden metadata and use
it *only* to enforce uniqueness.
> Uniqueness validator instead of unique index
> --------------------------------------------
>                 Key: OAK-597
>                 URL: https://issues.apache.org/jira/browse/OAK-597
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core, query
>            Reporter: Thomas Mueller
>            Priority: Minor
> We currently have a few unique indexes that ensure only one node may exist for a given
node type / property name / property value combination (for example the jcr:uuid needs to
be unique).
> While this works, I see some problems with this approach:
> - Indexes might be removed by an admin or they might not be available due to misconfiguration.
> - It (slightly) complicates the index implementation.
> - The index needs to do something that is not obvious (the index has to act like a constraint
/ validator). Updating an index can fail for different reasons that have a different meaning:
updating the index might fail due to duplicate key (which is not recoverable), and it might
fail due to a conflict (which is recoverable).
> Instead of using unique indexes, I propose to use a validator instead. The validator
can internally run a query to check if such a value already exists.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message