Skip to Content.
Sympa Menu

perfsonar-dev - Re: [pS-dev] Lookup Service Benchmarking

Subject: perfsonar development work

List archive

Re: [pS-dev] Lookup Service Benchmarking


Chronological Thread 
  • From: Maciej Glowiak <>
  • To: Maciej Glowiak <>
  • Cc: Vedrin Jeliazkov <>, "Jeff W. Boote" <>, Joe Metzger <>, , Roman Lapacz <>
  • Subject: Re: [pS-dev] Lookup Service Benchmarking
  • Date: Fri, 04 Aug 2006 16:03:46 +0200
  • Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA CXBIWXMAAEU1AABFNQF8gVf5AAAAB3RJTUUH1QYQDjo6uEWvwgAAAM5JREFUGNNN0LFqAkEUheGj KRZsfATrvENgYyH4APabxwgWGUUQC99BsNDCInUq7VImbbDZ0kayxBXMuN7jvTuKVh//mZlmQKZ1 EhQ8GAVgZECspEBdWQHRjR70KlgFKkoUaCw3ijSYQ4n5HfBK4a4jDcdDQPol/80Sr9BxZOOL4Fmr Jq8VBx7eopaSPvWGOm67fqol3j1q0XNs7Nk2cs6MU6gPNzf+ZGKQX4Ek8H6rAnFZnXB2vJxJcv8g C2P+WzL4tD+Txc4KydrIkh+eAdo01QbjQ84vAAAAAElFTkSuQmCC
  • Organization: Poznan Supercomputing and Networking Center

Ups... Forgotten attachment... :)
Maciej




Maciej Glowiak napisal(a):
Hi All Testers :)

I prepared an example storage file. It contains FOUR lookup infos:
three MAs (Pionier, ACAD and test one) and one Topology Service
(without data elements).
All together have 202 interfaces (data elements)

The file is too small for testing, but perfect for developing XQueries.

File is attached to this e-mail.

To all XQueries namespaces declaration instructions should be added:

-----------------------------------------------------------------------
declare namespace nmwgt="http://ggf.org/ns/nmwg/topology/2.0/";;
declare namespace nmwg="http://ggf.org/ns/nmwg/base/2.0/";;
declare namespace psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/";;
declare namespace perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/";;
declare namespace netutil="http://ggf.org/ns/nmwg/characteristic/utilization/2.0/";
-----------------------------------------------------------------------

but I omitted them in the examples:

1) get the addresses of services, registered in the LS;

-------------------------------------------------------------------------------
(: get the addresses of services, registered in the LS; :)

for $m in /nmwg:store/nmwg:metadata
let $s := $m/perfsonar:subject/psservice:service
let $accessPoint := $s/psservice:accessPoint
return data($accessPoint)
-------------------------------------------------------------------------------

2) get the addresses of services, registered in the LS and having a given type
(e.g. utilization MA, Hades MA, etc.);


-------------------------------------------------------------------------------
(: get the addresses of services, registered in the LS and having a given type :)
(: e.g. utilization MA, Hades MA, etc. :)

for $m in /nmwg:store/nmwg:metadata
let $s := $m/perfsonar:subject/psservice:service
let $accessPoint := $s/psservice:accessPoint
where contains($s/psservice:serviceType,'MA')
return data($accessPoint)
-------------------------------------------------------------------------------


3) get the addresses of services, registered in the LS, having a given type
and providing info for a given data point (e.g. IP interface address);

-------------------------------------------------------------------------------
(: get the addresses of services, registered in the LS, having a given type :)
(: and providing info for a given data point e.g. IP interface address :)

(: -- with only a part of address :)

for $m in /nmwg:store/nmwg:metadata
let $s := $m/perfsonar:subject/psservice:service
let $accessPoint := $s/psservice:accessPoint
let $d :=
/nmwg:store/nmwg:data[@metadataIdRef=data($m/@id)]

where contains($s/psservice:serviceType,'MA') (: given type :)
and contains($d//nmwgt:ifAddress, '194.141.') (: IP interface address :)

return data($accessPoint)
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
(: get the addresses of services, registered in the LS, having a given type :)
(: and providing info for a given data point e.g. IP interface address :)

(: -- with full address :)

for $m in /nmwg:store/nmwg:metadata
let $s := $m/perfsonar:subject/psservice:service
let $accessPoint := $s/psservice:accessPoint
let $d :=
/nmwg:store/nmwg:data[@metadataIdRef=data($m/@id)]

where contains($s/psservice:serviceType,'MA') (: given type :)
and $d//nmwgt:ifAddress[text()='194.141.252.49'] (: IP interface address :)

return data($accessPoint)
-------------------------------------------------------------------------------



4) get the full list of data points for a given service;

-------------------------------------------------------------------------------
(: get the full list of data points for a given service :)

for $m in /nmwg:store/nmwg:metadata
let $s := $m/perfsonar:subject/psservice:service
let $accessPoint := $s/psservice:accessPoint
let $d :=
/nmwg:store/nmwg:data[@metadataIdRef=data($m/@id)]
let $datas :=
for $i in $d
return <nmwg>{$i/nmwg:metadata}</nmwg>
where contains($s/psservice:serviceType,'MA') (: given type :)
and $datas != ''

return <service><accessPoint>{data($accessPoint)}</accessPoint>{$datas}</service>
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
(: get the full list of data points for a given service :)
(: -- with additional condition for data - IP interface address :)

for $m in /nmwg:store/nmwg:metadata
let $s := $m/perfsonar:subject/psservice:service
let $accessPoint := $s/psservice:accessPoint
let $d :=
/nmwg:store/nmwg:data[@metadataIdRef=data($m/@id)]
let $datas :=
for $i in $d
where contains($i//nmwgt:ifAddress,'10.1.2.3') (: IP interface address :)
return <nmwg>{$i/nmwg:metadata}</nmwg>
where contains($s/psservice:serviceType,'MA') (: given type :)
and $datas != ''

return <service><accessPoint>{data($accessPoint)}</accessPoint>{$datas}</service>
-------------------------------------------------------------------------------


5) get the full list of data points for all registered services;

-------------------------------------------------------------------------------
/
-------------------------------------------------------------------------------

but it shouldn't be used. It returns all database :)

Of course these are only examples. Tags such as <service><accessPoint> and so on may be replaced by NMWG-tags or any others.

Query (1) is mandatory. Query (2) would be perhaps sufficient for making the
current MA.conf in perfsonarUI obsolete. Query (3) would greatly simplify (and
probably make faster) path visualization, because the clients would not have
to query a range of other services for each successive hop. Queries (4) and
(5) might be desirable in some cases (e.g. when drawing maps), but perhaps
they could be run much less often, because of the expected performance impact
on the LS itself.

Vedrin, do you need any other queries that could be useful for the client?

Best regards

Maciej






--

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

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

Attachment: sample.xml.gz
Description: GNU Zip compressed data




Archive powered by MHonArc 2.6.16.

Top of Page