[kepler-dev] [Bug 4362] - component search performance

bugzilla-daemon at ecoinformatics.org bugzilla-daemon at ecoinformatics.org
Wed Oct 7 11:04:02 PDT 2009


http://bugzilla.ecoinformatics.org/show_bug.cgi?id=4362


aschultz at nceas.ucsb.edu changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |swriddle at gmail.com




------- Comment #4 from aschultz at nceas.ucsb.edu  2009-10-07 11:04 -------
I have done some timing analysis of the new component search implementation.

There are 3 stages of the new component search:
1) Searching the Indexed search terms in the SQL table named CACHE_SEARCH and
finding all KeplerLSIDs that match
2) Using the results from 1) to walk through the component library model and
find all of the instances that match the KeplerLSIDs and build the new model
that is to be displayed to the user
3) Refreshing the graphical AnnotatedPTree with the new model that was
generated in stage 2)

Stage 1) turns out to be very fast <10ms
Stage 2) is quite fast <54ms
Stage 3) is where the most time is spent, 87ms for 14 results but up to 5
seconds for 838 results

Stage 3 is currently negatively impacted since the results are individually
displayed, this time should be improved substantially when the results are
merged back into one tree.  I will redo this analysis after remerging the tree.
 Also, 838 results causes a heap overflow exception and essentially crashes
Kepler unless the -Xmx option is set fairly high (80M seems OK).

My conclusion is that this solution for searching components is going to work
fine for now. But our AnnotatedPTree implementation is insufficient for large
tree models.

Below is the output I got on my Macbook pro, these results can be recreated by
uncommenting the ...ComponentLibraryTab=DEBUG line in the kepler module log4j
file and uncommenting the two System.out lines in
SimpleLibrarySearcher.search(String) (approx line 140)

DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:280)
SearchButtonActionHandler.actionPerformed(ActionEvent)
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:291)
Search term is 'sdf'
Index search generated 8 results in 13ms
Model search generated 14 results in 15ms
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:296)
Library search completed in 53ms
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:299)
Library updated in 87ms
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:300)
Total search time was 140ms
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:280)
SearchButtonActionHandler.actionPerformed(ActionEvent)
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:291)
Search term is 'data input'
Index search generated 30 results in 4ms
Model search generated 71 results in 12ms
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:296)
Library search completed in 16ms
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:299)
Library updated in 272ms
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:300)
Total search time was 289ms
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:280)
SearchButtonActionHandler.actionPerformed(ActionEvent)
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:291)
Search term is 'components'
Index search generated 355 results in 5ms
Model search generated 838 results in 54ms
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:296)
Library search completed in 59ms
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:299)
Library updated in 5031ms
DEBUG
(org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler:actionPerformed:300)
Total search time was 5090ms


More information about the Kepler-dev mailing list