[
https://issues.apache.org/jira/browse/OAK-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marcel Reutegger reassigned OAK-1044:
-------------------------------------
Assignee: Marcel Reutegger
Discussed this issue with [~tmueller] offline. Thomas brought up the idea to
introduce a modCount on each document, which can be used to make a conditional
update without returning the complete document when the modCount is equal to
the locally cached version of the document. This should reduce the amount of
data transfered from MongoDB quite a bit.
We also agreed to reduce the document size threshold when old documents are
split off to previous documents. The current default is quite high (1MB) and
potentially results in reads of large documents where only a fraction of the
data is actually of use for the reader.
> Reduce traffic between MongoMK and MongoDB
> ------------------------------------------
>
> Key: OAK-1044
> URL: https://issues.apache.org/jira/browse/OAK-1044
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core, mongomk
> Reporter: Marcel Reutegger
> Assignee: Marcel Reutegger
>
> There is quite some redundant traffic going on between MongoMK and MongoDB,
> which can have a major impact on performance. One of the problems we already
> saw in the past when there are many changes on a node. The document in
> MongoDB grows and with every modification to the node the cost increases
> because MongoMK always requests the complete old document from MongoDB in the
> response. This is done for several reasons:
> 1) MongoMK looks at the returned old document and checks if the updates
> applied do not conflict.
> 2) MongoMK updates its cache with the old document and the updates it applied.
> Splitting the documents when they reach a certain size keeps the cost for an
> update within bounds, but most of the time the response just contains
> redundant information already present in MongoMK. E.g. when no other MongoMK
> instance modified the node, the returned document is the same as the one
> potentially already in the cache.
--
This message was sent by Atlassian JIRA
(v6.1#6144)