[ https://issues.apache.org/jira/browse/OAK-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15892452#comment-15892452 ]
Julian Reschke commented on OAK-5878: ------------------------------------- While working on this, I noticed that {{VersionGarbageCollectorIT.gcWithConcurrentModification()}} bypasses persistence-specific variants, because of: {{noformat}} VersionGCSupport gcSupport = new VersionGCSupport(store.getDocumentStore()) { @Override public Iterable<NodeDocument> getPossiblyDeletedDocs(long lastModifiedTime) { return filter(super.getPossiblyDeletedDocs(lastModifiedTime), new Predicate<NodeDocument>() { @Override public boolean apply(NodeDocument input) { try { docs.put(input); } catch (InterruptedException e) { throw new RuntimeException(e); } return true; } }); } }; {{noformat}} Is this something we need to be worried about? > SplitDocumentCleanup iterates twice over splitDocGarbage > -------------------------------------------------------- > > Key: OAK-5878 > URL: https://issues.apache.org/jira/browse/OAK-5878 > Project: Jackrabbit Oak > Issue Type: Bug > Components: documentmk > Reporter: Julian Reschke > Assignee: Julian Reschke > Attachments: OAK-5878.diff > > > {{SplitDocumentCleanup}} currently iterates twice over {{splitDocGarbage}}. > NOTE: not the case for Mongo DB, as {{MongoVersionGCSupport}} overwrites > {{deleteSplitDocuments()}}. > {{deleteSplitDocuments()}} currently iterates over {{splitDocGarbage}} to > obtain the IDs of the documents to be deleted. Instead, we could just collect > the IDs inside {{disconnect()}}, the memory requirements would be the same. -- This message was sent by Atlassian JIRA (v6.3.15#6346)