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

Massive insertion of edges put OrientDB in pause for long time #4144

Closed
lvca opened this issue May 13, 2015 · 43 comments
Closed

Massive insertion of edges put OrientDB in pause for long time #4144

lvca opened this issue May 13, 2015 · 43 comments
Assignees
Milestone

Comments

@lvca
Copy link
Member

lvca commented May 13, 2015

Valerio is doing a massive import (plocal, no wal, diskcache flush disabled, version 2.1-rc2). Vertices have no problem. With edges after a while OrientDB freezes and no new edges are imported for log time, even 120 seconds. And then it restart... This is a thread dump during this freeze. Any clue why flushing locks operations?

Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.45-b02 mixed mode):

"Timer-1" #27 daemon prio=5 os_prio=0 tid=0x0000000002533000 nid=0xebcf in Object.wait() [0x00007f2630bce000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.util.TimerThread.mainLoop(Timer.java:552)
        - locked <0x0000000540014b78> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:505)

"OrientDB Write Cache Flush Task (test_shard)" #25 daemon prio=5 os_prio=0 tid=0x00007f2648573000 nid=0xebce runnable [0x00007f26312cf0
00]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.FileDispatcherImpl.pwrite0(Native Method)
        at sun.nio.ch.FileDispatcherImpl.pwrite(FileDispatcherImpl.java:66)
        at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:89)
        at sun.nio.ch.IOUtil.write(IOUtil.java:65)
        at sun.nio.ch.FileChannelImpl.writeInternal(FileChannelImpl.java:745)
        at sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:731)
        at com.orientechnologies.orient.core.storage.fs.OFileClassic.writeInternal(OFileClassic.java:95)
        at com.orientechnologies.orient.core.storage.fs.OFileClassic.write(OFileClassic.java:214)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.flushPage(OWOWCache.java:1089)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.access$2000(OWOWCache.java:62)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.iterateBySubRing(OWOWCache.java:12
89)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.flushRing(OWOWCache.java:1248)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache$PeriodicFlushTask.run(OWOWCache.java:1223)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"Timer-0" #23 daemon prio=5 os_prio=0 tid=0x00007f262c182000 nid=0xebcd in Object.wait() [0x00007f2631c01000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.util.TimerThread.mainLoop(Timer.java:552)
        - locked <0x000000054000e210> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:505)

"pool-1-thread-12" #21 prio=5 os_prio=0 tid=0x00007f2648114000 nid=0xebcc waiting on condition [0x00007f2631f01000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x0000000717af2690> (a java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
        at java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.release(O2QCache.java:359)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.releasePage(ODurableComponent.java:126)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.updateRecord(OPaginatedCluster.java:838)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doUpdateRecord(OAbstractPaginatedStorage.java:1584)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.updateRecord(OAbstractPaginatedStorage.java:731)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1733)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:284)
        at com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:264)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:124)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"pool-1-thread-11" #20 prio=5 os_prio=0 tid=0x00007f2648112000 nid=0xebcb waiting on condition [0x00007f2632002000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000005406ddbf8> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943)
        at com.orientechnologies.common.concur.resource.OSharedResourceAdaptive.acquireExclusiveLock(OSharedResourceAdaptive.java:133)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.acquireExclusiveLock(ODurableComponent.java:77)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.createRecord(OPaginatedCluster.java:374)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doCreateRecord(OAbstractPaginatedStorage.java:1515)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.createRecord(OAbstractPaginatedStorage.java:653)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1727)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:93)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"pool-1-thread-10" #19 prio=5 os_prio=0 tid=0x00007f2648110000 nid=0xebca waiting on condition [0x00007f2632103000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000005406ddbf8> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943)
        at com.orientechnologies.common.concur.resource.OSharedResourceAdaptive.acquireExclusiveLock(OSharedResourceAdaptive.java:133)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.acquireExclusiveLock(ODurableComponent.java:77)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.createRecord(OPaginatedCluster.java:374)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doCreateRecord(OAbstractPaginatedStorage.java:1515)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.createRecord(OAbstractPaginatedStorage.java:653)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1727)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:93)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"pool-1-thread-9" #18 prio=5 os_prio=0 tid=0x00007f264810e000 nid=0xebc9 waiting on condition [0x00007f2632204000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000005406dd558> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943)
        at com.orientechnologies.common.concur.resource.OSharedResourceAdaptive.acquireExclusiveLock(OSharedResourceAdaptive.java:133)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.acquireExclusiveLock(ODurableComponent.java:77)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.createRecord(OPaginatedCluster.java:374)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doCreateRecord(OAbstractPaginatedStorage.java:1515)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.createRecord(OAbstractPaginatedStorage.java:653)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1727)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:93)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"pool-1-thread-8" #17 prio=5 os_prio=0 tid=0x00007f264810c800 nid=0xebc8 waiting on condition [0x00007f2632306000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x0000000717e81960> (a java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
        at java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.release(O2QCache.java:359)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.releasePage(ODurableComponent.java:126)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.updateRecord(OPaginatedCluster.java:838)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doUpdateRecord(OAbstractPaginatedStorage.java:1584)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.updateRecord(OAbstractPaginatedStorage.java:731)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1733)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:284)
        at com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:264)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:105)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"pool-1-thread-7" #16 prio=5 os_prio=0 tid=0x00007f264810b000 nid=0xebc7 waiting on condition [0x00007f2632407000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000007186a73d8> (a java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
        at java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.release(O2QCache.java:359)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.releasePage(ODurableComponent.java:126)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.addEntry(OPaginatedCluster.java:1424)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.createRecord(OPaginatedCluster.java:409)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doCreateRecord(OAbstractPaginatedStorage.java:1515)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.createRecord(OAbstractPaginatedStorage.java:653)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1727)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:93)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"pool-1-thread-6" #15 prio=5 os_prio=0 tid=0x00007f2648109000 nid=0xebc6 waiting on condition [0x00007f2632508000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000005406dd8a8> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943)
        at com.orientechnologies.common.concur.resource.OSharedResourceAdaptive.acquireExclusiveLock(OSharedResourceAdaptive.java:133)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.acquireExclusiveLock(ODurableComponent.java:77)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.createRecord(OPaginatedCluster.java:374)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doCreateRecord(OAbstractPaginatedStorage.java:1515)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.createRecord(OAbstractPaginatedStorage.java:653)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1727)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:93)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)


