[
https://issues.apache.org/jira/browse/JCR-2051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12694520#action_12694520
]
Stefan Guggisberg commented on JCR-2051:
----------------------------------------
i absolutely agree about this feature/improvement in general.
i started implementing a disk-backed item store about 2 years ago.
i tried to keep the changes locally to TransientItemStateManager
by implementing a DiskBackedItemStateStore using ehcache
(very similar to your proposal). eventually i had to give up since i
came to the conclusion that it's not possible to accomplish without
major changes in jackrabbit's internal state-handling design.
FWIW, here are my findings:
let's assume an ItemState got evicted to disk and its reference turned
into a weak one. that ItemState might still be referenced by an ItemImpl
instance and hence modified. if the ItemState is gc'ed because it is
no longer externally referenced), the changes will be lost since the
serialized copy on disk does not reflect the changes made after it was
created.
in order to avoid this, the ItemState should only be evicted to disk
when the object is no longer referenced, ... which is AFAIK technically
impossible.
> Disk based transient space
> --------------------------
>
> Key: JCR-2051
> URL: https://issues.apache.org/jira/browse/JCR-2051
> Project: Jackrabbit Content Repository
> Issue Type: Improvement
> Components: jackrabbit-core
> Reporter: Marcel Reutegger
> Priority: Minor
>
> Currently the transient space in jackrabbit-core is held completely in
> memory. This limits the number of items that can be part of a save call. The
> memory usage for the transient space should be lowered significantly, e.g. by
> writing item states to a swap file on a disk.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.