[ https://issues.apache.org/jira/browse/OAK-5100?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alex Parvulescu updated OAK-5100: --------------------------------- Fix Version/s: 1.5.14 1.6 > Provide source store external references flag via command line if available > --------------------------------------------------------------------------- > > Key: OAK-5100 > URL: https://issues.apache.org/jira/browse/OAK-5100 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: upgrade > Reporter: Alex Parvulescu > Fix For: 1.6, 1.5.14 > > Attachments: OAK-5100.patch > > > Currently the upgrade code tries to figure out if the source store uses an > external datastore by running a {{SegmentTracker.collectBlobReferences}} > process. This has performance problems when the given store doesn't use a > datastore, so the above method will traverse the entire store without any > callback (think 150GB store). > The relatively simple fix is to provide this flag via the command line for > the upgrade bits, still using the existing method as a fallback if nothing is > provided. > {noformat} > at org.apache.jackrabbit.oak.plugins.segment.Segment.<init>(Segment.java:224) > at org.apache.jackrabbit.oak.plugins.segment.Segment.<init>(Segment.java:204) > at > org.apache.jackrabbit.oak.plugins.segment.file.FileStore.readSegment(FileStore.java:1238) > at > org.apache.jackrabbit.oak.plugins.segment.SegmentTracker.readSegment(SegmentTracker.java:242) > at > org.apache.jackrabbit.oak.plugins.segment.SegmentId.getSegment(SegmentId.java:149) > - locked <0x000000054e8e25c8> (a > org.apache.jackrabbit.oak.plugins.segment.SegmentId) > at > org.apache.jackrabbit.oak.plugins.segment.SegmentTracker.collectBlobReferences(SegmentTracker.java:307) > at > org.apache.jackrabbit.oak.upgrade.cli.node.SegmentFactory.hasExternalBlobReferences(SegmentFactory.java:120) > at > org.apache.jackrabbit.oak.upgrade.cli.node.StoreFactory.hasExternalBlobReferences(StoreFactory.java:67) > at > org.apache.jackrabbit.oak.upgrade.cli.parser.StoreArguments.srcUsesEmbeddedDatastore(StoreArguments.java:109) > at > org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.migrate(OakUpgrade.java:64) > at org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.main(OakUpgrade.java:48) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)