"pool-1-thread-5" #14 prio=5 os_prio=0 tid=0x000000000167e800 nid=0xebc5 waiting on condition [0x00007f2632608000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x0000000717959de8> (a java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
        at java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.release(O2QCache.java:359)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.releasePage(ODurableComponent.java:126)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.addEntry(OPaginatedCluster.java:1424)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.createRecord(OPaginatedCluster.java:409)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doCreateRecord(OAbstractPaginatedStorage.java:1515)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.createRecord(OAbstractPaginatedStorage.java:653)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1727)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:93)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"pool-1-thread-4" #13 prio=5 os_prio=0 tid=0x00007f26480ff000 nid=0xebc4 waiting on condition [0x00007f2632709000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000005406dd8a8> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943)
        at com.orientechnologies.common.concur.resource.OSharedResourceAdaptive.acquireExclusiveLock(OSharedResourceAdaptive.java:133)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.acquireExclusiveLock(ODurableComponent.java:77)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.createRecord(OPaginatedCluster.java:374)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doCreateRecord(OAbstractPaginatedStorage.java:1515)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.createRecord(OAbstractPaginatedStorage.java:653)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1727)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:93)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"pool-1-thread-3" #12 prio=5 os_prio=0 tid=0x00007f26480fd800 nid=0xebc3 waiting on condition [0x00007f263280a000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000005406dd558> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943)
        at com.orientechnologies.common.concur.resource.OSharedResourceAdaptive.acquireExclusiveLock(OSharedResourceAdaptive.java:133)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.acquireExclusiveLock(ODurableComponent.java:77)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.createRecord(OPaginatedCluster.java:374)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doCreateRecord(OAbstractPaginatedStorage.java:1515)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.createRecord(OAbstractPaginatedStorage.java:653)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1727)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:93)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"pool-1-thread-2" #11 prio=5 os_prio=0 tid=0x00007f26480fb800 nid=0xebc2 waiting on condition [0x00007f263290b000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x000000071909c8c8> (a java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
        at java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.release(O2QCache.java:359)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.releasePage(ODurableComponent.java:126)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.updateRecord(OPaginatedCluster.java:838)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doUpdateRecord(OAbstractPaginatedStorage.java:1584)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.updateRecord(OAbstractPaginatedStorage.java:731)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1733)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:284)
        at com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:264)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:124)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"pool-1-thread-1" #10 prio=5 os_prio=0 tid=0x00007f26480f8000 nid=0xebc1 waiting on condition [0x00007f2632a0c000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000007169b0098> (a java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
        at java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.release(O2QCache.java:359)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.releasePage(ODurableComponent.java:126)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.addEntry(OPaginatedCluster.java:1424)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.createRecord(OPaginatedCluster.java:409)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doCreateRecord(OAbstractPaginatedStorage.java:1515)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.createRecord(OAbstractPaginatedStorage.java:653)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1727)
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:93)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"Service Thread" #9 daemon prio=9 os_prio=0 tid=0x00007f2648058000 nid=0xebbf runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread3" #8 daemon prio=9 os_prio=0 tid=0x00007f2648042000 nid=0xebbe waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread2" #7 daemon prio=9 os_prio=0 tid=0x00007f2648040000 nid=0xebbd waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x00007f264803d800 nid=0xebbc waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0x00007f264803a800 nid=0xebbb waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007f2648039800 nid=0xebba waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f2648001000 nid=0xebb9 in Object.wait() [0x00007f26333f2000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
        - locked <0x00000005400254e8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00000000015e6800 nid=0xebb8 in Object.wait() [0x00007f26334f3000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:502)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
        - locked <0x0000000540030910> (a java.lang.ref.Reference$Lock)

