Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Database slowness and using all cpu after inserting and deleting vertex multiple times #9462

Closed
madmac2501 opened this issue Nov 25, 2020 · 3 comments

Comments

@madmac2501
Copy link

OrientDB Version: 3.1.5

Java Version: 1.8

OS: Ubuntu

Expected behavior

CPU usage doesn't increment over time

Actual behavior

Node insertion is very slow and cpu usage is 100% for all cpu. I can share a database where I reproduce it.

This is a thread dump

Full thread dump OpenJDK 64-Bit Server VM (11.0.9.1+1-Ubuntu-0ubuntu1.18.04 mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x00007fc2d00053c0, length=23, elements={
0x00007fc660019000, 0x00007fc660757000, 0x00007fc660759000, 0x00007fc660760000,
0x00007fc660762000, 0x00007fc660764000, 0x00007fc660766000, 0x00007fc6607c6000,
0x00007fc6607cb000, 0x00007fc6607ea800, 0x00007fc604162000, 0x00007fc5a7ff4800,
0x00007fc493ff4800, 0x00007fc437ff4800, 0x00007fc30000a800, 0x00007fc3cbff4800,
0x00007fc3430b1800, 0x00007fc34312b800, 0x00007fc343133800, 0x00007fc343703800,
0x00007fc343800800, 0x00007fc2ac016000, 0x00007fc2ac00e800
}

"main" #1 prio=5 os_prio=0 cpu=86,56ms elapsed=2317,20s tid=0x00007fc660019000 nid=0x1665 in Object.wait() [0x00007fc669bdf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.9.1/Native Method)
- waiting on <0x00000000813dc788> (a com.orientechnologies.orient.server.OServerMain$1)
at java.lang.Thread.join(java.base@11.0.9.1/Thread.java:1305)
- waiting to re-lock in wait() <0x00000000813dc788> (a com.orientechnologies.orient.server.OServerMain$1)
at java.lang.Thread.join(java.base@11.0.9.1/Thread.java:1380)
at com.orientechnologies.orient.server.OServerMain.main(OServerMain.java:60)

"Reference Handler" #2 daemon prio=10 os_prio=0 cpu=2943,46ms elapsed=2317,13s tid=0x00007fc660757000 nid=0x166c runnable [0x00007fc6357fd000]
java.lang.Thread.State: RUNNABLE
at java.lang.ref.Reference.processPendingReferences(java.base@11.0.9.1/Reference.java:264)
at java.lang.ref.Reference$ReferenceHandler.run(java.base@11.0.9.1/Reference.java:213)

"Finalizer" #3 daemon prio=8 os_prio=0 cpu=2,29ms elapsed=2317,13s tid=0x00007fc660759000 nid=0x166d in Object.wait() [0x00007fc6356fd000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.9.1/Native Method)
- waiting on
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.9.1/ReferenceQueue.java:155)
- waiting to re-lock in wait() <0x0000000081466d68> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.9.1/ReferenceQueue.java:176)
at java.lang.ref.Finalizer$FinalizerThread.run(java.base@11.0.9.1/Finalizer.java:170)

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 cpu=0,15ms elapsed=2317,13s tid=0x00007fc660760000 nid=0x166e waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 cpu=35227,44ms elapsed=2317,13s tid=0x00007fc660762000 nid=0x166f waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task

"C1 CompilerThread0" #8 daemon prio=9 os_prio=0 cpu=5148,24ms elapsed=2317,13s tid=0x00007fc660764000 nid=0x1670 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task

"Sweeper thread" #9 daemon prio=9 os_prio=0 cpu=1379,38ms elapsed=2317,13s tid=0x00007fc660766000 nid=0x1671 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Service Thread" #10 daemon prio=9 os_prio=0 cpu=0,15ms elapsed=2317,11s tid=0x00007fc6607c6000 nid=0x1672 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Common-Cleaner" #11 daemon prio=8 os_prio=0 cpu=4,12ms elapsed=2317,11s tid=0x00007fc6607cb000 nid=0x1674 in Object.wait() [0x00007fc634aa1000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.9.1/Native Method)
- waiting on
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.9.1/ReferenceQueue.java:155)
- waiting to re-lock in wait() <0x0000000081456410> (a java.lang.ref.ReferenceQueue$Lock)
at jdk.internal.ref.CleanerImpl.run(java.base@11.0.9.1/CleanerImpl.java:148)
at java.lang.Thread.run(java.base@11.0.9.1/Thread.java:834)
at jdk.internal.misc.InnocuousThread.run(java.base@11.0.9.1/InnocuousThread.java:134)

