Hi Yonik, Thanks for the NIO suggestion. We are using Linux, but our indexes are NFS mounted. I thought I saw something about problems with NIO and NFS, but am fuzzy on the details.
These results are with Solr 1.2 and I'm wondering if even without the NIO change, upgrading to Solr 1.3 might help. What confuses me is why multiple searchers are locking the prx index file. I would think that searching is a read-only operation. Perhaps we need to change something to tell Solr we aren't updating the index? Tom -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Yonik Seeley Sent: Friday, November 07, 2008 8:25 PM To: solr-user@lucene.apache.org Cc: Farber, Phillip Subject: Re: Solr locking issue? BLOCKED on lock=org.apache.lucene.store.FSDirectory Hi Tom, if you're on a non Windows box, could you perhaps try your test on the latest Solr nightly build? We've recently improved this through the use of NIO. -Yonik On Fri, Nov 7, 2008 at 4:23 PM, Burton-West, Tom <[EMAIL PROTECTED]> wrote: > Hello, > > We are testing Solr with a simulation of 30 concurrent users. We are > getting socket timeouts and the thread dump from the admin tool shows > about 100+ threads with a similar message about a lock. (Message > appended below). > > We supsect this may have something to do with one or more phrase > queries containing common terms since our index is very large and we > suspect one or more very large segments of the position index need to > be read into memory. > > Can someone point us to either the possible cause of this problem or > what we might change to reduce/eliminate it? > > Tom > > Tom Burton-West > Information Retrieval Programmer > Digital Library Production Services > University of Michigan Library > [EMAIL PROTECTED] > > ---------- > > 'http-8080-Processor54' Id=71, BLOCKED on > [EMAIL PROTECTED] > 47 , total cpu time=2070.0000ms user time=1460.0000ms at > org.apache.lucene.store.FSDirectory$FSIndexInput.readInternal(FSDirect > or > y.java:532) > at > org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.j > av > a:93) > at > org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput > .j > ava:34) > at org.apache.lucene.store.IndexInput.readVInt(IndexInput.java:57) > at > org.apache.lucene.index.SegmentTermPositions.readDeltaPosition(Segment > Te > rmPositions.java:70) > at > org.apache.lucene.index.SegmentTermPositions.nextPosition(SegmentTermP > os > itions.java:66) > at > org.apache.lucene.search.PhrasePositions.nextPosition(PhrasePositions. > ja > va:76) > at > org.apache.lucene.search.ExactPhraseScorer.phraseFreq(ExactPhraseScorer. > java:45) > at org.apache.lucene.search.PhraseScorer.doNext(PhraseScorer.java:94) > at org.apache.lucene.search.PhraseScorer.next(PhraseScorer.java:81) > at org.apache.lucene.search.Scorer.score(Scorer.java:48) > at > org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:146) > at org.apache.lucene.search.Searcher.search(Searcher.java:118) > at org.apache.lucene.search.Searcher.search(Searcher.java:97) > at > org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher. > java:888) > at > org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher > .j > ava:805) > at > org.apache.solr.search.SolrIndexSearcher.getDocList(SolrIndexSearcher. > ja > va:698) > at > org.apache.solr.request.StandardRequestHandler.handleRequestBody(Stand > ar > dRequestHandler.java:122) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandle > rB > ase.java:77) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:658) > at > org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter. > ja > va:191) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter > .j > ava:159) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > ca > tionFilterChain.java:215) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lt > erChain.java:188) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVa > lv > e.java:213) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextVa > lv > e.java:174) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:5 > 48 > ) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.ja > va > :127) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.ja > va > :117) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. > java:108) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java > :1 > 74) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java: > 87 > 4) > at > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.pr > oc > essConnection(Http11BaseProtocol.java:665) > at > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoi > nt > .java:528) > at > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFoll > ow > erWorkerThread.java:81) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPo > ol > .java:689) > at java.lang.Thread.run(Thread.java:619) > >