"main" #1 prio=5 os_prio=0 tid=0x0000000001567800 nid=0xebac waiting on condition [0x00007f266465f000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x0000000540015568> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.LinkedBlockingQueue.put(LinkedBlockingQueue.java:350)
        at net.translated.mymemory.main.EdgeInserterMT.main(EdgeInserterMT.java:83)

"VM Thread" os_prio=0 tid=0x00000000015e1800 nid=0xebb7 runnable

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x000000000157c800 nid=0xebad runnable

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x000000000157e800 nid=0xebae runnable

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x0000000001580000 nid=0xebaf runnable

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000001582000 nid=0xebb0 runnable

"GC task thread#4 (ParallelGC)" os_prio=0 tid=0x0000000001583800 nid=0xebb1 runnable

"GC task thread#5 (ParallelGC)" os_prio=0 tid=0x0000000001585800 nid=0xebb2 runnable

"GC task thread#6 (ParallelGC)" os_prio=0 tid=0x0000000001587000 nid=0xebb3 runnable

"GC task thread#7 (ParallelGC)" os_prio=0 tid=0x0000000001589000 nid=0xebb4 runnable

"GC task thread#8 (ParallelGC)" os_prio=0 tid=0x000000000158a800 nid=0xebb5 runnable

"GC task thread#9 (ParallelGC)" os_prio=0 tid=0x000000000158c800 nid=0xebb6 runnable

"VM Periodic Task Thread" os_prio=0 tid=0x000000000163c000 nid=0xebc0 waiting on condition

JNI global references: 2123

Heap
 PSYoungGen      total 3404800K, used 926714K [0x00000006eab00000, 0x00000007c0000000, 0x00000007c0000000)
  eden space 3337216K, 25% used [0x00000006eab00000,0x000000071f566958,0x00000007b6600000)
  from space 67584K, 94% used [0x00000007bbe00000,0x00000007bfc98070,0x00000007c0000000)
  to   space 78848K, 0% used [0x00000007b6600000,0x00000007b6600000,0x00000007bb300000)
 ParOldGen       total 2347008K, used 1790886K [0x0000000540000000, 0x00000005cf400000, 0x00000006eab00000)
  object space 2347008K, 76% used [0x0000000540000000,0x00000005ad4e9b68,0x00000005cf400000)
 Metaspace       used 21735K, capacity 22112K, committed 22912K, reserved 1069056K
  class space    used 2486K, capacity 2684K, committed 2944K, reserved 1048576K
@lvca lvca added this to the 2.1 GA milestone May 13, 2015
@prjhub prjhub added the bug label May 13, 2015
@lvca
Copy link
Member Author

lvca commented May 13, 2015

I see the flush get a lock by using:

Lock groupLock = lockManager.acquireExclusiveLock(entry.getKey());

Where lockManager is the ONewLockManager. I remember @tglman found a problem with this lock manager about collision of hash code keys. Could it be merely this the cause?

@tglman
Copy link
Member

tglman commented May 13, 2015

Looking the stack trace it just seems that all the thread are waiting on the flush, so doesn't look like some deadlock is happening.

by the way @lvca the ONewLockManager is safe in case of page locking because one thread never lock more than one page at time.

@lvca
Copy link
Member Author

lvca commented May 13, 2015

The question is why everybody is waiting for the flush if the flush get one lock per page?

@lvca
Copy link
Member Author

lvca commented May 13, 2015

Ok, digging more into the code I see that after each operation at cluster level, the page is released. On page release the PeriodicFlushTask() could be submitted. So with a massive insertion against 16 clusters, you could have many PeriodicFlushTask that are working in parallel. Everything is blocked because the cluster operation waits for PeriodicFlushTask completion to release the lock.

@lvca
Copy link
Member Author

lvca commented May 13, 2015

I'm guessing if we could release the lock on cluster before to release the lock on page.

@andrii0lomakin
Copy link
Member

Valerio is doing a massive import (plocal, no wal, diskcache flush disabled, version 2.1-rc2)
What do you mean by "diskcache flush disabled" is disabled ?

@l4nz10
Copy link

l4nz10 commented May 20, 2015

Hi guys, I've been requested to make an exhaustive description of how I handle the operations with OrientDB, hoping it could be more helpful for you :)

So, as Luca said, I'm using version 2.1-rc2, accessing the DB via plocal and using default blueprints methods.
I already have a graph database containing about 300 million vertices, and I wrote a custom script to insert ~600 million edges.

The script is divided in many threads each using a separate OrientGraphNoTx instance, provided by the given OrientGraphFactory.
Each thread configures its instance with these options:

graphNoTx.getRawGraph().declareIntent(new OIntentMassiveInsert());
graphNoTx.getRawGraph().setValidationEnabled(false);

and then proceeds to create a large set of edges provided by a shared queue. For each edge the thread has to make a look-up for the starting and ending vertices (they are equipped with an unique hash index).
Each edge contains 4 properties: an integer, an embedded set and two embedded maps.

Upon launching the script, it soon starts to pause periodically during runtime, where each pause coincides with the moment a new edge is created. The more the script keeps running, the more the pauses keep growing in time and frequency.

Additional options I use while launching the script are:

