Skip to Content.
Sympa Menu

perfsonar-dev - Lookup Service performance tests (1)

Subject: perfsonar development work

List archive

Lookup Service performance tests (1)


Chronological Thread 
  • From: Maciej Glowiak <>
  • To: Roman Lapacz <>, Loukik Kudarimoti <>, Vedrin Jeliazkov <>, Martin Swany <>, Jason Zurawski <>, Jeff Boote <>, Nicolas Simar <>
  • Cc: Szymon Trocha <>, Eric Boyd <>,
  • Subject: Lookup Service performance tests (1)
  • Date: Tue, 11 Jul 2006 15:25:14 +0200
  • Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA CXBIWXMAAEU1AABFNQF8gVf5AAAAB3RJTUUH1QYQDjo6uEWvwgAAAM5JREFUGNNN0LFqAkEUheGj KRZsfATrvENgYyH4APabxwgWGUUQC99BsNDCInUq7VImbbDZ0kayxBXMuN7jvTuKVh//mZlmQKZ1 EhQ8GAVgZECspEBdWQHRjR70KlgFKkoUaCw3ijSYQ4n5HfBK4a4jDcdDQPol/80Sr9BxZOOL4Fmr Jq8VBx7eopaSPvWGOm67fqol3j1q0XNs7Nk2cs6MU6gPNzf+ZGKQX4Ek8H6rAnFZnXB2vJxJcv8g C2P+WzL4tD+Txc4KydrIkh+eAdo01QbjQ84vAAAAAElFTkSuQmCC
  • Organization: Poznan Supercomputing and Networking Center

Hi,

I made some performance tests of the Lookup Service (running Request Handler without Tomcat)

--------------------------------------------------------------------------

- times are in milliseconds,
- lookup/query functionality was tested
- communication to eXist DB XML by localhost
- RequestHandler time without MessageHandler+ServiceEngine
- RequestHandler time (ca.530ms) is mainly composed of two major
operation times:
-- setting up classes for eXist communication (ca.200ms)
-- converting request to NMWG (ca.300ms) (see 1a)
- MessageHandler time without ServiceEngine time is really small,
because the request containg xquery expression is very simple
- ServiceEngine time is time of LSQueryAction what means that
most of that time is consumed by communication to eXist DB (see 3a)
- there were 572 metadata blocks in the test database collection
- two queries were tested:
-- first one returned identifiers of metadata only
(serialized results took 29KB)
-- second one returned all full metadata blocks
(serialized results took 416KB)
- each query was tested several times. Each first test took a bit longer
time than the others. Probably because of a kind of caching mechanism
inside eXist DB.
- table with results don't contain Axis/Tomcat overhead because
RequestHandler was tested alone, without application server

--------------------------------------------------------------------------

1) First query

QUERY: data(/nmwg:store/nmwg:metadata/@id)
RESULTS: 572 results took 29,346 output bytes
======================================================|
| I | II | III | IV |
======================================================|
1. RequestHandler | 536 | 565 | 545 | 540 |
a)nmwg | 300 | 321 | 301 | 300 |
------------------+--------+--------+--------+--------|
2. MessageHandler | 1 | 1 | 1 | 0 |
------------------+--------+--------+--------+--------|
3. ServiceEngine | 497 | 426 | 405 | 411 |
a) query | 490 | 418 | 398 | 403 |
======================================================|


2) Second query

QUERY: /nmwg:store/nmwg:metadata
RESULTS: 572 results took 416,872 output bytes
======================================================|
| I | II | III | IV |
======================================================|
1. RequestHandler | 543 | 537 | 537 | 545 |
a)nmwg | 298 | 295 | 301 | 307 |
------------------+--------+--------+--------+--------|
2. MessageHandler | 1 | 2 | 1 | 0 |
------------------+--------+--------+--------+--------|
3. ServiceEngine | 2028 | 1786 | 1787 | 1869 |
a) query | 1970 | 1729 | 1728 | 1812 |
======================================================|

--------------------------------------------------------------------------

Conclusions:

1. Queries that produce a lot of result data took more time (what is
obvious of course), so better is to ask LS for smaller set of data

2. For smaller queries one of the most significant times is consumed by
conversion to NMWG. It's unnecessary overhead in this case, because
LSQuery needs only to extract XQuery expression from request. I don't
want to discuss here whether we should remove NMWG or not, but the
fact is that time of such conversion is significant

3. Another significant time (which wasn't measured here directly, sorry)
is initialization of eXist DB XML StorageManager. In Tomcat this
StorageManager is initialized only once.

4. The most significant time is querying the eXist DB server. We can't
speed it up with old StorageManager which uses XML:DB for communi-
cation (default way of communication to DB server from Java), so I
wrote new HTTP access to the DB server which is much faster for
smaller queries. Additional tests will be provided soon, but it's
already on SVN repository

--------------------------------------------------------------------------

Bottlenecks:

Two main bottlenecks (except Axis/Tomcat which wasn't tested this time) are communication to eXist DB by XML:DB API (see conclusions: 3 & 4) and conversion to NMWG (see conclusion: 2).

--------------------------------------------------------------------------

Required improvements:

1. StorageManager (use new HTTP Storage Manager)
2. NMWG (?)



Best regards

Maciej



--

--------------------------------------------------------------------
| Maciej Glowiak Network Research and Development ||
|

Poznan Supercomputing and Networking Center ||
| (+48 61) 858 2024 http://monstera.man.poznan.pl/ ||
====================================================================



Archive powered by MHonArc 2.6.16.

Top of Page