"Thread-0" #12 prio=5 os_prio=0 cpu=3584,59ms elapsed=2317,10s tid=0x00007fc6607ea800 nid=0x1675 waiting on condition [0x00007fc634547000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@11.0.9.1/Native Method)
- parking to wait for <0x00000000818ed268> (a java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9.1/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(java.base@11.0.9.1/AbstractQueuedSynchronizer.java:885)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(java.base@11.0.9.1/AbstractQueuedSynchronizer.java:1039)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(java.base@11.0.9.1/AbstractQueuedSynchronizer.java:1345)
at java.util.concurrent.CountDownLatch.await(java.base@11.0.9.1/CountDownLatch.java:232)
at com.orientechnologies.orient.server.OServer.waitForShutdown(OServer.java:642)
at com.orientechnologies.orient.server.OServerMain$1.run(OServerMain.java:50)

"Timer-0" #13 daemon prio=5 os_prio=0 cpu=46,36ms elapsed=2316,80s tid=0x00007fc604162000 nid=0x1677 in Object.wait() [0x00007fc634446000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.9.1/Native Method)
- waiting on
at java.util.TimerThread.mainLoop(java.base@11.0.9.1/Timer.java:553)
- waiting to re-lock in wait() <0x000000008115a908> (a java.util.TaskQueue)
at java.util.TimerThread.run(java.base@11.0.9.1/Timer.java:506)

"Timer-1" #17 prio=5 os_prio=0 cpu=286,18ms elapsed=2314,45s tid=0x00007fc5a7ff4800 nid=0x167e in Object.wait() [0x00007fc5ff9be000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.9.1/Native Method)
- waiting on
at java.util.TimerThread.mainLoop(java.base@11.0.9.1/Timer.java:553)
- waiting to re-lock in wait() <0x0000000081466f28> (a java.util.TaskQueue)
at java.util.TimerThread.run(java.base@11.0.9.1/Timer.java:506)

"Thread-5" #18 daemon prio=5 os_prio=0 cpu=2908,39ms elapsed=2314,39s tid=0x00007fc493ff4800 nid=0x167f waiting on condition [0x00007fc5feaa3000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@11.0.9.1/Native Method)
- parking to wait for <0x000000008115acc0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(java.base@11.0.9.1/LockSupport.java:234)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@11.0.9.1/AbstractQueuedSynchronizer.java:2123)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9.1/ScheduledThreadPoolExecutor.java:1182)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9.1/ScheduledThreadPoolExecutor.java:899)
at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9.1/ThreadPoolExecutor.java:1054)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9.1/ThreadPoolExecutor.java:1114)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9.1/ThreadPoolExecutor.java:628)
at java.lang.Thread.run(java.base@11.0.9.1/Thread.java:834)

"OrientDB WAL Flush Task" #19 daemon prio=5 os_prio=0 cpu=64283,28ms elapsed=2314,29s tid=0x00007fc437ff4800 nid=0x168e runnable [0x00007fc5fdb85000]
java.lang.Thread.State: RUNNABLE
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.siftDown(java.base@11.0.9.1/ScheduledThreadPoolExecutor.java:998)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.finishPoll(java.base@11.0.9.1/ScheduledThreadPoolExecutor.java:1145)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9.1/ScheduledThreadPoolExecutor.java:1174)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9.1/ScheduledThreadPoolExecutor.java:899)
at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9.1/ThreadPoolExecutor.java:1054)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9.1/ThreadPoolExecutor.java:1114)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9.1/ThreadPoolExecutor.java:628)
at java.lang.Thread.run(java.base@11.0.9.1/Thread.java:834)

