[PATCH]Multiple threads performance enhancement when querying.
--------------------------------------------------------------

         Key: LUCENE-568
         URL: http://issues.apache.org/jira/browse/LUCENE-568
     Project: Lucene - Java
        Type: Improvement

  Components: Search  
    Versions: 1.9    
 Environment: OS: Red Hat EL 3
Machine: Dual CPUs, 1024M Ram, 100Giga bytes SCSI disks.
Lucene 1.9.1
JVM:JDK1.5.06
    Reporter: Yueyu Lin


This improvement will reduce the wait when TermInfosReader calls 
ensureIndexIsRead().
The small trick like below:
  ....
    private void ensureIndexIsRead() throws IOException {
    if (indexTerms != null)                       // index already read
      return;                                     // do nothing
    synchronized(this){
        System.out.println("Read [EMAIL PROTECTED]@");
        if(indexTerms != null){
            System.out.println ("Someone read it.return-_-");
            return ;
        }
        readIndex ();
    }
  }
 
  private synchronized void readIndex() throws IOException{
      Term[] m_indexTerms = null;
      try {
          int indexSize = (int)indexEnum.size;        // otherwise read index
          m_indexTerms = new Term[indexSize];
          indexInfos = new TermInfo[indexSize];
          indexPointers = new long[indexSize];

          for (int i = 0; indexEnum.next(); i++) {
            m_indexTerms[i] = indexEnum.term();
            indexInfos[i] = indexEnum.termInfo();
            indexPointers[i] = indexEnum.indexPointer;
          }
        } finally {
            indexEnum.close();
            indexEnum = null;
            indexTerms = m_indexTerms;
        }
  }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to