jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig <mdue...@apache.org>
Subject Re: Observation throughput
Date Fri, 21 Jun 2013 08:54:54 GMT

Hi,

On 20.6.13 14:10, Michael Dürig wrote:
> it looks like SegmentMk and H2 can keep up while with MongoMk there is a
> backlog of events developing

Here is the thread dumps that comes up most of the time with MongoMk, 
and which makes up for about 90% of CPU time of event processing. AFAICS 
the call to DBCursor.hasNext seems to be the bottleneck here.

Michael

at java.util.ArrayList.size(ArrayList.java:177)
at java.util.AbstractList$Itr.hasNext(AbstractList.java:339)
at com.mongodb.DBApiLayer$Result.hasNext(DBApiLayer.java:395)
at com.mongodb.DBCursor._hasNext(DBCursor.java:464)
at com.mongodb.DBCursor.hasNext(DBCursor.java:484)
at 
org.apache.jackrabbit.oak.plugins.mongomk.MongoDocumentStore.query(MongoDocumentStore.java:201)
at 
org.apache.jackrabbit.oak.plugins.mongomk.MongoDocumentStore.query(MongoDocumentStore.java:181)
at 
org.apache.jackrabbit.oak.plugins.mongomk.MongoMK.readChildren(MongoMK.java:622)
at 
org.apache.jackrabbit.oak.plugins.mongomk.MongoMK.getChildren(MongoMK.java:601)
at 
org.apache.jackrabbit.oak.plugins.mongomk.MongoMK.getNodes(MongoMK.java:961)
at 
org.apache.jackrabbit.oak.kernel.KernelNodeState.init(KernelNodeState.java:148)
at 
org.apache.jackrabbit.oak.kernel.KernelNodeState.equals(KernelNodeState.java:457)
at 
org.apache.jackrabbit.oak.spi.state.AbstractNodeState.compareAgainstBaseState(AbstractNodeState.java:143)
at 
org.apache.jackrabbit.oak.kernel.KernelNodeState.compareAgainstBaseState(KernelNodeState.java:433)
at 
org.apache.jackrabbit.oak.plugins.observation.SecurableNodeStateDiff.childNodeChanged(SecurableNodeStateDiff.java:127)
at 
org.apache.jackrabbit.oak.spi.state.AbstractNodeState.compareAgainstBaseState(AbstractNodeState.java:144)
at 
org.apache.jackrabbit.oak.kernel.KernelNodeState.compareAgainstBaseState(KernelNodeState.java:433)
at 
org.apache.jackrabbit.oak.plugins.observation.ChangeDispatcher$ChangeSet.diff(ChangeDispatcher.java:256)
at 
org.apache.jackrabbit.oak.plugins.observation.ChangeProcessor.run(ChangeProcessor.java:168)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at 
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)

Mime
View raw message