"OrientDB WAL Write Task Thread)" #20 daemon prio=5 os_prio=0 cpu=45226,41ms elapsed=2314,27s tid=0x00007fc30000a800 nid=0x168f waiting on condition [0x00007fc5fda85000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@11.0.9.1/Native Method)
- parking to wait for <0x0000000081e14cc8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9.1/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9.1/AbstractQueuedSynchronizer.java:2081)
at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9.1/LinkedBlockingQueue.java:433)
at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9.1/ThreadPoolExecutor.java:1054)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9.1/ThreadPoolExecutor.java:1114)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9.1/ThreadPoolExecutor.java:628)
at java.lang.Thread.run(java.base@11.0.9.1/Thread.java:834)

"OrientDB Write Cache Flush Task" #21 daemon prio=5 os_prio=0 cpu=29268,86ms elapsed=2314,25s tid=0x00007fc3cbff4800 nid=0x1690 runnable [0x00007fc5fd983000]
java.lang.Thread.State: RUNNABLE
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.add(java.base@11.0.9.1/ScheduledThreadPoolExecutor.java:1127)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.add(java.base@11.0.9.1/ScheduledThreadPoolExecutor.java:899)
at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(java.base@11.0.9.1/ScheduledThreadPoolExecutor.java:342)
at java.util.concurrent.ScheduledThreadPoolExecutor.schedule(java.base@11.0.9.1/ScheduledThreadPoolExecutor.java:562)
at com.orientechnologies.orient.core.storage.cache.local.OWOWCache$PeriodicFlushTask.run(OWOWCache.java:2751)
at java.util.concurrent.Executors$RunnableAdapter.call(java.base@11.0.9.1/Executors.java:515)
at java.util.concurrent.FutureTask.run(java.base@11.0.9.1/FutureTask.java:264)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@11.0.9.1/ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9.1/ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9.1/ThreadPoolExecutor.java:628)
at java.lang.Thread.run(java.base@11.0.9.1/Thread.java:834)

"pool-2-thread-1" #57 prio=5 os_prio=0 cpu=675,43ms elapsed=2313,49s tid=0x00007fc3430b1800 nid=0x16b6 waiting for monitor entry [0x00007fc2f2cf0000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.orientechnologies.orient.core.db.OrientDBEmbedded.openNoAuthorization(OrientDBEmbedded.java:452)
- waiting to lock <0x00000000813dced0> (a com.orientechnologies.orient.core.db.OrientDBDistributed)
at com.orientechnologies.orient.core.db.OrientDBEmbedded.lambda$executeNoAuthorization$9(OrientDBEmbedded.java:1077)
at com.orientechnologies.orient.core.db.OrientDBEmbedded$$Lambda$213/0x0000000840369c40.call(Unknown Source)
at java.util.concurrent.FutureTask.run(java.base@11.0.9.1/FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9.1/ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9.1/ThreadPoolExecutor.java:628)
at java.lang.Thread.run(java.base@11.0.9.1/Thread.java:834)

"OrientDB ONetworkProtocolBinary listen at 0.0.0.0:2424-2430" #58 prio=5 os_prio=0 cpu=0,64ms elapsed=2313,45s tid=0x00007fc34312b800 nid=0x16b7 runnable [0x00007fc2f27bd000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(java.base@11.0.9.1/Native Method)
at java.net.AbstractPlainSocketImpl.accept(java.base@11.0.9.1/AbstractPlainSocketImpl.java:458)
at java.net.ServerSocket.implAccept(java.base@11.0.9.1/ServerSocket.java:565)
at java.net.ServerSocket.accept(java.base@11.0.9.1/ServerSocket.java:533)
at com.orientechnologies.orient.server.network.OServerNetworkListener.run(OServerNetworkListener.java:213)

"OrientDB ONetworkProtocolHttpDb listen at 0.0.0.0:2480-2490" #60 prio=5 os_prio=0 cpu=43,82ms elapsed=2313,45s tid=0x00007fc343133800 nid=0x16b8 runnable [0x00007fc2f26bc000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(java.base@11.0.9.1/Native Method)
at java.net.AbstractPlainSocketImpl.accept(java.base@11.0.9.1/AbstractPlainSocketImpl.java:458)
at java.net.ServerSocket.implAccept(java.base@11.0.9.1/ServerSocket.java:565)
at java.net.ServerSocket.accept(java.base@11.0.9.1/ServerSocket.java:533)
at com.orientechnologies.orient.server.network.OServerNetworkListener.run(OServerNetworkListener.java:213)

