[ 
https://issues.apache.org/jira/browse/OAK-10542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Egli updated OAK-10542:
------------------------------
    Description: 
When a document grows too large, part of it is split into previous documents. 
That can include revisions of the "_deleted" property.

When reading a node at a particular revision, it first checks whether a node 
was deleted at that revision or not. That resolution first checks the revisions 
of _deleted locally, i.e. in the main document. Two cases currently exist:
# If it finds a value in the local _deleted map, it accepts that as the valid 
one.
# If it doesn't find a value in the local _deleted map, it reads the _deleted 
maps from any split documents and searches there for a valid value.

If there was a split of _deleted however, the first case is not sufficient - as 
that currently ignores split documents in that case, and the most recent 
revision (for a particular read revision) can be in a split doc, rather than 
the main doc. This happens if the newer split revisions (of _deleted) are from 
a different clusterId than older non-split revisions.

  was:
When a document grows too large, part of it is split into previous documents. 
That can include revisions of the "_deleted" property.

When reading a node at a particular revision, it first checks whether a node 
was deleted at that revision or not. That resolution first checks the revisions 
of _deleted locally, i.e. in the main document. Two cases currently exist:
# If it finds a value in the local _deleted map, it accepts that as the valid 
one.
# If it doesn't find a value in the local _deleted map, it reads the _deleted 
maps from any split documents and searches there for a valid value.

If there was a split of _deleted however, the first case is not sufficient - as 
that currently ignores split documents in that case, and the most recent 
revision (for a particular read revision) can be in a split doc, rather than 
the main doc.


> resolution of _deleted value ignores split docs in certain cases
> ----------------------------------------------------------------
>
>                 Key: OAK-10542
>                 URL: https://issues.apache.org/jira/browse/OAK-10542
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: documentmk
>            Reporter: Stefan Egli
>            Assignee: Stefan Egli
>            Priority: Major
>
> When a document grows too large, part of it is split into previous documents. 
> That can include revisions of the "_deleted" property.
> When reading a node at a particular revision, it first checks whether a node 
> was deleted at that revision or not. That resolution first checks the 
> revisions of _deleted locally, i.e. in the main document. Two cases currently 
> exist:
> # If it finds a value in the local _deleted map, it accepts that as the valid 
> one.
> # If it doesn't find a value in the local _deleted map, it reads the _deleted 
> maps from any split documents and searches there for a valid value.
> If there was a split of _deleted however, the first case is not sufficient - 
> as that currently ignores split documents in that case, and the most recent 
> revision (for a particular read revision) can be in a split doc, rather than 
> the main doc. This happens if the newer split revisions (of _deleted) are 
> from a different clusterId than older non-split revisions.



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

Reply via email to