-Dstorage.useWAL=false   -Dstorage.wal.syncOnPageFlush=false

I tried removing the second option to look for improvements, but the behavior has remained basically the same.


Regarding the graph structure, it is comprised of two main classes, one for the vertices and one for the edges.

The vertex class is replicated in 64 copies, each equipped with a separate unique hash index. Furthermore, each copy is comprised of 6 clusters (in order to grant concurrent access to the threads) and is set to an oversize factor of 5.

The edge class is not replicated nor oversized, but it is comprised of 12 clusters.


Hope it helps,

Valerio

@andrii0lomakin
Copy link
Member

Hi Valerio,
After some thinking I have one idea could you write me update about it.
Could you run your benchmark with -Dsbtreebonsai.freeeSpaceReuseTrigger=-1 .

If you still have situation when insertion of edges is frozen could you send me series thread dumps as you did before ?
I have one more question merely to double check is it correct that you do not have the same issue with vertexes ?

@lvca
Copy link
Member Author

lvca commented May 20, 2015

I think @Laa meant: -Dsbtreebonsai.freeSpaceReuseTrigger=-1.

@l4nz10
Copy link

l4nz10 commented May 20, 2015

Sure thing Andrey, I'll restart the process tomorrow and will provide you additional data in case of more freezes.

And yeah, the issue does not appear during vertex insertion: the script runs smoothly till the end. It seems to be a problem limited to the edge's scope.

@andrii0lomakin
Copy link
Member

@l4nz10 looking forward for your feedback

@l4nz10
Copy link

l4nz10 commented May 22, 2015

Hey @Laa, very sorry for the wait, yesterday has been a busy day.
I plan to give you updates in the early afternoon, I'm on it.

@l4nz10
Copy link

l4nz10 commented May 22, 2015

I started the new insertion with the option you provided, but now the following exception occurs:

com.orientechnologies.orient.core.index.sbtree.local.OSBTreeException: Error creation of sbtree with namecollections_177
        at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.create(OSBTreeBonsaiLocal.java:117)  
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManagerShared.createTree(OSBTreeCollectionManagerShared.java:76)
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManagerShared.createTree(OSBTreeCollectionManagerShared.java:40)
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManagerAbstract.createSBTree(OSBTreeCollectionManagerAbstract.java:83)
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManagerShared.createSBTree(OSBTreeCollectionManagerShared.java:61)
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManagerProxy.createSBTree(OSBTreeCollectionManagerProxy.java:46)
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeRidBag.serialize(OSBTreeRidBag.java:794)
        at com.orientechnologies.orient.core.db.record.ridbag.ORidBag.toStream(ORidBag.java:264)
        at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.writeSingleValue(ORecordSerializerBinaryV0.java:578)
        at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.serialize(ORecordSerializerBinaryV0.java:258)
        at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinary.toStream(ORecordSerializerBinary.java:104)
        at com.orientechnologies.orient.core.record.impl.ODocument.toStream(ODocument.java:2173)
        at com.orientechnologies.orient.core.record.impl.ODocument.toStream(ODocument.java:670)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1667) 
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:284)
        at com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:264)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:126)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:50)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: com.orientechnologies.common.io.OIOException: You cannot access outside the file size (65536 bytes). You have requested portion -65536-0 bytes. File: File: collections_177.sbc os-size=1024, stored=65536, filled=65536, max=0
        at com.orientechnologies.orient.core.storage.fs.OAbstractFile.checkRegions(OAbstractFile.java:519)
        at com.orientechnologies.orient.core.storage.fs.OFileClassic.checkRegions(OFileClassic.java:371)
        at com.orientechnologies.orient.core.storage.fs.OFileClassic.read(OFileClassic.java:73)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.cacheFileContent(OWOWCache.java:1055)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.load(OWOWCache.java:510)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.updateCache(O2QCache.java:613)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.doLoad(O2QCache.java:270)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.load(O2QCache.java:235)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.loadPage(ODurableComponent.java:105)
        at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.reuseBucketFromFreeList(OSBTreeBonsaiLocal.java:1317)
        at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.allocateBucket(OSBTreeBonsaiLocal.java:1289)
        at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.initAfterCreate(OSBTreeBonsaiLocal.java:160)
        at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.create(OSBTreeBonsaiLocal.java:109)  
        ... 27 more
