[
https://issues.apache.org/jira/browse/OAK-1312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15585767#comment-15585767
]
Chetan Mehrotra edited comment on OAK-1312 at 10/19/16 10:20 AM:
-----------------------------------------------------------------
h4. Benchmark
Implemented a benchmark and committed that to trunk in r1765455. It
has 3 parts
* main - The code here create an app:Asset structure
* Reader - This thread does reads of random assets and read the
'jcr:content/metadata/status' property
* Mutator - This thread modifies the status property of random asset nodes
{noformat}
java -jar oak-run*.jar benchmark --mongouri="mongodb://localhost:27017/oak"
BundlingNodeTest Oak-Mongo-DS
{noformat}
{{app:Asset}} looks like below
{noformat}
/{jcr:primaryType = oak:Asset}
jcr:content{jcr:primaryType = oak:Unstructured}
metadata{jcr:primaryType = oak:Unstructured, status = STARTING}
comments{jcr:primaryType = oak:Unstructured}
renditions{jcr:created = 2016-10-19T15:47:00.766+05:30, jcr:createdBy =
admin, jcr:primaryType = nt:folder}
thumbnail-0.png{jcr:created = 2016-10-19T15:47:00.771+05:30,
jcr:createdBy = admin, jcr:primaryType = nt:file}
jcr:content{jcr:lastModifiedBy = admin, jcr:mimeType = text/plain,
jcr:data = {5 bytes}, jcr:lastModified = 2016-10-19T15:47:00.781+05:30,
jcr:primaryType = oak:Resource}
thumbnail-1.png
...
thumbnail-2.png
...
thumbnail-3.png
...
thumbnail-4.png
{noformat}
h4. Benchmark - Overhead of new bundling logic when bundling *not* in use
It does not depend on bundling api and first purpose is to see overhead of new
bundling logic when bundling feature itself is not used.
{noformat}
# BundlingNodeTest C min 10% 50% 90% max
N Reader Mutator Assets#
trunk
Oak-Mongo-DS 1 189 280 432 817 1414
123 75403 2817 1390 #oak:Resource (trunk)
Oak-Mongo-DS 5 362 489 735 1612 2740
340 75093 2464 3580 #oak:Resource (trunk)
branch
Oak-Mongo-DS 1 224 292 453 732 1591
122 77328 2794 1400 #oak:Resource (OAK-1312 branch)
Oak-Mongo-DS 5 336 489 735 1476 2787
349 73245 2496 3660 #oak:Resource (OAK-1312 branch)
{noformat}
With above numbers it can be concluded that there is no overhead of bundling
related change in critical path
was (Author: chetanm):
h4. Benchmark
Implemented a benchmark and committed that to trunk in r1765455. It
has 3 parts
* main - The code here create an app:Asset structure
* Reader - This thread does reads of random assets and read the
'jcr:content/metadata/status' property
* Mutator - This thread modifies the status property of random asset nodes
{noformat}
java -jar oak-run*.jar benchmark --mongouri="mongodb://localhost:27017/oak"
BundlingNodeTest Oak-Mongo-DS
{noformat}
h4. Benchmark - Overhead of new bundling logic when bundling *not* in use
It does not depend on bundling api and first purpose is to see overhead of new
bundling logic when bundling feature itself is not used.
{noformat}
# BundlingNodeTest C min 10% 50% 90% max
N Reader Mutator Assets#
trunk
Oak-Mongo-DS 1 189 280 432 817 1414
123 75403 2817 1390 #oak:Resource (trunk)
Oak-Mongo-DS 5 362 489 735 1612 2740
340 75093 2464 3580 #oak:Resource (trunk)
branch
Oak-Mongo-DS 1 224 292 453 732 1591
122 77328 2794 1400 #oak:Resource (OAK-1312 branch)
Oak-Mongo-DS 5 336 489 735 1476 2787
349 73245 2496 3660 #oak:Resource (OAK-1312 branch)
{noformat}
With above numbers it can be concluded that there is no overhead of bundling
related change in critical path
> Bundle nodes into a document
> ----------------------------
>
> Key: OAK-1312
> URL: https://issues.apache.org/jira/browse/OAK-1312
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core, documentmk
> Reporter: Marcel Reutegger
> Assignee: Chetan Mehrotra
> Labels: performance
> Fix For: 1.6
>
> Attachments: OAK-1312-meta-prop-handling.patch,
> OAK-1312-review-v1.diff, OAK-1312-review-v2.diff
>
>
> For very fine grained content with many nodes and only few properties per
> node it would be more efficient to bundle multiple nodes into a single
> MongoDB document. Mostly reading would benefit because there are less
> roundtrips to the backend. At the same time storage footprint would be lower
> because metadata overhead is per document.
> Feature branch -
> https://github.com/chetanmeh/jackrabbit-oak/compare/trunk...chetanmeh:OAK-1312
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)