Hi,
I put debug statements in and found that the bottleneck is actually the database aspect.
The query is against ~11500 XML documents, total size of ~50MB, doing a search for a pair of keywords (using the eXist match-any() extension function) with the first 20 of 160 hits returned:
2005-01-18 20:44:55,297 INFO org.orbeon.oxf.pipeline.InitUtils null - /query - Received request
2005-01-18 20:44:55,366 INFO org.orbeon.oxf.processor.DebugProcessor null - true:
oxf:/query/keyword.xpl, line 85, column 52
The above is the output of the xsl processor dynamically building the query.
2005-01-18 20:44:59,404 INFO org.orbeon.oxf.processor.DebugProcessor null - true:
oxf:/query/keyword.xpl, line 92, column 52
<form>
<starttime>20:44:55.504-08:00</starttime>
<hits>160</hits>
...
<endtime>20:44:59.378-08:00</endtime>
</form>
The above is the output of the xmldb query processor.
2005-01-18 20:45:01,045 INFO org.orbeon.oxf.pipeline.InitUtils null - /query/results - Received request
2005-01-18 20:45:01,589 INFO org.orbeon.oxf.pipeline.InitUtils null - /oxf-theme/carn-layout.cssd - Received request
2005-01-18 20:45:01,609 INFO org.orbeon.oxf.pipeline.InitUtils null - /oxf-theme/carn-layout.cssd - Timing: 20 - Cache hits: 94, fault: 0, adds: 0, success rate: 100%
2005-01-18 20:45:01,966 INFO org.orbeon.oxf.pipeline.InitUtils null - /query/results - Timing: 921 - Cache hits: 326, fault: 7, adds: 7, success rate: 97%
2005-01-18 20:45:01,968 INFO org.orbeon.oxf.pipeline.InitUtils null - /query - Timing: 6671 - Cache hits: 132, fault: 0, adds: 0, success rate: 100%
I have actually encountered this bottleneck with eXist in the past - the problem is that the XMLDB API is not very efficient and the ResourceSet, etc. The fastest eXist API is the REST-style API so I might try hacking something together to see what performance improvements I could get.
Cheers,
Matthew
On Jan 18, 2005, at 5:48 PM, Alessandro Vernet wrote:
--- "Matthew J. Graham" <[EMAIL PROTECTED]> wrote:
tell me about performance. The reason I ask is that I am seeing poor
performance is retrieving results from an internal eXist database: with
timing statements in the XQuery I am sending, the query part takes
about 1s. but the whole process takes over 10s - is the rendering the
problem?
Matthew,
One thing you can do is to insert "debugs" in your XPL code. For instance,
if you are sending a query to a database in a "model.xpl", you can add a
"debug" on the output of the pipeline. This way you will have a message
with a timestamp in your logs. Combining this timestamp, the timestamp on
the initial "request received" message, and the timestamp on the
"Timing:..." message, should give you an idea of where time is being
spent.
Let us know if you find something.
Alex
------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ orbeon-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/orbeon-user
------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ orbeon-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/orbeon-user