com.orientechnologies.orient.core.index.sbtree.local.OSBTreeException: Error creation of sbtree with namecollections_36
        at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.create(OSBTreeBonsaiLocal.java:117)  
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManagerShared.createTree(OSBTreeCollectionManagerShared.java:76)
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManagerShared.createTree(OSBTreeCollectionManagerShared.java:40)
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManagerAbstract.createSBTree(OSBTreeCollectionManagerAbstract.java:83)
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManagerShared.createSBTree(OSBTreeCollectionManagerShared.java:61)
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeCollectionManagerProxy.createSBTree(OSBTreeCollectionManagerProxy.java:46)
        at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeRidBag.serialize(OSBTreeRidBag.java:794)
        at com.orientechnologies.orient.core.db.record.ridbag.ORidBag.toStream(ORidBag.java:264)
        at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.writeSingleValue(ORecordSerializerBinaryV0.java:578)
        at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.serialize(ORecordSerializerBinaryV0.java:258)
        at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinary.toStream(ORecordSerializerBinary.java:104)
        at com.orientechnologies.orient.core.record.impl.ODocument.toStream(ODocument.java:2173)
        at com.orientechnologies.orient.core.record.impl.ODocument.toStream(ODocument.java:670)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1667) 
        at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:94)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2298)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:95)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1681)
        at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1672)
        at com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:284)
        at com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:264)
        at net.translated.mymemory.main.EdgeInserterThread.createOutgoingEdgesHack(EdgeInserterThread.java:126)
        at net.translated.mymemory.main.EdgeInserterThread.run(EdgeInserterThread.java:50)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: com.orientechnologies.common.io.OIOException: You cannot access outside the file size (65536 bytes). You have requested portion -65536-0 bytes. File: File: collections_36.sbc os-size=1024, stored=65536, filled=65536, max=0
        at com.orientechnologies.orient.core.storage.fs.OAbstractFile.checkRegions(OAbstractFile.java:519)
        at com.orientechnologies.orient.core.storage.fs.OFileClassic.checkRegions(OFileClassic.java:371)
        at com.orientechnologies.orient.core.storage.fs.OFileClassic.read(OFileClassic.java:73)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.cacheFileContent(OWOWCache.java:1055)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.OWOWCache.load(OWOWCache.java:510)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.updateCache(O2QCache.java:613)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.doLoad(O2QCache.java:270)
        at com.orientechnologies.orient.core.index.hashindex.local.cache.O2QCache.load(O2QCache.java:235)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.loadPage(ODurableComponent.java:105)
        at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.reuseBucketFromFreeList(OSBTreeBonsaiLocal.java:1317)
        at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.allocateBucket(OSBTreeBonsaiLocal.java:1289)
        at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.initAfterCreate(OSBTreeBonsaiLocal.java:160)
        at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.create(OSBTreeBonsaiLocal.java:109)  
        ... 27 more

@andrii0lomakin
Copy link
Member

I see did you start insertion from scratch or on already created database ?

@l4nz10
Copy link

l4nz10 commented May 22, 2015

From scratch. These exceptions appear only during the edge insertion phase.

@andrii0lomakin
Copy link
Member

I see could you try -Dsbtreebonsai.freeeSpaceReuseTrigger=0. Does it work ?

@l4nz10
Copy link

l4nz10 commented May 22, 2015

One thing:I generate the graph structure in a separate script, should I use the same option on that section too? Could it be the reason?

@andrii0lomakin
Copy link
Member

You shold the same option , but to make srcipt more safe even better to use -Dsbtreebonsai.freeeSpaceReuseTrigger=0 option.

@l4nz10
Copy link

l4nz10 commented May 22, 2015

Ok, then I'll rebuild the graph and give it another shot, I'll let you know.

@l4nz10
Copy link

l4nz10 commented May 22, 2015

Just tried with the new option, the problem persists. Any idea on the cause?

@andrii0lomakin
Copy link
Member

could you send me code, I will reporduce it on my side. Is it thrown at the beggining of the load test or I have to wait for a while ?

@l4nz10
Copy link

l4nz10 commented May 25, 2015

Here they are:

Nodes
https://drive.google.com/file/d/0B6ehyo4kmhDkcmZONTZJZnJkenc/view?usp=sharing

Edges
https://drive.google.com/file/d/0B6ehyo4kmhDkTnVaaWxFNmNRZkU/view?usp=sharing

2015-05-25 9:40 GMT+02:00 Andrey Lomakin notifications@github.com:

@l4nz10 https://github.com/l4nz10 sure looking forward for this.


Reply to this email directly or view it on GitHub
#4144 (comment)
.

@l4nz10
Copy link

l4nz10 commented May 25, 2015

Let me know when you got them

@lvca
Copy link
Member Author

lvca commented May 26, 2015

Running the test show that is not a problem of just edges. Inserting vertices, after 82M of entries start to do long pauses:

