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 "Stefan Egli (JIRA)" <ji...@apache.org> on 2015/11/12 12:54:11 UTC

[jira] [Updated] (OAK-3187) Backporting journal to 1.0 branch

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

Stefan Egli updated OAK-3187:
-----------------------------
    Fix Version/s: 1.0.19

> Backporting journal to 1.0 branch
> ---------------------------------
>
>                 Key: OAK-3187
>                 URL: https://issues.apache.org/jira/browse/OAK-3187
>             Project: Jackrabbit Oak
>          Issue Type: Task
>          Components: core, mongomk
>            Reporter: Stefan Egli
>            Assignee: Stefan Egli
>            Priority: Critical
>             Fix For: 1.0.19
>
>         Attachments: OAK-3187-1.0.patch, OAK-3187.1-0-branch.patch
>
>
> OAK-2829 introduces the concept of a journal that keeps track of all paths that have changed between particular revisions in a cluster. The idea is to look into backporting OAK-2829 to the 1.0-branch - and that's tracked atm in this ticket (if it's better to do it in any other way, eg track it in OAK-2829 directly, we can always change it that way).
> I've done a "{{git cherry-pick c28a5d504993d64501d59c94a59f6186e8a0ad6e}}" (which [merges OAK-2829 changes from trunk to 1.2-branch|https://github.com/apache/jackrabbit-oak/commit/c28a5d504993d64501d59c94a59f6186e8a0ad6e]) and followed up on the numerous conflicts resulting from this.
> Before I go into the details of those conflicts below, there are probably a few higher-level things to discuss too - as backporting "only" OAK-2829 (the journal) to 1.0 might only serve half of the story - the diffCache and lastRev handling has experienced quite a few changes since 1.0.x and it might be worth while considering if it is OK to not backport those and still see enough improvement, or if that's not the case. Those that come to mind include:
> * OAK-2685: which introduces the {{TieredDiffCache}}
> * OAK-2131: 'reduce usage of _lastRev'
> * OAK-2850: 'Flag states from revision of an external change'
> The complete history of changes is what I'd put into the commit message and goes as follows (not that OAK-3002 is also merged with this, and that for completeness sake OAK-3085 would *have to be* merged too, but the latter is trivial and can be done after this jumbo one):
> {code}
>     OAK-2829: Comparing node states for external changes is too slow
>     OAK-3002: Optimize docCache and docChildrenCache invalidation by filtering using journal
>     
>     Merged revisions 1678023,1678171,1684820,1685590,1685964,1685977,1685989,1686023,1686032,1688179 from trunk
>     
>     git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/oak/branches/1.2@1688649 13f79535-47bb-0310-9956-ffa450edef68
>     
>     Conflicts:
>         oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
>                - [conflict with OAK-2685 not available in 1.0 branch]
>                - [therefore manually: applyToCache: newEntry signature changed]
>         oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
>                - [conflicts due to OAK-2850 and OAK-2685 not available in 1.0 branch]
>         oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
>                - [conflicts: only imports affected]
>         oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
>                - [conflict with OAK-2074 not available in 1.0 branch]
>                - [conflict with OAK-2131 not available in 1.0 branch]
>                - [conflict with OAK-2324 not available in 1.0 branch]
>         oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java
>                - [conflict with OAK-2685 / newEntry method signature changed]
>         oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java
>                - [conflict with OAK-2685 / newEntry signature, plus DiffCache.getStats not avail in 1.0 branch]
>         oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java
>                - [conflict with OAK-2324 not available in 1.0 branch]
>                - [conflict with OAK-1768]
>                - [conflict with OAK-2888 only available in 1.0 branch]
>         oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
>                - [conflict with OAK-1641 not available in 1.0 branch]
>                - [conflict with OAK-2681 not available in 1.0 branch: findUncachedWithRetry not avail in 1.0]
>         oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java
>                - [conflicts: only imports affected]
>         oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/ClusterTest.java
>                - [conflict with OAK-2850 not available in 1.0 branch]
>         oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
>                - [conflicts: only imports affected]
>         oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ObservationTest.java
>                - [conflict with OAK-2717 not available in 1.0 branch]
>                - [ADDED JcrCreator class plus OakRepositoryFixture.setUpCluster(int n, JcrCreator customizer) from trunk]
>     
>     Additional Compile Problems:
>         oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModificationsTest.java
>                - [conflict with OAK-2888 only available in 1.0 branch, fixed, Snapshot.IGNORE added]
>     
>     Additional Test Problems:
>             oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalTest.java
>                - [conflict with OAK-2131 not available in 1.0 branch, hence test logic had to be adapted/fixed]
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)