Hi Enrico, Yes, we use transactions. In each transaction, we create up-to a couple thousand vertexes and have light weight edges created in the process too.
On Mon, Jan 5, 2015 at 9:30 AM, Enrico Risa <enrico.r...@gmail.com> wrote: > Hi Jing > > i Use Yourkit java profiler > > are you using Transactions? > > how many records in insert? > > 2015-01-05 18:27 GMT+01:00 Jing Chen <jingjing...@gmail.com>: > >> Hi Enrico, >> >> Yes, we are executing massive insert using the Java API directly. >> >> What profiling tool do you use? >> >> Thanks, >> Jing >> >> On Tuesday, December 30, 2014 10:47:23 AM UTC-8, Enrico Risa wrote: >>> >>> Hi Jing >>> >>> are you executing massive insert behind >>> AdminService.processTasks >>> >>> Can you send me some profiling session? >>> >>> 2014-12-30 19:05 GMT+01:00 Jing Chen <jingj...@gmail.com>: >>> >>>> Thanks for the quick response Enrico. Our application is a tomcat web >>>> application running on a Amazon Redhat 7 instance which has 3.5G memory. We >>>> have 3G allocated to tomcat JVM. Here are the error message from the tomcat >>>> log: >>>> >>>> 2014-12-21 05:32:19:694 INFO Deleting partial network >>>> 31fdf743-88f5-11e4-a88d-0aa4c1de39d1 in order to rollback in response >>>> to error [NdexPersistenceService]Exception in thread "Lucene Merge >>>> Thread #11" org.apache.lucene.index.MergePolicy$MergeException: >>>> java.lang.OutOfMemoryError: GC overhead limit exceeded >>>> >>>> at org.apache.lucene.index.ConcurrentMergeScheduler. >>>> handleMergeException(ConcurrentMergeScheduler.java:545) >>>> >>>> at org.apache.lucene.index.ConcurrentMergeScheduler$ >>>> MergeThread.run(ConcurrentMergeScheduler.java:518) >>>> >>>> Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded >>>> >>>> java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: >>>> GC overhead limit exceeded >>>> >>>> at java.util.concurrent.FutureTask.report(Unknown Source) >>>> >>>> at java.util.concurrent.FutureTask.get(Unknown Source) >>>> >>>> at org.ndexbio.task.NdexTaskExecutor.call( >>>> NdexTaskExecutor.java:69) >>>> >>>> at org.ndexbio.task.NdexTaskExecutor.call( >>>> NdexTaskExecutor.java:32) >>>> >>>> at java.util.concurrent.FutureTask.run(Unknown Source) >>>> >>>> at java.util.concurrent.Executors$RunnableAdapter.call(Unknown >>>> Source) >>>> >>>> at java.util.concurrent.FutureTask.run(Unknown Source) >>>> >>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown >>>> Source) >>>> >>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown >>>> Source) >>>> >>>> at java.lang.Thread.run(Unknown Source) >>>> >>>> Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded >>>> >>>> java.util.concurrent.ExecutionException: java.lang.Exception: Error >>>> occured when executing task. java.lang.OutOfMemoryError: GC overhead limit >>>> exceeded >>>> >>>> at java.util.concurrent.FutureTask.report(Unknown Source) >>>> >>>> at java.util.concurrent.FutureTask.get(Unknown Source) >>>> >>>> at org.ndexbio.task.NdexQueuedTaskProcessor.processQueuedTasks( >>>> NdexQueuedTaskProcessor.java:101) >>>> >>>> at org.ndexbio.task.NdexQueuedTaskProcessor.processAll( >>>> NdexQueuedTaskProcessor.java:176) >>>> >>>> at org.ndexbio.rest.services.AdminService.processTasks( >>>> AdminService.java:103) >>>> >>>> at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source) >>>> >>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown >>>> Source) >>>> >>>> at java.lang.reflect.Method.invoke(Unknown Source) >>>> >>>> at org.jboss.resteasy.core.MethodInjectorImpl.invoke( >>>> MethodInjectorImpl.java:137) >>>> >>>> at org.jboss.resteasy.core.ResourceMethodInvoker. >>>> invokeOnTarget(ResourceMethodInvoker.java:296) >>>> >>>> at org.jboss.resteasy.core.ResourceMethodInvoker.invoke( >>>> ResourceMethodInvoker.java:250) >>>> >>>> at org.jboss.resteasy.core.ResourceMethodInvoker.invoke( >>>> ResourceMethodInvoker.java:237) >>>> >>>> at org.jboss.resteasy.core.SynchronousDispatcher.invoke( >>>> SynchronousDispatcher.java:356) >>>> >>>> at org.jboss.resteasy.core.SynchronousDispatcher.invoke( >>>> SynchronousDispatcher.java:179) >>>> >>>> at org.jboss.resteasy.plugins.server.servlet. >>>> ServletContainerDispatcher.service(ServletContainerDispatcher.java:220) >>>> >>>> at org.jboss.resteasy.plugins.server.servlet. >>>> HttpServletDispatcher.service(HttpServletDispatcher.java:56) >>>> >>>> at org.jboss.resteasy.plugins.server.servlet. >>>> HttpServletDispatcher.service(HttpServletDispatcher.java:51) >>>> >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain. >>>> internalDoFilter(ApplicationFilterChain.java:303) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter( >>>> ApplicationFilterChain.java:208) >>>> >>>> at org.apache.tomcat.websocket.server.WsFilter.doFilter( >>>> WsFilter.java:52) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain. >>>> internalDoFilter(ApplicationFilterChain.java:241) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter( >>>> ApplicationFilterChain.java:208) >>>> >>>> at org.apache.catalina.core.StandardWrapperValve.invoke( >>>> StandardWrapperValve.java:220) >>>> >>>> at org.apache.catalina.core.StandardContextValve.invoke( >>>> StandardContextValve.java:122) >>>> >>>> at org.apache.catalina.authenticator.AuthenticatorBase.invoke( >>>> AuthenticatorBase.java:501) >>>> >>>> at org.apache.catalina.core.StandardHostValve.invoke( >>>> StandardHostValve.java:171) >>>> >>>> at org.apache.catalina.valves.ErrorReportValve.invoke( >>>> ErrorReportValve.java:103) >>>> >>>> at org.apache.catalina.valves.AccessLogValve.invoke( >>>> AccessLogValve.java:950) >>>> >>>> at org.apache.catalina.core.StandardEngineValve.invoke( >>>> StandardEngineValve.java:116) >>>> >>>> at org.apache.catalina.connector.CoyoteAdapter.service( >>>> CoyoteAdapter.java:408) >>>> >>>> at org.apache.coyote.http11.AbstractHttp11Processor.process( >>>> AbstractHttp11Processor.java:1070) >>>> >>>> at org.apache.coyote.AbstractProtocol$ >>>> AbstractConnectionHandler.process(AbstractProtocol.java:611) >>>> >>>> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor. >>>> run(JIoEndpoint.java:314) >>>> >>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown >>>> Source) >>>> >>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown >>>> Source) >>>> >>>> ... 1 more >>>> >>>> java.lang.IllegalStateException: this writer hit an OutOfMemoryError; >>>> cannot commit >>>> >>>> at org.apache.lucene.index.IndexWriter.prepareCommitInternal( >>>> IndexWriter.java:2842) >>>> >>>> at org.apache.lucene.index.IndexWriter.commitInternal( >>>> IndexWriter.java:3022) >>>> >>>> at org.apache.lucene.index.IndexWriter.commit( >>>> IndexWriter.java:2989) >>>> >>>> at com.orientechnologies.lucene.manager. >>>> OLuceneIndexManagerAbstract.commit(OLuceneIndexManagerAbstract. >>>> java:118) >>>> >>>> at com.orientechnologies.lucene.OLuceneIndexEngine.closeDb( >>>> OLuceneIndexEngine.java:139) >>>> >>>> at com.orientechnologies.orient.core.index.OIndexAbstract. >>>> onClose(OIndexAbstract.java:802) >>>> >>>> at com.orientechnologies.orient.core.db.record. >>>> ODatabaseRecordAbstract.callOnCloseListeners( >>>> ODatabaseRecordAbstract.java:1536) >>>> >>>> at com.orientechnologies.orient.core.db.document. >>>> ODatabaseDocumentTxPooled.close(ODatabaseDocumentTxPooled.java:112) >>>> >>>> at org.ndexbio.common.access.NdexDatabase.close( >>>> NdexDatabase.java:82) >>>> >>>> at org.ndexbio.rest.services.AdminService.processTasks( >>>> AdminService.java:109) >>>> >>>> at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source) >>>> >>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown >>>> Source) >>>> >>>> at java.lang.reflect.Method.invoke(Unknown Source) >>>> >>>> at org.jboss.resteasy.core.MethodInjectorImpl.invoke( >>>> MethodInjectorImpl.java:137) >>>> >>>> at org.jboss.resteasy.core.ResourceMethodInvoker. >>>> invokeOnTarget(ResourceMethodInvoker.java:296) >>>> >>>> at org.jboss.resteasy.core.ResourceMethodInvoker.invoke( >>>> ResourceMethodInvoker.java:250) >>>> >>>> at org.jboss.resteasy.core.ResourceMethodInvoker.invoke( >>>> ResourceMethodInvoker.java:237) >>>> >>>> at org.jboss.resteasy.core.SynchronousDispatcher.invoke( >>>> SynchronousDispatcher.java:356) >>>> >>>> at org.jboss.resteasy.core.SynchronousDispatcher.invoke( >>>> SynchronousDispatcher.java:179) >>>> >>>> at org.jboss.resteasy.plugins.server.servlet. >>>> ServletContainerDispatcher.service(ServletContainerDispatcher.java:220) >>>> >>>> at org.jboss.resteasy.plugins.server.servlet. >>>> HttpServletDispatcher.service(HttpServletDispatcher.java:56) >>>> >>>> at org.jboss.resteasy.plugins.server.servlet. >>>> HttpServletDispatcher.service(HttpServletDispatcher.java:51) >>>> >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain. >>>> internalDoFilter(ApplicationFilterChain.java:303) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter( >>>> ApplicationFilterChain.java:208) >>>> >>>> at org.apache.tomcat.websocket.server.WsFilter.doFilter( >>>> WsFilter.java:52) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain. >>>> internalDoFilter(ApplicationFilterChain.java:241) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter( >>>> ApplicationFilterChain.java:208) >>>> >>>> at org.apache.catalina.core.StandardWrapperValve.invoke( >>>> StandardWrapperValve.java:220) >>>> >>>> at org.apache.catalina.core.StandardContextValve.invoke( >>>> StandardContextValve.java:122) >>>> >>>> at org.apache.catalina.authenticator.AuthenticatorBase.invoke( >>>> AuthenticatorBase.java:501) >>>> >>>> at org.apache.catalina.core.StandardHostValve.invoke( >>>> StandardHostValve.java:171) >>>> >>>> at org.apache.catalina.valves.ErrorReportValve.invoke( >>>> ErrorReportValve.java:103) >>>> >>>> at org.apache.catalina.valves.AccessLogValve.invoke( >>>> AccessLogValve.java:950) >>>> >>>> at org.apache.catalina.core.StandardEngineValve.invoke( >>>> StandardEngineValve.java:116) >>>> >>>> at org.apache.catalina.connector.CoyoteAdapter.service( >>>> CoyoteAdapter.java:408) >>>> >>>> at org.apache.coyote.http11.AbstractHttp11Processor.process( >>>> AbstractHttp11Processor.java:1070) >>>> >>>> at org.apache.coyote.AbstractProtocol$ >>>> AbstractConnectionHandler.process(AbstractProtocol.java:611) >>>> >>>> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor. >>>> run(JIoEndpoint.java:314) >>>> >>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown >>>> Source) >>>> >>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown >>>> Source) >>>> >>>> at org.apache.tomcat.util.threads.TaskThread$ >>>> WrappingRunnable.run(TaskThread.java:61) >>>> >>>> at java.lang.Thread.run(Unknown Source) >>>> >>>> java.lang.IllegalStateException: this writer hit an OutOfMemoryError; >>>> cannot commit >>>> >>>> at org.apache.lucene.index.IndexWriter.prepareCommitInternal( >>>> IndexWriter.java:2842) >>>> >>>> at org.apache.lucene.index.IndexWriter.commitInternal( >>>> IndexWriter.java:3022) >>>> >>>> at org.apache.lucene.index.IndexWriter.commit( >>>> IndexWriter.java:2989) >>>> >>>> at com.orientechnologies.lucene.manager. >>>> OLuceneIndexManagerAbstract.commit(OLuceneIndexManagerAbstract. >>>> java:118) >>>> >>>> at com.orientechnologies.lucene.OLuceneIndexEngine.closeDb( >>>> OLuceneIndexEngine.java:139) >>>> >>>> at com.orientechnologies.orient.core.index.OIndexAbstract. >>>> onClose(OIndexAbstract.java:802) >>>> >>>> at com.orientechnologies.orient.core.db.record. >>>> ODatabaseRecordAbstract.callOnCloseListeners( >>>> ODatabaseRecordAbstract.java:1536) >>>> >>>> at com.orientechnologies.orient.core.db.document. >>>> ODatabaseDocumentTxPooled.close(ODatabaseDocumentTxPooled.java:112) >>>> >>>> at org.ndexbio.rest.filters.BasicAuthenticationFilter.filter( >>>> BasicAuthenticationFilter.java:75) >>>> >>>> at org.jboss.resteasy.core.ResourceMethodInvoker. >>>> invokeOnTarget(ResourceMethodInvoker.java:264) >>>> >>>> at org.jboss.resteasy.core.ResourceMethodInvoker.invoke( >>>> ResourceMethodInvoker.java:250) >>>> >>>> at org.jboss.resteasy.core.ResourceMethodInvoker.invoke( >>>> ResourceMethodInvoker.java:237) >>>> >>>> at org.jboss.resteasy.core.SynchronousDispatcher.invoke( >>>> SynchronousDispatcher.java:356) >>>> >>>> at org.jboss.resteasy.core.SynchronousDispatcher.invoke( >>>> SynchronousDispatcher.java:179) >>>> >>>> at org.jboss.resteasy.plugins.server.servlet. >>>> ServletContainerDispatcher.service(ServletContainerDispatcher.java:220) >>>> >>>> at org.jboss.resteasy.plugins.server.servlet. >>>> HttpServletDispatcher.service(HttpServletDispatcher.java:56) >>>> >>>> at org.jboss.resteasy.plugins.server.servlet. >>>> HttpServletDispatcher.service(HttpServletDispatcher.java:51) >>>> >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain. >>>> internalDoFilter(ApplicationFilterChain.java:303) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter( >>>> ApplicationFilterChain.java:208) >>>> >>>> at org.apache.tomcat.websocket.server.WsFilter.doFilter( >>>> WsFilter.java:52) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain. >>>> internalDoFilter(ApplicationFilterChain.java:241) >>>> >>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter( >>>> ApplicationFilterChain.java:208) >>>> >>>> at org.apache.catalina.core.StandardWrapperValve.invoke( >>>> StandardWrapperValve.java:220) >>>> >>>> at org.apache.catalina.core.StandardContextValve.invoke( >>>> StandardContextValve.java:122) >>>> >>>> at org.apache.catalina.authenticator.AuthenticatorBase.invoke( >>>> AuthenticatorBase.java:501) >>>> >>>> at org.apache.catalina.core.StandardHostValve.invoke( >>>> StandardHostValve.java:171) >>>> >>>> at org.apache.catalina.valves.ErrorReportValve.invoke( >>>> ErrorReportValve.java:103) >>>> >>>> at org.apache.catalina.valves.AccessLogValve.invoke( >>>> AccessLogValve.java:950) >>>> >>>> at org.apache.catalina.core.StandardEngineValve.invoke( >>>> StandardEngineValve.java:116) >>>> >>>> at org.apache.catalina.connector.CoyoteAdapter.service( >>>> CoyoteAdapter.java:408) >>>> >>>> at org.apache.coyote.http11.AbstractHttp11Processor.process( >>>> AbstractHttp11Processor.java:1070) >>>> >>>> at org.apache.coyote.AbstractProtocol$ >>>> AbstractConnectionHandler.process(AbstractProtocol.java:611) >>>> >>>> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor. >>>> run(JIoEndpoint.java:314) >>>> >>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown >>>> Source) >>>> >>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown >>>> Source) >>>> >>>> at org.apache.tomcat.util.threads.TaskThread$ >>>> WrappingRunnable.run(TaskThread.java:61) >>>> >>>> at java.lang.Thread.run(Unknown Source) >>>> >>>> java.lang.IllegalStateException: this writer hit an OutOfMemoryError; >>>> cannot commit >>>> >>>> at org.apache.lucene.index.IndexWriter.prepareCommitInternal( >>>> IndexWriter.java:2842) >>>> >>>> at org.apache.lucene.index.IndexWriter.commitInternal( >>>> IndexWriter.java:3022) >>>> ... >>>> >>>> >>>> >>>> On Tuesday, December 30, 2014 12:52:50 AM UTC-7, Enrico Risa wrote: >>>>> >>>>> Hi Jin Chen >>>>> >>>>> can you tell me the configuration of your application? >>>>> >>>>> Do you have some log or profiling session? >>>>> >>>>> >>>>> >>>>> 2014-12-30 5:49 GMT+01:00 Jing Chen <jingj...@gmail.com>: >>>>> >>>>>> Hi there, >>>>>> >>>>>> We are using OrientDb 1.7.10 with Orient-Lucene index. We only use >>>>>> lucene text index. We use Orientdb as an embedded server in our web >>>>>> application. The application ran out of memory a few times recently. Our >>>>>> log shows that it was because Lucene can't allocate more memory. Is >>>>>> there a >>>>>> way to estimate the memory footprint of Orientdb-lucene index? When our >>>>>> database grows, does the memory requirement of Lucene index grow as well? >>>>>> >>>>>> Thanks advance for your answers. >>>>>> >>>>>> Jing Chen >>>>>> >>>>>> -- >>>>>> >>>>>> --- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "OrientDB" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to orient-databa...@googlegroups.com. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>> >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "OrientDB" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to orient-databa...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> >> --- >> You received this message because you are subscribed to the Google Groups >> "OrientDB" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to orient-database+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > > --- > You received this message because you are subscribed to the Google Groups > "OrientDB" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to orient-database+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to orient-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.