On 4/14/2011 4:41 PM, Sam Neth wrote:
By "cold" do you mean immediately following a server restart? Is each "cold" run a new Java process? If so, you probably have some class-loader activity in your measurement. A fair bit of the difference is probably an authentication round-trip. Might also be some penalty for DNS resolution. Just a few thoughts.
No, the java process is not restarting - I'm running the queries through a webapp running in a jetty service which stays resident in memory - running the whole time. I think the XCC Session object may even be persistent across requests.

Sometimes, I did restart the ML server in order to guarantee its caches were flushed. More often, I just used new query terms of roughly the same frequency in my corpus so as to get uncached result sets.

Can you provide some more information and/or source code to clarify how you're running the test?
Yes - but perhaps off list? The java part, in particular, is embedded in a large application. To pursue this I think I will need to isolate the java part to a smaller program.

What OS/JDK versions are you running?
Linux (Fedora 11) / JDK 1.6.0_20
Are client and server on the same machine?
No, they are on the same 100MBps LAN, though

Thanks for the follow-up; I'll get back in touch tomorrow (it's getting late here)

,Sam Neth
Lead Engineer
MarkLogic Corporation

On Apr 14, 2011, at 12:52 PM, Mike Sokolov wrote:

I'm working on optimizing some queries on one of our MarkLogic sites
using cq's profiling feature and also looking at query times in our
logs, and they seem oddly out of sync.

The times in our logs are based on wrapping calls to XCC
Session.submitRequest() between calls to Java
System.currentTimeMillis(), so presumably they include some network time
and serialization/deserialization that may be different from what's
shown in cq.

However, the difference is much larger for cold queries (first time run)
then it is for warmed queries, which seems odd since you would expect
that kind of difference (packaging and transmission) to be the same for
warm and cold queries.

A typical set of numbers might be:

cold, cq: 110 ms
warm, cq 10 ms
cold, xcc: 440 ms
warm, xcc: 14 ms

This result is consistent across many queries: it's the rule, so far as
I can tell.

We're using a slightly older XCC (version 4.1.3, I think, and the server
version is 4.1.6). I do plan to upgrade, but this was so odd that I
wanted to make sure I wasn't overlooking something known that could
cause this kind of discrepancy.  Any ideas?

--
Michael Sokolov
Engineering Director
www.ifactory.com <http://www.ifactory.com>

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general


_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to