[ 
https://issues.apache.org/jira/browse/OAK-1356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13882626#comment-13882626
 ] 

Thomas Mueller commented on OAK-1356:
-------------------------------------

About exposing the implementation detail to the application: I wouldn't do 
that. Specially, within the application, I wouldn't do any kind of "if storage1 
doThis else doThat", because one of the two branches will be well tested, and 
the other one will not be tested. The risk is, the application will work with 
storage1 but not with storage2.

> I'd ideally fix this in the MongoMK

As far as I understand, the problem is that the oak-core code (editors, 
observers) go through the whole transaction *multiple* times. That means, 
oak-core components scan multiple times over data that potentially doesn't fit 
in memory, in case of large transactions. So if the transaction is large, the 
data *has* to hit the disk. Because of that, I'm afraid this isn't something 
that can be completely fixed in the MongoMK (or any other storage subsystem).

The _real_ fix, in my view, would be to change oak-core (the editor / observer 
mechanism) so that it goes through the whole transaction only *once* and not 
multiple times.



> Expose the preferred transient space size as repository descriptor 
> -------------------------------------------------------------------
>
>                 Key: OAK-1356
>                 URL: https://issues.apache.org/jira/browse/OAK-1356
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>            Reporter: Tobias Bocanegra
>
> The problem is that the different stores have different transient space 
> characteristics. for example the MongoMK is very slow when handling large 
> saves.
> suggest to expose a repository descriptor that can be used to estimate the 
> preferred transient space, for example when importing content.
> so either a boolean like: 
>   {{option.infinite.transientspace}}
> or a number like:
>   {{option.transientspace.preferred.size}}
> the later would denote the average number of modified node states that should 
> be put in the transient space before the persistence starts to degrade.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to