"gremlin-server-exec-1" #63 prio=5 os_prio=0 cpu=2151,74ms elapsed=2313,05s tid=0x00007fc343703800 nid=0x16b9 waiting on condition [0x00007fc2f21bb000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@11.0.9.1/Native Method)
- parking to wait for <0x0000000081e159f8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9.1/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9.1/AbstractQueuedSynchronizer.java:2081)
at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9.1/LinkedBlockingQueue.java:433)
at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9.1/ThreadPoolExecutor.java:1054)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9.1/ThreadPoolExecutor.java:1114)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9.1/ThreadPoolExecutor.java:628)
at java.lang.Thread.run(java.base@11.0.9.1/Thread.java:834)

"gremlin-server-boss-1" #67 prio=5 os_prio=0 cpu=168,51ms elapsed=2310,17s tid=0x00007fc343800800 nid=0x16bb runnable [0x00007fc2f0db9000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPoll.wait(java.base@11.0.9.1/Native Method)
at sun.nio.ch.EPollSelectorImpl.doSelect(java.base@11.0.9.1/EPollSelectorImpl.java:120)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@11.0.9.1/SelectorImpl.java:124)
- locked <0x0000000082a78670> (a io.netty.channel.nio.SelectedSelectionKeySet)
- locked <0x0000000082a79698> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(java.base@11.0.9.1/SelectorImpl.java:136)
at io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:824)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:457)
at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at java.lang.Thread.run(java.base@11.0.9.1/Thread.java:834)

"OrientDB HTTP Connection /0:0:0:0:0:0:0:1:2480<-/0:0:0:0:0:0:0:1:37284" #336 daemon prio=5 os_prio=0 cpu=5047,66ms elapsed=699,17s tid=0x00007fc2ac016000 nid=0x1b79 runnable [0x00007fc2f3df9000]
java.lang.Thread.State: RUNNABLE
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentEmbedded.beforeCreateOperations(ODatabaseDocumentEmbedded.java:989)
at com.orientechnologies.orient.core.storage.impl.local.OMicroTransaction.addRecordOperation(OMicroTransaction.java:450)
at com.orientechnologies.orient.core.storage.impl.local.OMicroTransaction.saveRecord(OMicroTransaction.java:301)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentEmbedded.saveAll(ODatabaseDocumentEmbedded.java:1345)
at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:208)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentAbstract.saveInternal(ODatabaseDocumentAbstract.java:1854)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentAbstract.save(ODatabaseDocumentAbstract.java:1802)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentAbstract.save(ODatabaseDocumentAbstract.java:1685)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentAbstract.save(ODatabaseDocumentAbstract.java:135)
at com.orientechnologies.orient.core.sql.executor.SaveElementStep$1.next(SaveElementStep.java:37)
at com.orientechnologies.orient.core.sql.executor.OInsertExecutionPlan.executeInternal(OInsertExecutionPlan.java:46)
at com.orientechnologies.orient.core.sql.parser.OInsertStatement.execute(OInsertStatement.java:132)
at com.orientechnologies.orient.core.sql.parser.OLetStatement.executeSimple(OLetStatement.java:35)
at com.orientechnologies.orient.core.sql.executor.OSingleOpExecutionPlan.executeInternal(OSingleOpExecutionPlan.java:95)
at com.orientechnologies.orient.core.sql.executor.ScriptLineStep.syncPull(ScriptLineStep.java:37)
at com.orientechnologies.orient.core.sql.executor.OScriptExecutionPlan.executeFull(OScriptExecutionPlan.java:208)
at com.orientechnologies.orient.core.sql.parser.WhileStep.syncPull(WhileStep.java:45)
at com.orientechnologies.orient.core.sql.executor.OSelectExecutionPlan.fetchNext(OSelectExecutionPlan.java:34)
at com.orientechnologies.orient.core.sql.executor.OUpdateExecutionPlan.executeInternal(OUpdateExecutionPlan.java:41)
at com.orientechnologies.orient.core.sql.executor.ScriptLineStep.syncPull(ScriptLineStep.java:33)
at com.orientechnologies.orient.core.sql.executor.OScriptExecutionPlan.doExecute(OScriptExecutionPlan.java:78)
at com.orientechnologies.orient.core.sql.executor.OScriptExecutionPlan.fetchNext(OScriptExecutionPlan.java:39)
at com.orientechnologies.orient.core.sql.parser.OLocalResultSet.fetchNext(OLocalResultSet.java:36)
at com.orientechnologies.orient.core.sql.parser.OLocalResultSet.(OLocalResultSet.java:27)
at com.orientechnologies.orient.core.command.OSqlScriptExecutor.executeInternal(OSqlScriptExecutor.java:126)
at com.orientechnologies.orient.core.command.OSqlScriptExecutor.execute(OSqlScriptExecutor.java:50)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentEmbedded.execute(ODatabaseDocumentEmbedded.java:741)
at com.orientechnologies.orient.server.network.protocol.http.command.post.OServerCommandPostBatch.execute(OServerCommandPostBatch.java:211)
at com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpAbstract.service(ONetworkProtocolHttpAbstract.java:253)
at com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpAbstract.execute(ONetworkProtocolHttpAbstract.java:811)
at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:67)