INFO: OrientDB auto-config DISKCACHE=10,695MB (heap=3,641MB os=16,384MB disk=22,334MB)
Starting vertex insertion...Read : [169319], Items/Sec : [0], Execution time : [00:00:01]
Read : [473268], Items/Sec : [997], Execution time : [00:00:02]
Read : [749501], Items/Sec : [1635], Execution time : [00:00:03]
Read : [1096396], Items/Sec : [1721], Execution time : [00:00:04]
Read : [1383942], Items/Sec : [2208], Execution time : [00:00:05]
Read : [1667921], Items/Sec : [4825], Execution time : [00:00:06]
Read : [1741774], Items/Sec : [1688], Execution time : [00:00:08]
Read : [2259808], Items/Sec : [13835], Execution time : [00:00:09]
...
Read : [13176594], Items/Sec : [67756], Execution time : [00:01:29]
...
Read : [18257894], Items/Sec : [67598], Execution time : [00:03:21]
...
Read : [23543619], Items/Sec : [67833], Execution time : [00:05:16]
...
Read : [28805319], Items/Sec : [37652], Execution time : [00:07:08]
..
Read : [33681381], Items/Sec : [50190], Execution time : [00:08:48]
...
Read : [38687379], Items/Sec : [51901], Execution time : [00:10:28]
...
Read : [43460955], Items/Sec : [46483], Execution time : [00:11:54]
...
Read : [48857424], Items/Sec : [52940], Execution time : [00:13:38]
...
Read : [75851285], Items/Sec : [48804], Execution time : [00:23:25]
...
Read : [81076567], Items/Sec : [6309], Execution time : [00:25:53]
...
Read : [81999907], Items/Sec : [12515], Execution time : [00:26:52]
...
Read : [82257976], Items/Sec : [0], Execution time : [00:27:17]
Read : [82257976], Items/Sec : [0], Execution time : [00:27:18]
Read : [82257976], Items/Sec : [0], Execution time : [00:27:19]
Read : [82257976], Items/Sec : [0], Execution time : [00:27:20]
Read : [82257976], Items/Sec : [0], Execution time : [00:27:21]
Read : [82257976], Items/Sec : [0], Execution time : [00:27:22]
Read : [82257976], Items/Sec : [0], Execution time : [00:27:23]
Read : [82257976], Items/Sec : [0], Execution time : [00:27:24]
Read : [82257976], Items/Sec : [0], Execution time : [00:27:25]
Read : [82257976], Items/Sec : [0], Execution time : [00:27:26]
Read : [82257976], Items/Sec : [0], Execution time : [00:27:27]
Read : [82260867], Items/Sec : [2891], Execution time : [00:27:28]
Read : [82266267], Items/Sec : [5400], Execution time : [00:27:29]
Read : [82271294], Items/Sec : [5027], Execution time : [00:27:30]
Read : [82278559], Items/Sec : [7265], Execution time : [00:27:31]
Read : [82293793], Items/Sec : [15229], Execution time : [00:27:32]
Read : [82302203], Items/Sec : [8410], Execution time : [00:27:33]
Read : [82310579], Items/Sec : [8373], Execution time : [00:27:34]
Read : [82318750], Items/Sec : [8169], Execution time : [00:27:35]
Read : [82326105], Items/Sec : [7355], Execution time : [00:27:36]
Read : [82335316], Items/Sec : [9211], Execution time : [00:27:37]
Read : [82341097], Items/Sec : [5779], Execution time : [00:27:38]
Read : [82350252], Items/Sec : [9155], Execution time : [00:27:39]
Read : [82358997], Items/Sec : [8745], Execution time : [00:27:40]
Read : [82365693], Items/Sec : [6697], Execution time : [00:27:41]
Read : [82375311], Items/Sec : [9610], Execution time : [00:27:42]
Read : [82389247], Items/Sec : [13936], Execution time : [00:27:43]
Read : [82403858], Items/Sec : [14605], Execution time : [00:27:44]
Read : [82410908], Items/Sec : [7050], Execution time : [00:27:45]
Read : [82416215], Items/Sec : [5307], Execution time : [00:27:46]
Read : [82428593], Items/Sec : [12378], Execution time : [00:27:47]
Read : [82446914], Items/Sec : [18321], Execution time : [00:27:48]
Read : [82457576], Items/Sec : [10659], Execution time : [00:27:49]
Read : [82470884], Items/Sec : [13308], Execution time : [00:27:50]
Read : [82481446], Items/Sec : [10557], Execution time : [00:27:51]
Read : [82487658], Items/Sec : [6213], Execution time : [00:27:52]
Read : [82491303], Items/Sec : [3638], Execution time : [00:27:53]
Read : [82494173], Items/Sec : [2870], Execution time : [00:27:54]
Read : [82496490], Items/Sec : [2317], Execution time : [00:27:55]
Read : [82499119], Items/Sec : [2629], Execution time : [00:27:56]
Read : [82499119], Items/Sec : [0], Execution time : [00:27:57]
Read : [82499119], Items/Sec : [0], Execution time : [00:27:58]
Read : [82499119], Items/Sec : [0], Execution time : [00:27:59]
Read : [82499119], Items/Sec : [0], Execution time : [00:28:00]
Read : [82499119], Items/Sec : [0], Execution time : [00:28:01]
Read : [82499119], Items/Sec : [0], Execution time : [00:28:02]
Read : [82499119], Items/Sec : [0], Execution time : [00:28:03]
Read : [82499119], Items/Sec : [0], Execution time : [00:28:04]
Read : [82499119], Items/Sec : [0], Execution time : [00:28:05]
Read : [82499119], Items/Sec : [0], Execution time : [00:28:06]
Read : [82499119], Items/Sec : [0], Execution time : [00:28:07]
Read : [82499119], Items/Sec : [0], Execution time : [00:28:08]
Read : [82499119], Items/Sec : [0], Execution time : [00:28:09]
Read : [82499119], Items/Sec : [0], Execution time : [00:28:10]
Read : [82511230], Items/Sec : [12112], Execution time : [00:28:11]
Read : [82522971], Items/Sec : [11733], Execution time : [00:28:12]
Read : [82532356], Items/Sec : [9385], Execution time : [00:28:13]
Read : [82541812], Items/Sec : [9463], Execution time : [00:28:14]
Read : [82556150], Items/Sec : [14331], Execution time : [00:28:15]
Read : [82566983], Items/Sec : [10830], Execution time : [00:28:16]
Read : [82575712], Items/Sec : [8728], Execution time : [00:28:17]
Read : [82586126], Items/Sec : [10415], Execution time : [00:28:18]
Read : [82603787], Items/Sec : [17655], Execution time : [00:28:19]
Read : [82615576], Items/Sec : [11789], Execution time : [00:28:20]
Read : [82628833], Items/Sec : [13255], Execution time : [00:28:21]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:22]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:23]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:24]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:25]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:26]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:27]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:28]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:29]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:30]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:31]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:32]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:33]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:34]
Read : [82628833], Items/Sec : [0], Execution time : [00:28:35]
Read : [82645603], Items/Sec : [16773], Execution time : [00:28:36]
Read : [82655026], Items/Sec : [9416], Execution time : [00:28:37]
Read : [82663206], Items/Sec : [8180], Execution time : [00:28:38]
Read : [82673911], Items/Sec : [10706], Execution time : [00:28:39]
Read : [82684463], Items/Sec : [10547], Execution time : [00:28:40]
Read : [82692123], Items/Sec : [7660], Execution time : [00:28:41]
Read : [82711597], Items/Sec : [19474], Execution time : [00:28:42]
Read : [82724867], Items/Sec : [13259], Execution time : [00:28:43]
Read : [82735814], Items/Sec : [10937], Execution time : [00:28:44]
Read : [82747918], Items/Sec : [12104], Execution time : [00:28:45]
Read : [82763908], Items/Sec : [15983], Execution time : [00:28:46]
Read : [82770555], Items/Sec : [6647], Execution time : [00:28:47]
Read : [82781635], Items/Sec : [11074], Execution time : [00:28:48]
Read : [82788258], Items/Sec : [6623], Execution time : [00:28:49]
Read : [82802580], Items/Sec : [14338], Execution time : [00:28:50]
Read : [82812930], Items/Sec : [10327], Execution time : [00:28:51]
Read : [82821012], Items/Sec : [8078], Execution time : [00:28:52]
Read : [82825382], Items/Sec : [4370], Execution time : [00:28:53]
Read : [82829937], Items/Sec : [4555], Execution time : [00:28:54]
Read : [82831958], Items/Sec : [2020], Execution time : [00:28:55]
Read : [82835154], Items/Sec : [3196], Execution time : [00:28:56]
Read : [82837274], Items/Sec : [2120], Execution time : [00:28:57]
Read : [82843645], Items/Sec : [6371], Execution time : [00:28:58]
Read : [82848602], Items/Sec : [4948], Execution time : [00:28:59]
Read : [82848602], Items/Sec : [0], Execution time : [00:29:00]
Read : [82848602], Items/Sec : [0], Execution time : [00:29:01]
Read : [82848602], Items/Sec : [0], Execution time : [00:29:02]
Read : [82848602], Items/Sec : [0], Execution time : [00:29:03]
Read : [82848602], Items/Sec : [0], Execution time : [00:29:04]
Read : [82848602], Items/Sec : [0], Execution time : [00:29:06]
Read : [82848602], Items/Sec : [0], Execution time : [00:29:07]
Read : [82848602], Items/Sec : [0], Execution time : [00:29:08]
Read : [82848602], Items/Sec : [0], Execution time : [00:29:09]
Read : [82848602], Items/Sec : [0], Execution time : [00:29:10]
Read : [82854284], Items/Sec : [5682], Execution time : [00:29:11]
Read : [82876606], Items/Sec : [22309], Execution time : [00:29:12]
Read : [82882778], Items/Sec : [6168], Execution time : [00:29:13]
Read : [82888802], Items/Sec : [6021], Execution time : [00:29:14]
Read : [82898363], Items/Sec : [9559], Execution time : [00:29:15]
Read : [82904631], Items/Sec : [6267], Execution time : [00:29:16]
Read : [82915024], Items/Sec : [10392], Execution time : [00:29:17]
Read : [82932758], Items/Sec : [17734], Execution time : [00:29:18]
Read : [82944480], Items/Sec : [11718], Execution time : [00:29:19]
Read : [82954218], Items/Sec : [9742], Execution time : [00:29:20]
Read : [82967679], Items/Sec : [13448], Execution time : [00:29:21]
Read : [82975133], Items/Sec : [7454], Execution time : [00:29:22]
Read : [82981936], Items/Sec : [6797], Execution time : [00:29:23]
Read : [82986769], Items/Sec : [4833], Execution time : [00:29:24]
Read : [82989873], Items/Sec : [3104], Execution time : [00:29:25]
Read : [82989873], Items/Sec : [0], Execution time : [00:29:26]
Read : [82989873], Items/Sec : [0], Execution time : [00:29:27]
Read : [82989873], Items/Sec : [0], Execution time : [00:29:28]
Read : [82989873], Items/Sec : [0], Execution time : [00:29:29]
Read : [82989873], Items/Sec : [0], Execution time : [00:29:30]
Read : [82989873], Items/Sec : [0], Execution time : [00:29:31]
Read : [82989873], Items/Sec : [0], Execution time : [00:29:32]
Read : [82989873], Items/Sec : [0], Execution time : [00:29:33]
Read : [82995470], Items/Sec : [5597], Execution time : [00:29:34]
Read : [83008011], Items/Sec : [12541], Execution time : [00:29:35]
Read : [83020201], Items/Sec : [12181], Execution time : [00:29:36]
Read : [83031355], Items/Sec : [11151], Execution time : [00:29:37]
Read : [83047760], Items/Sec : [16396], Execution time : [00:29:38]
Read : [83062215], Items/Sec : [14451], Execution time : [00:29:39]
Read : [83075642], Items/Sec : [13420], Execution time : [00:29:40]
Read : [83089973], Items/Sec : [14324], Execution time : [00:29:41]
Read : [83100238], Items/Sec : [10265], Execution time : [00:29:42]
Read : [83111252], Items/Sec : [11014], Execution time : [00:29:43]
Read : [83116680], Items/Sec : [5422], Execution time : [00:29:44]
Read : [83125237], Items/Sec : [8550], Execution time : [00:29:45]
Read : [83127301], Items/Sec : [2064], Execution time : [00:29:46]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:47]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:48]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:49]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:50]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:51]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:52]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:53]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:54]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:55]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:56]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:57]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:58]
Read : [83127301], Items/Sec : [0], Execution time : [00:29:59]
Read : [83142211], Items/Sec : [14910], Execution time : [00:30:00]
Read : [83154756], Items/Sec : [12545], Execution time : [00:30:01]
Read : [83164023], Items/Sec : [9267], Execution time : [00:30:02]
Read : [83170415], Items/Sec : [6387], Execution time : [00:30:03]
Read : [83173834], Items/Sec : [3415], Execution time : [00:30:04]

