You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Alex Parvulescu (JIRA)" <ji...@apache.org> on 2014/03/06 11:18:43 UTC

[jira] [Commented] (OAK-1465) performance degradation with growing index size on Oak-Mongo

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

Alex Parvulescu commented on OAK-1465:
--------------------------------------

I know this is silly, but I'm going to ask you to run the tests again as I can't reproduce the degradation on my machine [0]
I did see a quite a big difference between having an index and not having one, but no clear degradation as mentioned in this ticket.

One thing that happened is the test crashed with an OOME, but that may be just my 32b machine acting out :)
I found the errors interesting, maybe this is useful for the other guys:
 - this is what you see in the mongo console (sever side?)
{code}
Wed Mar  5 19:32:32 [conn125] ERROR:   mmap() failed for /home/alex/ci/oak/mongo/mongo-data/Oak-Mongo-1394044290140.2 len:67108864 errno:12 Cannot allocate memory
Wed Mar  5 19:32:32 [conn125] ERROR: mmap failed with out of memory. You are using a 32-bit build and probably need to upgrade to 64
{code}

 - and this is what you see on the application (client side?), warning long stack traces ahead [1].


[0]
{code}
Apache Jackrabbit Oak 0.19-SNAPSHOT
# CreateManyIndexedNodesTest       C     min     10%     50%     90%     max       N
Oak-Mongo                          1     128     161     205     291    1732     258
Oak-Mongo                          1     124     168     211     268    1300     268
Oak-Mongo                          1     123     163     210     283    2307     246
Oak-Mongo                          1     110     164     209     285    1392     259
Oak-Mongo                          1     141     168     208     287     675     266
Oak-Mongo                          1     137     169     216     284     713     260
Oak-Mongo                          1     133     159     206     279    2790     245
Oak-Mongo                          1     118     166     208     287     684     265
Oak-Mongo                          1     135     166     212     278    1228     262
Oak-Mongo                          1     133     166     212     287     702     263
Oak-Mongo                          1     138     171     213     280    2161     248
{code}

[1]
{code}
Exception in thread "Background job org.apache.jackrabbit.oak.benchmark.CreateManyIndexedNodesTest$Writer@13ed2fc" java.lang.RuntimeException: javax.jcr.RepositoryException: OakMerge0001: OakMerge0001: Failed to merge changes to the underlying store (retries 4, 4719 ms)
	at org.apache.jackrabbit.oak.benchmark.CreateManyIndexedNodesTest$Writer.run(CreateManyIndexedNodesTest.java:93)
	at org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:430)
Caused by: javax.jcr.RepositoryException: OakMerge0001: OakMerge0001: Failed to merge changes to the underlying store (retries 4, 4719 ms)
	at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:247)
	at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:212)
	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.newRepositoryException(SessionDelegate.java:502)
	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:389)
	at org.apache.jackrabbit.oak.jcr.session.SessionImpl$8.perform(SessionImpl.java:414)
	at org.apache.jackrabbit.oak.jcr.session.SessionImpl$8.perform(SessionImpl.java:411)
	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:157)
	at org.apache.jackrabbit.oak.jcr.session.SessionImpl.perform(SessionImpl.java:124)
	at org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:411)
	at org.apache.jackrabbit.oak.benchmark.CreateManyIndexedNodesTest$Writer.run(CreateManyIndexedNodesTest.java:90)
	... 1 more
Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakMerge0001: OakMerge0001: Failed to merge changes to the underlying store (retries 4, 4719 ms)
	at org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch.merge(AbstractNodeStoreBranch.java:304)
	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:143)
	at org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:147)
	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1187)
	at org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:242)
	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.commit(SessionDelegate.java:245)
	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:387)
	... 7 more
Caused by: org.apache.jackrabbit.mk.api.MicroKernelException: java.lang.NullPointerException
	at org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.findAndModify(MongoDocumentStore.java:428)
	at org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.createOrUpdate(MongoDocumentStore.java:440)
	at org.apache.jackrabbit.oak.plugins.document.Commit.rollback(Commit.java:397)
	at org.apache.jackrabbit.oak.plugins.document.Commit.applyToDocumentStore(Commit.java:345)
	at org.apache.jackrabbit.oak.plugins.document.Commit.applyToDocumentStore(Commit.java:203)
	at org.apache.jackrabbit.oak.plugins.document.Commit.applyInternal(Commit.java:188)
	at org.apache.jackrabbit.oak.plugins.document.Commit.apply(Commit.java:177)
	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.persist(DocumentNodeStoreBranch.java:172)
	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.persist(DocumentNodeStoreBranch.java:85)
	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.persist(DocumentNodeStoreBranch.java:36)
	at org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch$InMemory.merge(AbstractNodeStoreBranch.java:487)
	at org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch.merge(AbstractNodeStoreBranch.java:288)
	... 13 more
Caused by: java.lang.NullPointerException
	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:192)
	at org.apache.jackrabbit.oak.plugins.document.util.StringValue.<init>(StringValue.java:35)
	at org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.addToCache(MongoDocumentStore.java:753)
	at org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.applyToCache(MongoDocumentStore.java:708)
	at org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.findAndModify(MongoDocumentStore.java:422)
	... 24 more
{code}



> performance degradation with growing index size on Oak-Mongo
> ------------------------------------------------------------
>
>                 Key: OAK-1465
>                 URL: https://issues.apache.org/jira/browse/OAK-1465
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: mongomk
>    Affects Versions: 0.17.1
>            Reporter: Stefan Egli
>            Assignee: Alex Parvulescu
>             Fix For: 0.19
>
>         Attachments: CreateManyIndexedNodesTest.java
>
>
> Tested with an oak-snapshot of Monday Feb 24, 10AM EST.
> Noticed that when the amount of nodes indexed - eg wrt a particular property - the adding of nodes becomes slower and slower.
> Will attach a oak-run benchmark to underline this. Basically the scenario where this occurred was:
>  * have a number of "level 1" nodes (eg 100)
>  * under those "level 1" nodes, add a growing list of children, each with a property that is indexed (ie that index is actually growing and is probably causing the slowdown).



--
This message was sent by Atlassian JIRA
(v6.2#6252)