"OrientDB HTTP Connection /0:0:0:0:0:0:0:1:2480<-/0:0:0:0:0:0:0:1:37444" #356 daemon prio=5 os_prio=0 cpu=1219,76ms elapsed=216,02s tid=0x00007fc2ac00e800 nid=0x1e6c runnable [0x00007fc2706c1000]
java.lang.Thread.State: RUNNABLE
at sun.nio.fs.UnixNativeDispatcher.readdir(java.base@11.0.9.1/Native Method)
at sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.readNextEntry(java.base@11.0.9.1/UnixDirectoryStream.java:165)
at sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.hasNext(java.base@11.0.9.1/UnixDirectoryStream.java:198)
- locked <0x00000000ff91b210> (a sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator)
at java.lang.Iterable.forEach(java.base@11.0.9.1/Iterable.java:74)
at com.orientechnologies.orient.core.db.OrientDBEmbedded.scanDatabaseDirectory(OrientDBEmbedded.java:953)
at com.orientechnologies.orient.core.db.OrientDBEmbedded.listDatabases(OrientDBEmbedded.java:829)
- locked <0x00000000813dced0> (a com.orientechnologies.orient.core.db.OrientDBDistributed)
at com.orientechnologies.orient.server.OServer.listDatabases(OServer.java:1303)
at com.orientechnologies.orient.server.OServer.getAvailableStorageNames(OServer.java:649)
at com.orientechnologies.orient.server.network.protocol.http.command.get.OServerCommandGetListDatabases.execute(OServerCommandGetListDatabases.java:59)
at com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpAbstract.service(ONetworkProtocolHttpAbstract.java:253)
at com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpAbstract.execute(ONetworkProtocolHttpAbstract.java:811)
at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:67)

"VM Thread" os_prio=0 cpu=14941,82ms elapsed=2317,14s tid=0x00007fc660754000 nid=0x166b runnable

"GC Thread#0" os_prio=0 cpu=731593,08ms elapsed=2317,19s tid=0x00007fc660031800 nid=0x1666 runnable

"GC Thread#1" os_prio=0 cpu=731407,51ms elapsed=2314,39s tid=0x00007fc62c001000 nid=0x1680 runnable

"GC Thread#2" os_prio=0 cpu=735184,14ms elapsed=2314,39s tid=0x00007fc62c002800 nid=0x1681 runnable

"GC Thread#3" os_prio=0 cpu=731904,09ms elapsed=2314,39s tid=0x00007fc62c004000 nid=0x1682 runnable

"GC Thread#4" os_prio=0 cpu=731927,43ms elapsed=2314,39s tid=0x00007fc62c005800 nid=0x1683 runnable

"GC Thread#5" os_prio=0 cpu=731622,20ms elapsed=2314,39s tid=0x00007fc62c007000 nid=0x1684 runnable

