You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Julian Sedding (JIRA)" <ji...@apache.org> on 2015/05/18 11:59:00 UTC
[jira] [Comment Edited] (OAK-2626) Optimize binary comparison for
merge during upgrade
[ https://issues.apache.org/jira/browse/OAK-2626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14547788#comment-14547788 ]
Julian Sedding edited comment on OAK-2626 at 5/18/15 9:58 AM:
--------------------------------------------------------------
[~chetanm] The idea here is indeed to avoid FileSystem access. In {{FileDataStore#getRecordIfStored()}} a call to {{File.exists()}} is done. In the upgrade scenario that turned out to take significant time on my Mac Book Pro with SSD. The logic in this patch bypasses FS access and reduces it to a string operation. I intended to make any reliance on implementation details optional. So the logic should fall back to public APIs if the optimization fails.
With the patch from OAK-2627 applied, the {{equals()}} method does probably not need to be overwritten by this patch.
This is especially interesting when re-running an upgrade with few changes to the source content, i.e. an incremental upgrade (which requires some of my other patches).
was (Author: jsedding):
[~chetanm] The idea here is indeed to avoid FileSystem access. In {{FileDataStore#getRecordIfStored()}} a call to {{File.exists()}} is done. In the upgrade scenario that turned out to take significant time on my Mac Book Pro with SSD. The logic in this patch bypasses FS access and reduces it to a string operation. I intended to make any reliance on implementation details optional. So the logic should fall back to public APIs if the optimization fails.
This is especially interesting when re-running an upgrade with few changes to the source content, i.e. an incremental upgrade (which requires some of my other patches).
> Optimize binary comparison for merge during upgrade
> ----------------------------------------------------
>
> Key: OAK-2626
> URL: https://issues.apache.org/jira/browse/OAK-2626
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: upgrade
> Affects Versions: 1.1.7
> Reporter: Julian Sedding
> Priority: Minor
> Attachments: OAK-2626.patch, incremental-upgrade-no-changes.png
>
>
> In OAK-2619 I propose to support repeated upgrades into the same NodeStore.
> This issue does not optimizate the first run, but any subsequent run benefits from the proposed changes.
> One use-case for this feature is to import all content several days before the upgrade and then copy only the delta on the day of the upgrade.
> Assuming that both the source and target repositories use the same FileDataStore, binaries could be efficiently compared by their references.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)