[ 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)