[
https://issues.apache.org/jira/browse/OAK-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13782881#comment-13782881
]
Marcel Reutegger commented on OAK-1044:
---------------------------------------
Introduced {{DocumentStore.update(Collection<T> collection, List<String> ids,
UpdateOp updateOp)}} in http://svn.apache.org/r1528065. This allows to update
multiple documents with a single call to MongoDB. The method is used in
MongoMK.backgroundWrite() when {{_lastRev}} and {{_modified}} are written back.
> 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)