You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Geeta Subramanian <gs...@commvault.com> on 2011/03/17 19:58:55 UTC
OOM for large files
Hi,
I am getting OOM after posting a 100 Mb document to SOLR with trace:
Exception in thread "main" org.apache.solr.common.SolrException: Java heap space java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at org.apache.solr.handler.extraction.Solrtik ContentHandler.characters(SolrContentHandler.java:257)
at org.apache.tika.sax.ContentHandlerDecorator.characters(ContentHandlerDecorator.java:124)
at org.apache.tika.sax.SecureContentHandler.characters(SecureContentHandler.java:153)
at org.apache.tika.sax.ContentHandlerDecorator.characters(ContentHandlerDecorator.java:124)
at org.apache.tika.sax.ContentHandlerDecorator.characters(ContentHandlerDecorator.java:124)
at org.apache.tika.sax.SafeContentHandler.access$001(SafeContentHandler.java:39)
at org.apache.tika.sax.SafeContentHandler$1.write(SafeContentHandler.java:61)
at org.apache.tika.sax.SafeContentHandler.filter(SafeContentHandler.java:113)
at org.apache.tika.sax.SafeContentHandler.characters(SafeContentHandler.java:151)
at org.apache.tika.sax.XHTMLContentHandler.characters(XHTMLContentHandler.java:175)
at org.apache.tika.parser.txt.TXTParser.parse(TXTParser.java:144)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:142)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:99)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:112)
at org.apache.solr.handler.extraction.ExtractingDocumentLoader.load(ExtractingDocumentLoader.java:193)
at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:237)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1323)
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:337)
at org.apache.solr.se
I have given 1024M memory.
But still this fails, so, can somebody tell me the minimum heap size required w.r.t. file size so that document get indexed successfully?
Also just a weird question:
In Tika's code, there is a place where char[] is initialized to 4096. Then when this used in StringWriter, if the array is full it does an expandCapacity (as highlighted in logs), there is an array copy operation. So with just 4kb, if I want to process a 100mb document, a lot of char arrays will be generated and we need to depend on GC for getting them cleaned.
Is there any idea, if I change the Tika code to initialize the char array with more than ~4k , will there be any performance improvement?
Thanks for your time,
Regards,
Geeta
******************Legal Disclaimer***************************
"This communication may contain confidential and privileged material
for the sole use of the intended recipient. Any unauthorized review,
use or distribution by others is strictly prohibited. If you have
received the message in error, please advise the sender by reply
email and delete the message. Thank you."
****************************************************************