"GC Thread#6" os_prio=0 cpu=732221,84ms elapsed=2314,39s tid=0x00007fc62c008800 nid=0x1685 runnable

"GC Thread#7" os_prio=0 cpu=732006,10ms elapsed=2314,39s tid=0x00007fc62c00a000 nid=0x1686 runnable

"G1 Main Marker" os_prio=0 cpu=543,70ms elapsed=2317,19s tid=0x00007fc660064800 nid=0x1667 runnable

"G1 Conc#0" os_prio=0 cpu=414303,78ms elapsed=2317,19s tid=0x00007fc660066800 nid=0x1668 runnable

"G1 Conc#1" os_prio=0 cpu=414309,42ms elapsed=2314,01s tid=0x00007fc638001000 nid=0x16b3 runnable

"G1 Refine#0" os_prio=0 cpu=109,20ms elapsed=2317,16s tid=0x00007fc660721800 nid=0x1669 runnable

"G1 Refine#1" os_prio=0 cpu=36,24ms elapsed=2314,32s tid=0x00007fc630001000 nid=0x1687 runnable

"G1 Refine#2" os_prio=0 cpu=12,64ms elapsed=2314,32s tid=0x00007fc314001000 nid=0x1688 runnable

"G1 Refine#3" os_prio=0 cpu=13,17ms elapsed=2314,31s tid=0x00007fc318001000 nid=0x1689 runnable

"G1 Refine#4" os_prio=0 cpu=12,45ms elapsed=2314,31s tid=0x00007fc30c001000 nid=0x168a runnable

"G1 Refine#5" os_prio=0 cpu=12,19ms elapsed=2314,31s tid=0x00007fc310001000 nid=0x168b runnable

"G1 Refine#6" os_prio=0 cpu=6,70ms elapsed=2314,30s tid=0x00007fc304001000 nid=0x168c runnable

"G1 Refine#7" os_prio=0 cpu=5,06ms elapsed=2314,30s tid=0x00007fc308001000 nid=0x168d runnable

"G1 Young RemSet Sampling" os_prio=0 cpu=955,58ms elapsed=2317,16s tid=0x00007fc660723800 nid=0x166a runnable
"VM Periodic Task Thread" os_prio=0 cpu=1311,70ms elapsed=2317,11s tid=0x00007fc6607c8800 nid=0x1673 waiting on condition

JNI global refs: 20, weak refs: 0

Heap
garbage-first heap total 2097152K, used 2089436K [0x0000000080000000, 0x0000000100000000)
region size 1024K, 1 young (1024K), 0 survivors (0K)
Metaspace used 59241K, capacity 60381K, committed 61592K, reserved 1103872K
class space used 7087K, capacity 7552K, committed 7884K, reserved 1048576K

Steps to reproduce

Run these commands in OrientDB web ui. Insert and delete vertex multiple times, run these commands at least 5 times

CREATE CLASS MyClass IF NOT EXISTS EXTENDS V;
CREATE CLASS ConnectsTo IF NOT EXISTS EXTENDS E;
CREATE PROPERTY ConnectsTo.out IF NOT EXISTS LINK MyClass;
CREATE PROPERTY ConnectsTo.in IF NOT EXISTS LINK MyClass;
CREATE INDEX ConnectsTo_out_in IF NOT EXISTS ON ConnectsTo (out, in) UNIQUE_HASH_INDEX;

LET $i = 0;
WHILE ($i < 1000000){
LET m1 = INSERT INTO MyClass set value = 1;
LET m2 = INSERT INTO MyClass set value = 1;
CREATE EDGE ConnectsTo UPSERT FROM ($m1) TO ($m2);
LET $i = $i + 1;
}

delete vertex myclass;

@madmac2501
Copy link
Author

@Laa please could you take a look at this?

thanks a lot

@andrii0lomakin
Copy link
Member

@madmac2501 I will, but I am bussy now. Once I have time I will check it.

@madmac2501
Copy link
Author

I re reviewed this issue and I found that the problem was that I didn't configure the diskCache size, this caused that a big diskCache value was used and slowed down everything as memory was overused.

Sorry for the noise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants