jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tobias Strasser (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-15) PersistentNode.store() ignores status when storing
Date Fri, 29 Oct 2004 08:18:33 GMT
     [ http://issues.apache.org/jira/browse/JCR-15?page=comments#action_54793 ]
     
Tobias Strasser commented on JCR-15:
------------------------------------

The concept here is, that the PersistentNodeState should not be to intelligent, it is rather
managed from outside. so store() will store and does not repsect the status.
the performance bottleneck in versioning is caused by the PersistenNode, which is a helper
class for easily modifying persistent node states and in the PersistentVersionManager. the
status of the underlaying node state should be respected there.

> PersistentNode.store() ignores status when storing
> --------------------------------------------------
>
>          Key: JCR-15
>          URL: http://issues.apache.org/jira/browse/JCR-15
>      Project: Jackrabbit
>         Type: Bug
>  Environment: Jackrabbit SVN revision 55714
>     Reporter: Felix Meschberger
>     Assignee: Tobias Strasser

>
> While looking for a performance bottle neck I came across this issue: When a PersistentNodeState
is asked to store itself in the PersistentNodeState.store() method, it calls its PersistenceManager
to store it.
> This is not a problem in itself. The problem is, that if the PersistentNodeState has
not been modified, the object does not need to be stored. Doiing it anyway just consumes cycles
! In the case of a deep, unmodified hierarchy, this just results in nodes being written to
persistence for nothing.
> Comes to it, that this method sends an event, which in the case of an unmodified node
state will be notifyStateUpdated(), which is complete nonsense, because nothing has actually
been updated.
> I suggest to modify the PersistentNodeState.store() method to only do work if modified.
> Note: I encountered this issue, whily tracking down performance problems when creating
versionable nodes, which turned out to be located somewhere within the PersistentVersionManager.createVersionHistory(NodeImpl)
method. And there, predominantly the store() methods consume time.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


Mime
View raw message