Changes between Version 3 and Version 4 of PerformanceEnhancements


Ignore:
Timestamp:
Mar 5, 2010, 7:27:00 AM (14 years ago)
Author:
simonp
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PerformanceEnhancements

    v3 v4  
    3939Addressing the indexing/loading issue: Investigation of this problem led to two issues and two solutions:
    4040
    41  * Speeding up Lucene indexing: !GeoNetwork was opening and closing the Lucene IndexWriter every time it wrote a document to the search index. This is a very safe way to handle the Lucene Index Writer as only one Index Writer can be open. However the IndexWriter class in Lucene is now much more sophisticated than it was when GeoNetwork was first written. In particular, it is thread safe and can buffer documents in RAM before writing them out to the index file on disk with its own thread. To use the IndexWriter in this way without forcing major changes in the !GeoNetwork code, resulted in an IndexWriter facade that allows:
    42 - code that intends to write a number of documents to the Lucene Index to keep the IndexWriter open, and thus take advantage of the more sophisticated IndexWriter implementation
    43 - multiple threads to schedule documents that need to be written to the index without blocking
     41 * Speeding up Lucene indexing: !GeoNetwork was opening and closing the !Lucene !IndexWriter every time it wrote a document to the search index. This is a very safe way to handle the Lucene Index Writer as only one Index Writer can be open. However the !IndexWriter class in !Lucene is now much more sophisticated than it was when !GeoNetwork was first written. In particular, it is thread safe and can buffer documents in RAM before writing them out to the index file on disk with its own thread. To use the !IndexWriter in this way without forcing major changes in the !GeoNetwork code, resulted in an !IndexWriter facade that allows:
     42      * code that intends to write a number of documents to the !Lucene Index to keep the !IndexWriter open, and thus take advantage of the more sophisticated IndexWriter implementation
     43      * multiple threads to schedule documents that need to be written to the index without blocking
    4444   
    45  * Speeding up spatial indexing: GeoNetwork uses a shapefile to hold spatial extents for searches that contain spatial queries eg. touch, intersect, contains, overlap etc. At present only the CSW service uses the spatial index for these queries, the web search interface uses boxes and Lucene.
     45 * Speeding up spatial indexing: !GeoNetwork uses a shapefile to hold spatial extents for searches that contain spatial queries eg. touch, intersect, contains, overlap etc. At present only the CSW service uses the spatial index for these queries, the web search interface uses boxes and Lucene.
    4646
    4747=== Backwards Compatibility Issues ===