(Sorry for spamming you guys)

See http://wiki.neo4j.org/content/Transactions for general information
about how to manage transactions in Neo4j.

2010/1/29 Mattias Persson <[email protected]>:
> Another problem I see is that you're having too granular transactions
> which will slow down the insertion process quite a bit. Try grouping a
> couple of thousands operations in one transaction and you'll see a
> performance boost!
>
> FYI: I can trigger the problem you were having with lucene "too many
> open files" issue. And I'm almost 100% sure that it will be resolved
> if you increase the span of your transactions.
>
> 2010/1/29 Mattias Persson <[email protected]>:
>> I see that you're not using the Neo4j BatchInserter. Your use case
>> could definately benefit from it. Take a look at
>> http://wiki.neo4j.org/content/Batch_Insert on how to use it. And since
>> you're using index lookups you'll have to keep most of the index in
>> your own HashMap or other cache (instead of going down to index) for
>> maximum performance. (the LuceneIndexBatchInserterImpl doesn't have
>> cache built-in, like the LuceneIndexService does).
>>
>> You typically gain 5 times the speed or more when using the
>> BatchInserter instead of GraphDatabaseService for inserting big data
>> sets.
>>
>> 2010/1/28 Mattias Persson <[email protected]>:
>>> Im sorry but I think your attachment got caught in our mail filters.
>>>
>>> Could you perhaps send me your project (including the entire data file
>>> via some file sending service, f.ex http://sprend.com) and send it to
>>> me directly, [email protected]?
>>>
>>> 2010/1/28, Symeon (Akis) Papadopoulos <[email protected]>:
>>>> ....
>>>>> Great, lucene handles merging in the background automatically if the
>>>>> files are too sharded. So this error shouldn't occur unless there are
>>>>> some corner case where some IndexReader/IndexWriter isn't closed
>>>>> properly... so that's why I'm suspecting a bug here :)
>>>>>
>>>>> Great that you found a work-around, but I suspect it could happen even
>>>>> with a higher ulimit though.
>>>>>
>>>>>> The project I'm running is rather large, but at some point I will try to
>>>>>> prepare a script in order to replicate the error.
>>>>>>
>>>>> That would be great indeed!
>>>>>
>>>> I attach an eclipse project which is an extract from the larger
>>>> benchmark project I have been referring to in my previous emails. You
>>>> can run the class graph.load.LoadGraphBenchmark as a java application to
>>>> see what happens. However, this will not replicate the error in your
>>>> machine, because the test file included in the project is small (the one
>>>> I used when I ran into the error was rather large to send by mail).
>>>> Perhaps you will be able to see what's wrong with the code just by
>>>> reading through it. I suspect that I misuse Neo, but I can't really
>>>> pinpoint the problem.
>>>>
>>>> Thank you in advance for your help!
>>>> Best regards,
>>>> Symeon
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>>
>>>>>>
>>>>>>>>> 2010/1/26 Symeon (Akis) Papadopoulos <[email protected]>:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Hi all
>>>>>>>>>>
>>>>>>>>>> While populating a Neo graph, I got the attached exception
>>>>>>>>>> (org.apache.lucene.index.MergePolicy$MergeException. See file for
>>>>>>>>>> details: I
>>>>>>>>>> replaced a local path with [some-local-path]).
>>>>>>>>>> My setup is like this: I want to benchmark Neo4j for some operations,
>>>>>>>>>> amongst which is graph loading.
>>>>>>>>>> So, I try to load graphs of various sizes to Neo4j. Up to size 1M
>>>>>>>>>> edges the
>>>>>>>>>> graphs are loaded without any problem, but then this exception is
>>>>>>>>>> thrown. I
>>>>>>>>>> suspect this has to do with the transaction management in my program,
>>>>>>>>>> which
>>>>>>>>>> is handled by a BatchTxManager (a class written by me, thus highly
>>>>>>>>>> likely to
>>>>>>>>>> be the source of trouble). Does the exception ring any bells? What
>>>>>>>>>> could I
>>>>>>>>>> try out in order to identify the problem?
>>>>>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>> Akis
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Exception in thread "Lucene Merge Thread #0"
>>>>>>>>>> org.apache.lucene.index.MergePolicy$MergeException:
>>>>>>>>>> java.io.FileNotFoundException: /[some-local-path]/_4k.cfs (Too many
>>>>>>>>>> open
>>>>>>>>>> files)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.ConcurrentMergeScheduler.handleMergeException(ConcurrentMergeScheduler.java:351)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:315)
>>>>>>>>>> Caused by: java.io.FileNotFoundException: /[some-local-path]/_4k.cfs
>>>>>>>>>> (Too
>>>>>>>>>> many open files)
>>>>>>>>>>        at java.io.RandomAccessFile.open(Native Method)
>>>>>>>>>>        at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.store.SimpleFSDirectory$SimpleFSIndexInput$Descriptor.<init>(SimpleFSDirectory.java:78)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.store.SimpleFSDirectory$SimpleFSIndexInput.<init>(SimpleFSDirectory.java:108)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.store.NIOFSDirectory$NIOFSIndexInput.<init>(NIOFSDirectory.java:94)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.store.NIOFSDirectory.openInput(NIOFSDirectory.java:70)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.CompoundFileReader.<init>(CompoundFileReader.java:70)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.SegmentReader$CoreReaders.<init>(SegmentReader.java:111)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.SegmentReader.get(SegmentReader.java:638)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.SegmentReader.get(SegmentReader.java:608)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.IndexWriter$ReaderPool.get(IndexWriter.java:686)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4979)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:4614)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMergeScheduler.java:235)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:291)
>>>>>>>>>> Exception in thread "main"
>>>>>>>>>> org.neo4j.kernel.impl.transaction.TransactionFailureException: Unable
>>>>>>>>>> to
>>>>>>>>>> commit transaction
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.kernel.EmbeddedGraphDbImpl$TransactionImpl.finish(EmbeddedGraphDbImpl.java:331)
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.util.SimpleBatchTxManager.beginReadOperation(SimpleBatchTxManager.java:94)
>>>>>>>>>>        at
>>>>>>>>>> graph.implementation.neo.STSGraphNeoImpl.getUserNeo(STSGraphNeoImpl.java:463)
>>>>>>>>>>        at
>>>>>>>>>> graph.implementation.neo.STSGraphNeoImpl.increaseUserTagFreq(STSGraphNeoImpl.java:824)
>>>>>>>>>>        at
>>>>>>>>>> graph.benchmark.LoadGraphBenchmark.runRealBenchmark(LoadGraphBenchmark.java:433)
>>>>>>>>>>        at
>>>>>>>>>> graph.benchmark.LoadGraphBenchmark.main(LoadGraphBenchmark.java:489)
>>>>>>>>>> Caused by: java.lang.RuntimeException: Unable to close lucene writer
>>>>>>>>>> org.apache.lucene.index.indexwri...@32a4eb93
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.index.lucene.LuceneDataSource.removeWriter(LuceneDataSource.java:413)
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.index.lucene.LuceneTransaction.doCommit(LuceneTransaction.java:197)
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.kernel.impl.transaction.xaframework.XaTransaction.commit(XaTransaction.java:316)
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.commit(XaResourceManager.java:399)
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.kernel.impl.transaction.xaframework.XaResourceHelpImpl.commit(XaResourceHelpImpl.java:64)
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.kernel.impl.transaction.TransactionImpl.doCommit(TransactionImpl.java:514)
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:573)
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:543)
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:102)
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.kernel.EmbeddedGraphDbImpl$TransactionImpl.finish(EmbeddedGraphDbImpl.java:316)
>>>>>>>>>>        ... 5 more
>>>>>>>>>> Caused by: java.io.IOException: directory
>>>>>>>>>> '/[some-local-path]/resource_id'
>>>>>>>>>> exists and is a directory, but cannot be listed: list() returned null
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.store.FSDirectory.listAll(FSDirectory.java:516)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.store.FSDirectory.listAll(FSDirectory.java:531)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.IndexFileDeleter.refresh(IndexFileDeleter.java:307)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.IndexWriter.doFlushInternal(IndexWriter.java:4300)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:4192)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:4183)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.IndexWriter.closeInternal(IndexWriter.java:2190)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.IndexWriter.close(IndexWriter.java:2153)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.lucene.index.IndexWriter.close(IndexWriter.java:2117)
>>>>>>>>>>        at
>>>>>>>>>> org.neo4j.index.lucene.LuceneDataSource.removeWriter(LuceneDataSource.java:409)
>>>>>>>>>>        ... 14 more
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Neo mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Neo mailing list
>>>>>>>> [email protected]
>>>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Neo mailing list
>>>>>> [email protected]
>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Mattias Persson, [[email protected]]
>>> Neo Technology, www.neotechnology.com
>>>
>>
>>
>>
>> --
>> Mattias Persson, [[email protected]]
>> Neo Technology, www.neotechnology.com
>>
>
>
>
> --
> Mattias Persson, [[email protected]]
> Neo Technology, www.neotechnology.com
>



-- 
Mattias Persson, [[email protected]]
Neo Technology, www.neotechnology.com
_______________________________________________
Neo mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to