@l4nz10
Copy link

l4nz10 commented May 26, 2015

That's interesting. Vertex insertion always had good performance overall (even with the pauses, apparently), so I didn't make tests on it. Good to know.

@andrii0lomakin
Copy link
Member

Hi,
We are working now on new memory management , will send you update in 2 days
26 Май 2015 г. 22:35 пользователь "Valerio Lanziani" <
notifications@github.com> написал:

That's interesting. Vertex insertion always had good performance overall
(even with the pauses, apparently), so I didn't take measures on it. Good
to know.


Reply to this email directly or view it on GitHub
#4144 (comment)
.

@andrii0lomakin
Copy link
Member

Hi @l4nz10,
Memory cache in https://github.com/orientechnologies/orientdb/tree/new_write_cache is more efficient with memory management. We are not done yet, but results are promising could you kindly try benchmark tests on it with additional setting -Dstorage.useWAL=false ?

@lvca
Copy link
Member Author

lvca commented May 28, 2015

@l4nz10 when could you try your app running OrientDB from "new_write_cache" branch?

@l4nz10
Copy link

l4nz10 commented May 29, 2015

Ok I'll give it a try this week end, will let you know as soon as I have some data.

@lvca
Copy link
Member Author

lvca commented May 29, 2015

@l4nz10 Thanks, we're looking for your results. @Laa did you update the branch with some new improvements?

