You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Michael Dürig (JIRA)" <ji...@apache.org> on 2010/01/11 16:26:54 UTC

[jira] Created: (JCR-2461) Item retrival inefficient after refresh

Item retrival inefficient after refresh
---------------------------------------

                 Key: JCR-2461
                 URL: https://issues.apache.org/jira/browse/JCR-2461
             Project: Jackrabbit Content Repository
          Issue Type: Improvement
          Components: jackrabbit-jcr2spi
    Affects Versions: 1.5.7
            Reporter: Michael Dürig
            Priority: Minor


When RepositoryService#getItemInfos() returns a sufficiently large batch for a path, then the second invocation of getItem() below is significantly slower than the first. 

String path = ...
Item i = session.getItem(path);
i.refresh(false); // same for refresh(true)
session.getItem(path);

In my test setup RepositoryService#getItemInfos() returns 3946 elements. The first invocation takes approx. 800ms, the second 3000ms.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (JCR-2461) Item retrieval inefficient after refresh

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-2461?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Guggisberg updated JCR-2461:
-----------------------------------

    Summary: Item retrieval inefficient after refresh  (was: Item retrival inefficient after refresh)

fixed typo in summary

> Item retrieval inefficient after refresh
> ----------------------------------------
>
>                 Key: JCR-2461
>                 URL: https://issues.apache.org/jira/browse/JCR-2461
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-jcr2spi
>    Affects Versions: 1.5.7
>            Reporter: Michael Dürig
>            Priority: Minor
>         Attachments: JCR-2461.patch
>
>
> When RepositoryService#getItemInfos() returns a sufficiently large batch for a path, then the second invocation of getItem() below is significantly slower than the first. 
> String path = ...
> Item i = session.getItem(path);
> i.refresh(false); // same for refresh(true)
> session.getItem(path);
> In my test setup RepositoryService#getItemInfos() returns 3946 elements. The first invocation takes approx. 800ms, the second 3000ms.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (JCR-2461) Item retrival inefficient after refresh

Posted by "Michael Dürig (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-2461?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Dürig updated JCR-2461:
-------------------------------

    Attachment: JCR-2461.patch

This patch disables diffing of property states. Items contained in a batch from the server are set to Status#MODIFIED without establishing whether they differ form their cached values. 

I was able to successfully run all tests with the patch applied. However, I'm not sure whether this patch has further, more subtle consequences which I'm not aware of. 

> Item retrival inefficient after refresh
> ---------------------------------------
>
>                 Key: JCR-2461
>                 URL: https://issues.apache.org/jira/browse/JCR-2461
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-jcr2spi
>    Affects Versions: 1.5.7
>            Reporter: Michael Dürig
>            Priority: Minor
>         Attachments: JCR-2461.patch
>
>
> When RepositoryService#getItemInfos() returns a sufficiently large batch for a path, then the second invocation of getItem() below is significantly slower than the first. 
> String path = ...
> Item i = session.getItem(path);
> i.refresh(false); // same for refresh(true)
> session.getItem(path);
> In my test setup RepositoryService#getItemInfos() returns 3946 elements. The first invocation takes approx. 800ms, the second 3000ms.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (JCR-2461) Item retrival inefficient after refresh

Posted by "Michael Dürig (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-2461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12798690#action_12798690 ] 

Michael Dürig commented on JCR-2461:
------------------------------------

The slow down is caused by merging changes of item states from the server with the local ones on the client. The main contribution seems to come from diffing the property states. 



> Item retrival inefficient after refresh
> ---------------------------------------
>
>                 Key: JCR-2461
>                 URL: https://issues.apache.org/jira/browse/JCR-2461
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-jcr2spi
>    Affects Versions: 1.5.7
>            Reporter: Michael Dürig
>            Priority: Minor
>
> When RepositoryService#getItemInfos() returns a sufficiently large batch for a path, then the second invocation of getItem() below is significantly slower than the first. 
> String path = ...
> Item i = session.getItem(path);
> i.refresh(false); // same for refresh(true)
> session.getItem(path);
> In my test setup RepositoryService#getItemInfos() returns 3946 elements. The first invocation takes approx. 800ms, the second 3000ms.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (JCR-2461) Item retrieval inefficient after refresh

Posted by "Michael Dürig (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-2461?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Dürig resolved JCR-2461.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.0
         Assignee: Michael Dürig

The fix to JCR-2498 should also fix this issue

> Item retrieval inefficient after refresh
> ----------------------------------------
>
>                 Key: JCR-2461
>                 URL: https://issues.apache.org/jira/browse/JCR-2461
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-jcr2spi
>    Affects Versions: 1.5.7
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>            Priority: Minor
>             Fix For: 2.1.0
>
>         Attachments: JCR-2461.patch
>
>
> When RepositoryService#getItemInfos() returns a sufficiently large batch for a path, then the second invocation of getItem() below is significantly slower than the first. 
> String path = ...
> Item i = session.getItem(path);
> i.refresh(false); // same for refresh(true)
> session.getItem(path);
> In my test setup RepositoryService#getItemInfos() returns 3946 elements. The first invocation takes approx. 800ms, the second 3000ms.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (JCR-2461) Item retrieval inefficient after refresh

Posted by "Michael Dürig (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-2461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12829600#action_12829600 ] 

Michael Dürig commented on JCR-2461:
------------------------------------

Forget the patch. It doesn't work -> test failures

> Item retrieval inefficient after refresh
> ----------------------------------------
>
>                 Key: JCR-2461
>                 URL: https://issues.apache.org/jira/browse/JCR-2461
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-jcr2spi
>    Affects Versions: 1.5.7
>            Reporter: Michael Dürig
>            Priority: Minor
>         Attachments: JCR-2461.patch
>
>
> When RepositoryService#getItemInfos() returns a sufficiently large batch for a path, then the second invocation of getItem() below is significantly slower than the first. 
> String path = ...
> Item i = session.getItem(path);
> i.refresh(false); // same for refresh(true)
> session.getItem(path);
> In my test setup RepositoryService#getItemInfos() returns 3946 elements. The first invocation takes approx. 800ms, the second 3000ms.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.