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