@l4nz10
Copy link

l4nz10 commented May 30, 2015

I just ran the tests and the issue seems to have been indeed fixed.

The edge insertion has gone smoothly till the end, with an average insertion speed of 19000 edges per second.

In regard of the vertices, the performance are quite the same as before, having an average insertion speed of 70000 vertices per second (with a dedicated hash index).

I plan to make an additional test with an even larger dataset, just to make sure the problem is gone for good.

I'm looking forward to your further improvements. Thanks for your help!

Valerio

EDIT:
Just to add some additional information that may be useful for you, by 'smoothly' I mean the edge insertion didn't make a single pause as far as I can see. The process started with an average speed of 26k edges per second and slowly dropped to 19k (I want to make a longer test to see if it stabilizes on a fixed speed), with peaks of even 30k sometimes.

@lvca
Copy link
Member Author

lvca commented May 31, 2015

@l4nz10 This is super good news! Thanks @Laa for such big improvement in so short time. @l4nz10 How much time the entire process took?

@l4nz10
Copy link

l4nz10 commented Jun 1, 2015

I managed to insert about 160 million vertices in 2255 seconds, and 76 million edges in 4010 seconds. So the entire process took about 1 hour and 45 minutes overall.

@andrii0lomakin
Copy link
Member

Hi @l4nz10
It is in develop branch.
Could you make final run and confirm that issue is fixed ?

@l4nz10
Copy link

l4nz10 commented Jun 3, 2015

Ok I'll test again. I'll report back if something goes wrong.

@lvca
Copy link
Member Author

lvca commented Jun 3, 2015

Thanks

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

No branches or pull requests

5 participants