perfsonar-dev - nmwg: r339 - trunk/nmwg/doc/dLS
Subject: perfsonar development work
List archive
- From:
- To: ,
- Subject: nmwg: r339 - trunk/nmwg/doc/dLS
- Date: Mon, 14 Apr 2008 10:07:57 -0400
Author: zurawski
Date: 2008-04-14 10:07:56 -0400 (Mon, 14 Apr 2008)
New Revision: 339
Modified:
trunk/nmwg/doc/dLS/dLS_spec.html
trunk/nmwg/doc/dLS/dLS_spec.xml
trunk/nmwg/doc/dLS/dLS_spec_1.html
Log:
Adding open questions, correcting some examples.
-jason
Modified: trunk/nmwg/doc/dLS/dLS_spec.html
===================================================================
--- trunk/nmwg/doc/dLS/dLS_spec.html 2008-04-08 14:21:03 UTC (rev 338)
+++ trunk/nmwg/doc/dLS/dLS_spec.html 2008-04-14 14:07:56 UTC (rev 339)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta
http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title>Distributed Lookup Service (dLS) in the perfSONAR
Framework</title><meta name="generator" content="DocBook XSL Stylesheets
V1.71.0" /></head><body><div class="article" lang="en" xml:lang="en"><div
class="titlepage"><div><div><h1 class="title"><a
id="id2478927"></a>Distributed Lookup Service (dLS) in the perfSONAR
Framework</h1></div><div><div class="authorgroup"><div class="author"><h3
class="author"><span class="firstname">J.</span> <span
class="surname">Boote</span></h3></div><div class="author"><h3
class="author"><span class="firstname">M.</span> <span
class="surname">Glowiak</span></h3></div><div class="author"><h3
class="author"><span class="firstname">M.</span> <span
class="surname">Swany</span></h3></div><div class="author"><h3
class="author"><span class="firstname">J.</span> <span
class="surname">Zurawski</span></h3></div></div></div><div><p cl
ass="copyright">Copyright © 2006, 2007, 2008 Internet2, Poznan
Supercomputing and Networking Center, University of
Delaware</p></div></div><hr /></div><div class="toc"><p><b>Table of
Contents</b></p><dl><dt><span class="section"><a href="#changes">1. Document
Changes</a></span></dt><dt><span class="section"><a href="#introduction">2.
Introduction</a></span></dt><dt><span class="section"><a
href="#system_specific_operation">3. System Specific
Operation</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_overview">3.1. Overview</a></span></dt><dt><span
class="section"><a href="#system_scope">3.2. Scope
Formation</a></span></dt><dd><dl><dt><span class="section"><a
href="#scope_specification">3.2.1. Scope
Specification</a></span></dt><dt><span class="section"><a
href="#scope_hierarchy">3.2.2. Scope Hierarchy</a></span></dt><dt><span
class="section"><a href="#scope_defaults">3.2.3. Scope
Defaults</a></span></dt><dt><span class="section"><a href="#scope_algorithms">
3.2.4. Scope Algorithms</a></span></dt><dd><dl><dt><span cla!
ss="sect
ion"><a href="#join_procedure">3.2.4.1. Join
Procedure</a></span></dt><dd><dl><dt><span class="section"><a
href="#join_alg">3.2.4.1.1.
Algorithm</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#token_messages">3.2.5. Token Messages for Control and
Election</a></span></dt><dd><dl><dt><span class="section"><a
href="#leader_election">3.2.5.1. Leader Election</a></span></dt><dt><span
class="section"><a href="#registration_control">3.2.5.2. Registration
Control</a></span></dt><dd><dl><dt><span class="section"><a
href="#passing_algorithm">3.2.5.2.1. Passing
Algorithm</a></span></dt><dt><span class="section"><a
href="#rotation_time_computation">3.2.5.2.2. Rotation Time
Computation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#summarization_messages">3.2.6. Summarization
Messages</a></span></dt></dl></dd><dt><span class="section"><a
href="#bootstrapping">3.3. Bootstrapping</a></span></dt><dt><span
class="section"><a href="#system_summari
zation">3.4. Summarization</a></span></dt><dd><dl><dt><span
class="section"><a href="#system_summarization_lower">3.4.1. Lower
Scope</a></span></dt><dt><span class="section"><a
href="#system_summarization_upper">3.4.2. Upper
Scope</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_summarization_upper_alg">3.4.2.1. IP Address
Algorithm</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#system_search">3.5. Search</a></span></dt><dd><dl><dt><span
class="section"><a href="#system_search_discovery_phase">3.5.1. Discovery
Phase</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_search_discovery_algorithm">3.5.1.1.
Algorithm</a></span></dt></dl></dd><dt><span class="section"><a
href="#system_search_metadata_query_phase">3.5.2. Metadata Query
Phase</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#structures_and_messages">4. Structures and
Messages</a></span></dt><dd><dl><dt><span class="section"><a href="#servic
e_metadata">4.1. Service Metadata Example</a></span></dt><dt!
><span c
lass="section"><a href="#lookup_info">4.2. Lookup
Information</a></span></dt><dt><span class="section"><a href="#ls_ring">4.3.
LS Ring File Structure</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_ring_lower">4.3.1. Lower Level</a></span></dt><dt><span
class="section"><a href="#ls_ring_upper">4.3.2. Upper
Level</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_join">4.4. LS Join</a></span></dt><dd><dl><dt><span
class="section"><a href="#ls_join_request">4.4.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_join_response">4.4.2. Response</a></span></dt></dl></dd><dt><span
class="section"><a href="#ls_updatetoken">4.5. LS
UpdateToken</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_updatetoken_request">4.5.1. Request</a></span></dt><dt><span
class="section"><a href="#ls_updatetoken_response">4.5.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_token_message">4.6. LS Token Message</a></span></dt>
<dd><dl><dt><span class="section"><a href="#ls_token_message_request">4.6.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_token_message_response">4.6.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_summary_message">4.7. LS Summary
Message</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_upper">4.7.1.
Upper</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_upper_request">4.7.1.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_summary_message_upper_response">4.7.1.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_summary_message_lower">4.7.2.
Lower</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_lower_request">4.7.2.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_summary_message_lower_response">4.7.2.2.
Response</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#ls_leade
r_message">4.8. LS Leader Message</a></span></dt><dd><dl><dt!
><span c
lass="section"><a href="#ls_leader_message_request">4.8.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_leader_message_response">4.8.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_discovery_message">4.9. LS Discovery
Message</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_discovery_message_request">4.9.1. Request</a></span></dt><dt><span
class="section"><a href="#ls_discovery_message_response">4.9.2.
Response</a></span></dt></dl></dd></dl></dd><dt><span class="glossary"><a
href="#glossary">Terms</a></span></dt><dt><span class="bibliography"><a
href="#bibliography">References</a></span></dt></dl></div><div
class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2
class="title" style="clear: both"><a id="changes"></a>1. Document
Changes</h2></div></div></div><div class="table"><a id="table.1"></a><p
class="title"><b>Table 1. Change Log</b></p><div
class="table-contents"><table summary="Change Log"
border="1"><colgroup><col align="left" /></colgroup><thead><tr><th
align="left">Version</th><th align="left">Date</th><th
align="left">Description</th><th
align="left">Author(s)</th></tr></thead><tbody><tr><td
align="left">1.0</td><td align="left">12/17/2007</td><td align="left">Initial
Preparation</td><td align="left">J. Zurawski</td></tr><tr><td
align="left">1.1</td><td align="left">1/1/2008</td><td align="left">Update of
Scope Formation and boot-strapping</td><td align="left">J.
Boote</td></tr><tr><td align="left">1.0</td><td align="left">1/7/2008</td><td
align="left">Addition/Correction of scope diagrams</td><td align="left">J.
Zurawski</td></tr></tbody></table></div></div><br class="table-break"
/></div><div class="section" lang="en" xml:lang="en"><div
class="titlepage"><div><div><h2 class="title" style="clear: both"><a
id="introduction"></a>2. Introduction</h2></div></div></div><p>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta
http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title>Distributed Lookup Service (dLS) in the perfSONAR
Framework</title><meta name="generator" content="DocBook XSL Stylesheets
V1.71.0" /></head><body><div class="article" lang="en" xml:lang="en"><div
class="titlepage"><div><div><h1 class="title"><a
id="id2478927"></a>Distributed Lookup Service (dLS) in the perfSONAR
Framework</h1></div><div><div class="authorgroup"><div class="author"><h3
class="author"><span class="firstname">J.</span> <span
class="surname">Boote</span></h3></div><div class="author"><h3
class="author"><span class="firstname">M.</span> <span
class="surname">Glowiak</span></h3></div><div class="author"><h3
class="author"><span class="firstname">M.</span> <span
class="surname">Swany</span></h3></div><div class="author"><h3
class="author"><span class="firstname">J.</span> <span
class="surname">Zurawski</span></h3></div></div></div><div><p cl
ass="copyright">Copyright © 2006, 2007, 2008 Internet2, Poznan
Supercomputing and Networking Center, University of
Delaware</p></div></div><hr /></div><div class="toc"><p><b>Table of
Contents</b></p><dl><dt><span class="section"><a href="#changes">1. Document
Changes</a></span></dt><dt><span class="section"><a href="#introduction">2.
Introduction</a></span></dt><dt><span class="section"><a
href="#system_specific_operation">3. System Specific
Operation</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_overview">3.1. Overview</a></span></dt><dt><span
class="section"><a href="#system_scope">3.2. Scope
Formation</a></span></dt><dd><dl><dt><span class="section"><a
href="#scope_specification">3.2.1. Scope
Specification</a></span></dt><dt><span class="section"><a
href="#scope_hierarchy">3.2.2. Scope Hierarchy</a></span></dt><dt><span
class="section"><a href="#scope_defaults">3.2.3. Scope
Defaults</a></span></dt><dt><span class="section"><a href="#scope_algorithms">
3.2.4. Scope Algorithms</a></span></dt><dd><dl><dt><span cla!
ss="sect
ion"><a href="#join_procedure">3.2.4.1. Join
Procedure</a></span></dt><dd><dl><dt><span class="section"><a
href="#join_alg">3.2.4.1.1.
Algorithm</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#token_messages">3.2.5. Token Messages for Control and
Election</a></span></dt><dd><dl><dt><span class="section"><a
href="#leader_election">3.2.5.1. Leader Election</a></span></dt><dt><span
class="section"><a href="#registration_control">3.2.5.2. Registration
Control</a></span></dt><dd><dl><dt><span class="section"><a
href="#passing_algorithm">3.2.5.2.1. Passing
Algorithm</a></span></dt><dt><span class="section"><a
href="#rotation_time_computation">3.2.5.2.2. Rotation Time
Computation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#summarization_messages">3.2.6. Summarization
Messages</a></span></dt></dl></dd><dt><span class="section"><a
href="#bootstrapping">3.3. Bootstrapping</a></span></dt><dt><span
class="section"><a href="#system_summari
zation">3.4. Summarization</a></span></dt><dd><dl><dt><span
class="section"><a href="#system_summarization_lower">3.4.1. Lower
Scope</a></span></dt><dt><span class="section"><a
href="#system_summarization_upper">3.4.2. Upper
Scope</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_summarization_upper_alg">3.4.2.1. IP Address
Algorithm</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#system_search">3.5. Search</a></span></dt><dd><dl><dt><span
class="section"><a href="#system_search_discovery_phase">3.5.1. Discovery
Phase</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_search_discovery_algorithm">3.5.1.1.
Algorithm</a></span></dt></dl></dd><dt><span class="section"><a
href="#system_search_metadata_query_phase">3.5.2. Metadata Query
Phase</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#structures_and_messages">4. Structures and
Messages</a></span></dt><dd><dl><dt><span class="section"><a href="#servic
e_metadata">4.1. Service Metadata Example</a></span></dt><dt!
><span c
lass="section"><a href="#lookup_info">4.2. Lookup
Information</a></span></dt><dt><span class="section"><a href="#ls_ring">4.3.
LS Ring File Structure</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_ring_lower">4.3.1. Lower Level</a></span></dt><dt><span
class="section"><a href="#ls_ring_upper">4.3.2. Upper
Level</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_join">4.4. LS Join</a></span></dt><dd><dl><dt><span
class="section"><a href="#ls_join_request">4.4.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_join_response">4.4.2. Response</a></span></dt></dl></dd><dt><span
class="section"><a href="#ls_updatetoken">4.5. LS
UpdateToken</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_updatetoken_request">4.5.1. Request</a></span></dt><dt><span
class="section"><a href="#ls_updatetoken_response">4.5.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_token_message">4.6. LS Token Message</a></span></dt>
<dd><dl><dt><span class="section"><a href="#ls_token_message_request">4.6.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_token_message_response">4.6.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_summary_message">4.7. LS Summary
Message</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_upper">4.7.1.
Upper</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_upper_request">4.7.1.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_summary_message_upper_response">4.7.1.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_summary_message_lower">4.7.2.
Lower</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_lower_request">4.7.2.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_summary_message_lower_response">4.7.2.2.
Response</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#ls_leade
r_message">4.8. LS Leader Message</a></span></dt><dd><dl><dt!
><span c
lass="section"><a href="#ls_leader_message_request">4.8.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_leader_message_response">4.8.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_discovery_message">4.9. LS Discovery
Message</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_discovery_message_request">4.9.1. Request</a></span></dt><dt><span
class="section"><a href="#ls_discovery_message_response">4.9.2.
Response</a></span></dt></dl></dd></dl></dd><dt><span class="glossary"><a
href="#glossary">Terms</a></span></dt><dt><span class="bibliography"><a
href="#bibliography">References</a></span></dt></dl></div><div
class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2
class="title" style="clear: both"><a id="changes"></a>1. Document
Changes</h2></div></div></div><div class="table"><a id="table.1"></a><p
class="title"><b>Table 1. Change Log</b></p><div
class="table-contents"><table summary="Change Log"
border="1"><colgroup><col align="left" /></colgroup><thead><tr><th
align="left">Version</th><th align="left">Date</th><th
align="left">Description</th><th
align="left">Author(s)</th></tr></thead><tbody><tr><td
align="left">1.0</td><td align="left">12/17/2007</td><td align="left">Initial
Preparation</td><td align="left">J. Zurawski</td></tr><tr><td
align="left">1.1</td><td align="left">1/1/2008</td><td align="left">Update of
Scope Formation and boot-strapping</td><td align="left">J.
Boote</td></tr><tr><td align="left">1.0</td><td align="left">1/7/2008</td><td
align="left">Addition/Correction of scope diagrams</td><td align="left">J.
Zurawski</td></tr><tr><td align="left">1.0</td><td
align="left">4/14/2008</td><td align="left">Adding open questions, filling in
more blanks</td><td align="left">J.
Zurawski</td></tr></tbody></table></div></div><br class="table-break"
/></div><div class="section" lang="en" xml:lang="en"><div
class="titlepage"><div><div><h2 class="title" style="cl
ear: both"><a id="introduction"></a>2. Introduction</h2></d!
iv></div
></div><p>
This document describes the
<span class="emphasis"><em>Distributed Lookup Service</em></span>
(<span><strong class="command">dLS</strong></span>)
- in the <a href="#id2533141">perfSONAR</a> system. This modification
extends
+ in the <a href="#id2533326">perfSONAR</a> system. This modification
extends
the basic <span class="emphasis"><em>Lookup Service</em></span>
(<span><strong class="command">LS</strong></span>)
functionality that has been present in the system for some time. The
basic LS supports the storage and querying of
@@ -66,7 +66,7 @@
<a href="#lookup_info">Lookup Information</a>).
</p><p>
The idea is to move the metadata from a service-local
- <a href="#id2533159">XML</a> data store to a specialized
+ <a href="#id2533344">XML</a> data store to a specialized
<span><strong class="command">LS</strong></span> with additional
searching capabilities. The
<span><strong class="command">LS</strong></span> consists of an
XML database, (i.e.
<a href="#Berkeley DB XML">Berkeley DB XML</a> or <a
href="#eXist XML DB">eXist XML DB</a>)
@@ -1454,6 +1454,17 @@
The response message contains result code
</p><pre class="programlisting">
+ <nmwg:message type="LSControlRequest">
+
+ <nmwg:metadata id="metadata.6">
+ <nmwg:eventType>some type</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:data id="data.6" metadataIdRef="metadata.6">
+ <nmwgr:datum value="some sort of message?">
+ </nmwg:data>
+
+ </nmwg:message>
</pre></div></div><div class="section" lang="en"
xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a
id="ls_token_message"></a>4.6. LS Token Message</h3></div></div></div><p>
This message exchange represents the token that is passed between
@@ -1780,7 +1791,13 @@
<nmwg:message type="LSControlRequest">
- <!-- tbd -->
+ <nmwg:metadata id="metadata.6">
+ <nmwg:eventType>some type</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:data id="data.6" metadataIdRef="metadata.6">
+ <nmwgr:datum value="some sort of message?">
+ </nmwg:data>
</nmwg:message>
@@ -1796,8 +1813,21 @@
<nmwg:message type="LSDiscoveryRequest">
<nmwg:metadata id="metadata.1">
+ <summary:subject>
+
+ <!-- some topology goo? -->
+
+ </summary:subject>
+ <nmwg:eventType>some et1</nmwg:eventType>
+ <nmwg:eventType>some et2</nmwg:eventType>
+ <nmwg:parameters>
+ <nmwg:parameter name="" value="" />
+
+ <!-- encode everything as parameters? -->
+
+ </nmwg:parameters>
+
- <!-- WHAT DO I LOOK LIKE?!? -->
<!-- I should have syntax to query for the combination
of eventType and topology. Some amount of wild-carding
should be available as well. (i.e. I'm interested in
@@ -1824,26 +1854,20 @@
<nmwg:message type="LSDiscoveryResponse">
- <nmwg:metadata id="metadata.1.r">
+ <!-- possible event types (make uri's) for metadata here
are:
+ <nmwg:eventType>referral</nmwg:eventType>
+ <nmwg:eventType>authoratative</nmwg:eventType>
+ <nmwg:eventType>error-codes...</nmwg:eventType>
+ -->
- <!-- possible event types (make uri's) for metadata
here are:
+<!-- we should have (both)? a refereal and an authoratiative section for
+ each request (when applicable) -->
- <nmwg:eventType>referral</nmwg:eventType>
- <nmwg:eventType>authoratative</nmwg:eventType>
+ <nmwg:metadata id="metadata.1.r">
+ <nmwg:eventType>referral</nmwg:eventType>
+ </nmwg:metadata>
- <nmwg:eventType>error-codes...</nmwg:eventType>
-
- </nmwg:metadata>
-
<nmwg:data id="data.1.r" metadataIdRef="metadata.1.r">
-
- <!-- for failure: -->
- <nmwgr:datum value="some message" />
-
-
- <!-- for authoratative and/or referral
- list out the psservice info for each LS -->
-
<nmwg:metadata id="metadata.6">
<perfsonar:subject id="subject.6">
<psservice:service id="service.6">
@@ -1854,9 +1878,34 @@
</psservice:service>
</perfsonar:subject>
</nmwg:metadata>
-
+
+ <!-- perhaps some more... -->
+
</nmwg:data>
+
+ <nmwg:metadata id="metadata.2.r">
+ <nmwg:eventType>authoratative</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:data id="data.2.r" metadataIdRef="metadata.2.r">
+ <nmwg:metadata id="metadata.9">
+ <perfsonar:subject id="subject.9">
+ <psservice:service id="service.9">
+ <psservice:serviceName>Internet2 LS
#9</psservice:serviceName>
+
<psservice:accessPoint>http://latrobe.internet2.edu:8081/perfSONAR_PS/services/LS</psservice:accessPoint>
+
<psservice:serviceType>LS</psservice:serviceType>
+
<psservice:serviceDescription>...</psservice:serviceDescription>
+ </psservice:service>
+ </perfsonar:subject>
+ </nmwg:metadata>
+
+ <!-- perhaps some more... -->
+ </nmwg:data>
+
+
+
+
</nmwg:message>
</pre></div></div></div><div class="glossary"><div
class="titlepage"><div><div><h2 class="title"><a
id="glossary"></a>Terms</h2></div></div></div><div class="glossdiv"><h3
class="title">A</h3><dl><dt><a id=""></a></dt><dd><p>
@@ -1890,8 +1939,8 @@
A query language (with some programming language
features) that is designed to query collections of XML data. It
is semantically similar to SQL.
- </p></dd></dl></div><div class="glossdiv"><dl></dl></div><div
class="glossdiv"><dl></dl></div></div><div class="bibliography"><div
class="titlepage"><div><div><h2 class="title"><a
id="bibliography"></a>References</h2></div></div></div><div
class="biblioentry"><a id="id2533141"></a><p>[<abbr
class="abbrev">perfSONAR</abbr>] <span class="title"><i>
+ </p></dd></dl></div><div class="glossdiv"><dl></dl></div><div
class="glossdiv"><dl></dl></div></div><div class="bibliography"><div
class="titlepage"><div><div><h2 class="title"><a
id="bibliography"></a>References</h2></div></div></div><div
class="biblioentry"><a id="id2533326"></a><p>[<abbr
class="abbrev">perfSONAR</abbr>] <span class="title"><i>
<a href="http://www.perfsonar.net" target="_top">perfSONAR</a>
- </i>. </span></p></div><div class="biblioentry"><a
id="id2533159"></a><p>[<abbr class="abbrev">XML</abbr>] <span
class="title"><i>
+ </i>. </span></p></div><div class="biblioentry"><a
id="id2533344"></a><p>[<abbr class="abbrev">XML</abbr>] <span
class="title"><i>
<a href="http://www.w3.org/XML" target="_top">Extensible Markup
Language (XML)</a>
</i>. </span></p></div></div></div></body></html>
Modified: trunk/nmwg/doc/dLS/dLS_spec.xml
===================================================================
--- trunk/nmwg/doc/dLS/dLS_spec.xml 2008-04-08 14:21:03 UTC (rev 338)
+++ trunk/nmwg/doc/dLS/dLS_spec.xml 2008-04-14 14:07:56 UTC (rev 339)
@@ -75,6 +75,12 @@
<entry>Addition/Correction of scope diagrams</entry>
<entry>J. Zurawski</entry>
</row>
+ <row>
+ <entry>1.0</entry>
+ <entry>4/14/2008</entry>
+ <entry>Adding open questions, filling in more blanks</entry>
+ <entry>J. Zurawski</entry>
+ </row>
</tbody>
</tgroup>
</table>
@@ -167,6 +173,17 @@
<emphasis>bootstrapping</emphasis> protocol to find the
appropriate
<command>LS</command> server(s) to interact with.
</para>
+
+<!--
+XXX Jason 4/14
+
+Does this paragraph imply that the configured value of the LS (service
+configuration) is dictating the scope of the service? We have it stated that
+the other way around (scope dicates LS choice) is the case.
+
+Is there some other configuration that will be needed? What
+happens if a service chooses the wrong LS (or is that not possible)?
+-->
<para>
The initial information flow happens when a general
@@ -327,6 +344,19 @@
</programlisting>
</para>
+<!--
+XXX Jason 4/14
+
+An example to verify I understand this, whould this be the proper ranking?
+
+ psls://perfsonar.net/
+ psls://perfsonar.net/1
+ psls://perfsonar.net/2
+ psls://perfsonar.net/1/1
+ psls://1.perfsonar.net/
+ psls://1.perfsonar.net/1
+-->
+
<para>
To traverse up to the parent
<emphasis>Scope</emphasis> level, the following steps
@@ -372,6 +402,14 @@
</orderedlist>
</para>
+<!--
+XXX Jason 4/14
+
+ Who specifies these? Is this something that is entered directly into a
+ configuration file? How are we sure its 'right'? what happens when someone
+ lies? Is there any check to be sure it is right?
+-->
+
<para>
When configuring a new <command>LS</command> instance the
the following steps can be used to define child
@@ -419,6 +457,14 @@
<section id="scope_hierarchy" xreflabel="Scope Hierarchy">
<title>Scope Hierarchy</title>
+
+<!--
+XXX Jason 4/14
+
+I would claim its entirely determined by configuration if anyone gets to
specify
+the scope, is anything dynamic?
+-->
+
<para>
The hierarchy of <command>LS</command> servers is largely
determined by configuration. Each new <command>LS</command>
@@ -445,6 +491,13 @@
</mediaobject>
</para>
+<!--
+XXX Jason 4/14
+
+ What is "intra-summary" sharing? Is this sharing the metadata info with
the
+ very basic summaries (no parameters)?
+-->
+
<para>
Using the above diagram, we can explain how the given
<command>LS</command> instances interact and the roles they
@@ -555,6 +608,14 @@
<section id="scope_defaults" xreflabel="Scope Defaults">
<title>Scope Defaults</title>
+
+<!--
+XXX Jason 4/14
+
+ The example does not appear correct, shouldn't the new LS have the hostname
+ of "ls.rnp.br" if the scope is "psls://perfsonar.net/!psls://ls.rnp.br"?
+-->
+
<para>
The default <emphasis>Scope</emphasis>
<command>SHOULD</command> be determined by appending a URI
@@ -662,6 +723,14 @@
<section id="join_procedure" xreflabel="Join Procedure">
<title>Join Procedure</title>
+<!--
+XXX Jason 4/14
+
+ How will the LS know about peers, are we going with 'guessing' and storing
+ these in the configuration file? Should these be specified in the
'psls://'
+ syntax? Again, what check is there to be sure someone isn't fibbing.
+-->
+
<para>
When an <command>LS</command> instance comes online it
must have some
knowledge of potential peers (both inter and intra
scope). This
@@ -713,6 +782,27 @@
<section id="join_alg" xreflabel="Algorithm">
<title>Algorithm</title>
+<!--
+XXX Jason 4/14
+
+ Does there need to be a token order? Do all peers need to respect this
order?
+ Is it determined in some way?
+
+ Format of leader election token is not specified
+
+ Who is allowed to initiate either token?
+
+ALSO:
+
+ What is the difference between:
+ 'updateToken'
+ 'Token'
+ 'Election token?'
+
+ There needs to be an explanation of each, either that or we loose one (too
+ many that seem to be doing the same task).
+-->
+
<para>
The algorithm for joining a logical group works as
follows. Some
steps have been simplified for the sake of the
diagram. Additional
@@ -876,6 +966,24 @@
<section id="token_messages" xreflabel="Token Messages for Control and
Election">
<title>Token Messages for Control and Election</title>
+<!--
+XXX Jason 4/14
+
+ Format of leader election token is not specified
+
+ Who is allowed to initiate either token?
+
+ALSO:
+
+ What is the difference between:
+ 'updateToken'
+ 'Token'
+ 'Election token?'
+
+ There needs to be an explanation of each, either that or we loose one (too
+ many that seem to be doing the same task).
+-->
+
<para>
When scopes are created, they form themselves into logical groups
around which tokens must be passed. This token passing mechanism
is
@@ -920,6 +1028,12 @@
has been selected and the election terminates.
</para>
+<!--
+XXX Jason 4/14
+
+ Is priority binary or ranking?
+-->
+
<para>
The next question is how to choose the identifier for a given
node.
Using the IP address of the node as the lower-order 32-bits of a
@@ -1156,7 +1270,15 @@
<section id="summarization_messages" xreflabel="Summarization
Messages">
<title>Summarization Messages</title>
-
+
+<!--
+XXX Jason 4/14
+
+ The 'lower' vs 'upper' split is still confusing. Would it may make more
sense
+ to specify the scope as a part of the peer definition (only if the previous
+ questions about defining your own scope are true)?
+-->
+
<para>
<xref linkend="system_summarization_lower" /> and
<xref linkend="system_summarization_upper" /> contain examples of
the
@@ -1272,6 +1394,15 @@
<section id="system_summarization_lower" xreflabel="Lower Scope">
<title>Lower Scope</title>
+
+<!--
+XXX Jason 4/14
+
+ Isn't lower scope ALWAYS going to consist of the local services that
register
+ to you + other services in the same boat + a potentially received summary
+ that you will need to incorporate into your own summary (I can't envision
the
+ multiple levels, so this description is a huge problem for me).
+-->
<para>
The lower scope summarization, described here as information
exchange
@@ -1531,6 +1662,15 @@
<section id="system_search_discovery_phase" xreflabel="Discovery
Phase">
<title>Discovery Phase</title>
+<!--
+XXX Jason 4/14
+ Discovery messages need work...
+
+ Why is it necessary to include the Authoritative LS in the query, aren't we
+ we looking for that information?
+
+-->
+
<para>
The discovery phase is used to locate the set of Authoritative
<command>LS</command> (or <command>LS</command>s) for a given
@@ -1546,6 +1686,14 @@
<section id="system_search_discovery_algorithm"
xreflabel="Algorithm">
<title>Algorithm</title>
+<!--
+XXX Jason 4/14
+
+ Not specified in response message what the referral/authoritative need to
+ look like. Aren't these basically the same thing anyway except there is
+ a marker saying 'authoritative', I don't see why they are separate.
+-->
+
<para>
The discovery algorithm is as follows.
</para>
@@ -1826,6 +1974,14 @@
<section id="ls_ring" xreflabel="LS Ring File Structure">
<title>LS Ring File Structure</title>
+<!--
+XXX Jason 4/14
+
+ Ring structure - is the type for each correct? Do we need this? Couldn't
+ one peers list be used w/ scopes specified internally?
+
+-->
+
<para>
The <command>LSRing</command> file represents the
<emphasis>state</emphasis> of the <command>LS</command> cloud at a
@@ -2095,6 +2251,13 @@
<section id="ls_updatetoken_request" xreflabel="Request">
<title>Request</title>
+
+<!--
+XXX Jason 4/14
+
+ What do all of these parameters mean in the request message? these should
+ be explained somewhere.
+-->
<para>
The request should contain information about new member of the
ring as well as token id, ttl and registrar url.
@@ -2152,6 +2315,11 @@
<section id="ls_updatetoken_response" xreflabel="Response">
<title>Response</title>
+<!--
+XXX Jason 4/14
+
+need a response message
+-->
<para>
The response message contains result code
@@ -2159,6 +2327,17 @@
<programlisting>
<![CDATA[
+ <nmwg:message type="LSControlRequest">
+
+ <nmwg:metadata id="metadata.6">
+ <nmwg:eventType>some type</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:data id="data.6" metadataIdRef="metadata.6">
+ <nmwgr:datum value="some sort of message?">
+ </nmwg:data>
+
+ </nmwg:message>
]]>
</programlisting>
@@ -2620,6 +2799,12 @@
<section id="ls_leader_message_response" xreflabel="Response">
<title>Response</title>
+
+<!--
+XXX Jason 4/14
+
+need a response message
+-->
<para>
The response message will contain the results (success or
failure).
@@ -2629,7 +2814,13 @@
<![CDATA[
<nmwg:message type="LSControlRequest">
- <!-- tbd -->
+ <nmwg:metadata id="metadata.6">
+ <nmwg:eventType>some type</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:data id="data.6" metadataIdRef="metadata.6">
+ <nmwgr:datum value="some sort of message?">
+ </nmwg:data>
</nmwg:message>
]]>
@@ -2642,6 +2833,14 @@
<section id="ls_discovery_message" xreflabel="LS Discovery Message">
<title>LS Discovery Message</title>
+<!--
+XXX Jason 4/14
+
+
+needs a lot of work
+
+-->
+
<para>
The discovery message represents the step used to find the
<emphasis>location</emphasis> of information in the distributed
service.
@@ -2661,8 +2860,21 @@
<nmwg:message type="LSDiscoveryRequest">
<nmwg:metadata id="metadata.1">
+ <summary:subject>
+
+ <!-- some topology goo? -->
+
+ </summary:subject>
+ <nmwg:eventType>some et1</nmwg:eventType>
+ <nmwg:eventType>some et2</nmwg:eventType>
+ <nmwg:parameters>
+ <nmwg:parameter name="" value="" />
+
+ <!-- encode everything as parameters? -->
+
+ </nmwg:parameters>
+
- <!-- WHAT DO I LOOK LIKE?!? -->
<!-- I should have syntax to query for the combination
of eventType and topology. Some amount of wild-carding
should be available as well. (i.e. I'm interested in
@@ -2698,26 +2910,20 @@
<![CDATA[
<nmwg:message type="LSDiscoveryResponse">
- <nmwg:metadata id="metadata.1.r">
+ <!-- possible event types (make uri's) for metadata here are:
+ <nmwg:eventType>referral</nmwg:eventType>
+ <nmwg:eventType>authoratative</nmwg:eventType>
+ <nmwg:eventType>error-codes...</nmwg:eventType>
+ -->
- <!-- possible event types (make uri's) for metadata here
are:
+<!-- we should have (both)? a refereal and an authoratiative section for
+ each request (when applicable) -->
- <nmwg:eventType>referral</nmwg:eventType>
- <nmwg:eventType>authoratative</nmwg:eventType>
+ <nmwg:metadata id="metadata.1.r">
+ <nmwg:eventType>referral</nmwg:eventType>
+ </nmwg:metadata>
- <nmwg:eventType>error-codes...</nmwg:eventType>
-
- </nmwg:metadata>
-
<nmwg:data id="data.1.r" metadataIdRef="metadata.1.r">
-
- <!-- for failure: -->
- <nmwgr:datum value="some message" />
-
-
- <!-- for authoratative and/or referral
- list out the psservice info for each LS -->
-
<nmwg:metadata id="metadata.6">
<perfsonar:subject id="subject.6">
<psservice:service id="service.6">
@@ -2728,9 +2934,34 @@
</psservice:service>
</perfsonar:subject>
</nmwg:metadata>
-
+
+ <!-- perhaps some more... -->
+
</nmwg:data>
+
+ <nmwg:metadata id="metadata.2.r">
+ <nmwg:eventType>authoratative</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:data id="data.2.r" metadataIdRef="metadata.2.r">
+ <nmwg:metadata id="metadata.9">
+ <perfsonar:subject id="subject.9">
+ <psservice:service id="service.9">
+ <psservice:serviceName>Internet2 LS
#9</psservice:serviceName>
+
<psservice:accessPoint>http://latrobe.internet2.edu:8081/perfSONAR_PS/services/LS</psservice:accessPoint>
+ <psservice:serviceType>LS</psservice:serviceType>
+
<psservice:serviceDescription>...</psservice:serviceDescription>
+ </psservice:service>
+ </perfsonar:subject>
+ </nmwg:metadata>
+
+ <!-- perhaps some more... -->
+ </nmwg:data>
+
+
+
+
</nmwg:message>
]]>
</programlisting>
Modified: trunk/nmwg/doc/dLS/dLS_spec_1.html
===================================================================
--- trunk/nmwg/doc/dLS/dLS_spec_1.html 2008-04-08 14:21:03 UTC (rev 338)
+++ trunk/nmwg/doc/dLS/dLS_spec_1.html 2008-04-14 14:07:56 UTC (rev 339)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta
http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title>Distributed Lookup Service (dLS) in the perfSONAR
Framework</title><meta name="generator" content="DocBook XSL Stylesheets
V1.71.0" /></head><body><div class="article" lang="en" xml:lang="en"><div
class="titlepage"><div><div><h1 class="title"><a
id="id2478927"></a>Distributed Lookup Service (dLS) in the perfSONAR
Framework</h1></div><div><div class="authorgroup"><div class="author"><h3
class="author"><span class="firstname">J.</span> <span
class="surname">Boote</span></h3></div><div class="author"><h3
class="author"><span class="firstname">M.</span> <span
class="surname">Glowiak</span></h3></div><div class="author"><h3
class="author"><span class="firstname">M.</span> <span
class="surname">Swany</span></h3></div><div class="author"><h3
class="author"><span class="firstname">J.</span> <span
class="surname">Zurawski</span></h3></div></div></div><div><p cl
ass="copyright">Copyright © 2006, 2007, 2008 Internet2, Poznan
Supercomputing and Networking Center, University of
Delaware</p></div></div><hr /></div><div class="toc"><p><b>Table of
Contents</b></p><dl><dt><span class="section"><a href="#changes">1. Document
Changes</a></span></dt><dt><span class="section"><a href="#introduction">2.
Introduction</a></span></dt><dt><span class="section"><a
href="#system_specific_operation">3. System Specific
Operation</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_overview">3.1. Overview</a></span></dt><dt><span
class="section"><a href="#system_scope">3.2. Scope
Formation</a></span></dt><dd><dl><dt><span class="section"><a
href="#scope_specification">3.2.1. Scope
Specification</a></span></dt><dt><span class="section"><a
href="#scope_hierarchy">3.2.2. Scope Hierarchy</a></span></dt><dt><span
class="section"><a href="#scope_defaults">3.2.3. Scope
Defaults</a></span></dt><dt><span class="section"><a href="#scope_algorithms">
3.2.4. Scope Algorithms</a></span></dt><dd><dl><dt><span cla!
ss="sect
ion"><a href="#join_procedure">3.2.4.1. Join
Procedure</a></span></dt><dd><dl><dt><span class="section"><a
href="#join_alg">3.2.4.1.1.
Algorithm</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#token_messages">3.2.5. Token Messages for Control and
Election</a></span></dt><dd><dl><dt><span class="section"><a
href="#leader_election">3.2.5.1. Leader Election</a></span></dt><dt><span
class="section"><a href="#registration_control">3.2.5.2. Registration
Control</a></span></dt><dd><dl><dt><span class="section"><a
href="#passing_algorithm">3.2.5.2.1. Passing
Algorithm</a></span></dt><dt><span class="section"><a
href="#rotation_time_computation">3.2.5.2.2. Rotation Time
Computation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#summarization_messages">3.2.6. Summarization
Messages</a></span></dt></dl></dd><dt><span class="section"><a
href="#bootstrapping">3.3. Bootstrapping</a></span></dt><dt><span
class="section"><a href="#system_summari
zation">3.4. Summarization</a></span></dt><dd><dl><dt><span
class="section"><a href="#system_summarization_lower">3.4.1. Lower
Scope</a></span></dt><dt><span class="section"><a
href="#system_summarization_upper">3.4.2. Upper
Scope</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_summarization_upper_alg">3.4.2.1. IP Address
Algorithm</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#system_search">3.5. Search</a></span></dt><dd><dl><dt><span
class="section"><a href="#system_search_discovery_phase">3.5.1. Discovery
Phase</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_search_discovery_algorithm">3.5.1.1.
Algorithm</a></span></dt></dl></dd><dt><span class="section"><a
href="#system_search_metadata_query_phase">3.5.2. Metadata Query
Phase</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#structures_and_messages">4. Structures and
Messages</a></span></dt><dd><dl><dt><span class="section"><a href="#servic
e_metadata">4.1. Service Metadata Example</a></span></dt><dt!
><span c
lass="section"><a href="#lookup_info">4.2. Lookup
Information</a></span></dt><dt><span class="section"><a href="#ls_ring">4.3.
LS Ring File Structure</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_ring_lower">4.3.1. Lower Level</a></span></dt><dt><span
class="section"><a href="#ls_ring_upper">4.3.2. Upper
Level</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_join">4.4. LS Join</a></span></dt><dd><dl><dt><span
class="section"><a href="#ls_join_request">4.4.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_join_response">4.4.2. Response</a></span></dt></dl></dd><dt><span
class="section"><a href="#ls_updatetoken">4.5. LS
UpdateToken</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_updatetoken_request">4.5.1. Request</a></span></dt><dt><span
class="section"><a href="#ls_updatetoken_response">4.5.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_token_message">4.6. LS Token Message</a></span></dt>
<dd><dl><dt><span class="section"><a href="#ls_token_message_request">4.6.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_token_message_response">4.6.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_summary_message">4.7. LS Summary
Message</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_upper">4.7.1.
Upper</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_upper_request">4.7.1.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_summary_message_upper_response">4.7.1.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_summary_message_lower">4.7.2.
Lower</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_lower_request">4.7.2.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_summary_message_lower_response">4.7.2.2.
Response</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#ls_leade
r_message">4.8. LS Leader Message</a></span></dt><dd><dl><dt!
><span c
lass="section"><a href="#ls_leader_message_request">4.8.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_leader_message_response">4.8.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_discovery_message">4.9. LS Discovery
Message</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_discovery_message_request">4.9.1. Request</a></span></dt><dt><span
class="section"><a href="#ls_discovery_message_response">4.9.2.
Response</a></span></dt></dl></dd></dl></dd><dt><span class="glossary"><a
href="#glossary">Terms</a></span></dt><dt><span class="bibliography"><a
href="#bibliography">References</a></span></dt></dl></div><div
class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2
class="title" style="clear: both"><a id="changes"></a>1. Document
Changes</h2></div></div></div><div class="table"><a id="table.1"></a><p
class="title"><b>Table 1. Change Log</b></p><div
class="table-contents"><table summary="Change Log"
border="1"><colgroup><col align="left" /></colgroup><thead><tr><th
align="left">Version</th><th align="left">Date</th><th
align="left">Description</th><th
align="left">Author(s)</th></tr></thead><tbody><tr><td
align="left">1.0</td><td align="left">12/17/2007</td><td align="left">Initial
Preparation</td><td align="left">J. Zurawski</td></tr><tr><td
align="left">1.1</td><td align="left">1/1/2008</td><td align="left">Update of
Scope Formation and boot-strapping</td><td align="left">J.
Boote</td></tr><tr><td align="left">1.0</td><td align="left">1/7/2008</td><td
align="left">Addition/Correction of scope diagrams</td><td align="left">J.
Zurawski</td></tr></tbody></table></div></div><br class="table-break"
/></div><div class="section" lang="en" xml:lang="en"><div
class="titlepage"><div><div><h2 class="title" style="clear: both"><a
id="introduction"></a>2. Introduction</h2></div></div></div><p>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta
http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title>Distributed Lookup Service (dLS) in the perfSONAR
Framework</title><meta name="generator" content="DocBook XSL Stylesheets
V1.71.0" /></head><body><div class="article" lang="en" xml:lang="en"><div
class="titlepage"><div><div><h1 class="title"><a
id="id2478927"></a>Distributed Lookup Service (dLS) in the perfSONAR
Framework</h1></div><div><div class="authorgroup"><div class="author"><h3
class="author"><span class="firstname">J.</span> <span
class="surname">Boote</span></h3></div><div class="author"><h3
class="author"><span class="firstname">M.</span> <span
class="surname">Glowiak</span></h3></div><div class="author"><h3
class="author"><span class="firstname">M.</span> <span
class="surname">Swany</span></h3></div><div class="author"><h3
class="author"><span class="firstname">J.</span> <span
class="surname">Zurawski</span></h3></div></div></div><div><p cl
ass="copyright">Copyright © 2006, 2007, 2008 Internet2, Poznan
Supercomputing and Networking Center, University of
Delaware</p></div></div><hr /></div><div class="toc"><p><b>Table of
Contents</b></p><dl><dt><span class="section"><a href="#changes">1. Document
Changes</a></span></dt><dt><span class="section"><a href="#introduction">2.
Introduction</a></span></dt><dt><span class="section"><a
href="#system_specific_operation">3. System Specific
Operation</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_overview">3.1. Overview</a></span></dt><dt><span
class="section"><a href="#system_scope">3.2. Scope
Formation</a></span></dt><dd><dl><dt><span class="section"><a
href="#scope_specification">3.2.1. Scope
Specification</a></span></dt><dt><span class="section"><a
href="#scope_hierarchy">3.2.2. Scope Hierarchy</a></span></dt><dt><span
class="section"><a href="#scope_defaults">3.2.3. Scope
Defaults</a></span></dt><dt><span class="section"><a href="#scope_algorithms">
3.2.4. Scope Algorithms</a></span></dt><dd><dl><dt><span cla!
ss="sect
ion"><a href="#join_procedure">3.2.4.1. Join
Procedure</a></span></dt><dd><dl><dt><span class="section"><a
href="#join_alg">3.2.4.1.1.
Algorithm</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#token_messages">3.2.5. Token Messages for Control and
Election</a></span></dt><dd><dl><dt><span class="section"><a
href="#leader_election">3.2.5.1. Leader Election</a></span></dt><dt><span
class="section"><a href="#registration_control">3.2.5.2. Registration
Control</a></span></dt><dd><dl><dt><span class="section"><a
href="#passing_algorithm">3.2.5.2.1. Passing
Algorithm</a></span></dt><dt><span class="section"><a
href="#rotation_time_computation">3.2.5.2.2. Rotation Time
Computation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#summarization_messages">3.2.6. Summarization
Messages</a></span></dt></dl></dd><dt><span class="section"><a
href="#bootstrapping">3.3. Bootstrapping</a></span></dt><dt><span
class="section"><a href="#system_summari
zation">3.4. Summarization</a></span></dt><dd><dl><dt><span
class="section"><a href="#system_summarization_lower">3.4.1. Lower
Scope</a></span></dt><dt><span class="section"><a
href="#system_summarization_upper">3.4.2. Upper
Scope</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_summarization_upper_alg">3.4.2.1. IP Address
Algorithm</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#system_search">3.5. Search</a></span></dt><dd><dl><dt><span
class="section"><a href="#system_search_discovery_phase">3.5.1. Discovery
Phase</a></span></dt><dd><dl><dt><span class="section"><a
href="#system_search_discovery_algorithm">3.5.1.1.
Algorithm</a></span></dt></dl></dd><dt><span class="section"><a
href="#system_search_metadata_query_phase">3.5.2. Metadata Query
Phase</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#structures_and_messages">4. Structures and
Messages</a></span></dt><dd><dl><dt><span class="section"><a href="#servic
e_metadata">4.1. Service Metadata Example</a></span></dt><dt!
><span c
lass="section"><a href="#lookup_info">4.2. Lookup
Information</a></span></dt><dt><span class="section"><a href="#ls_ring">4.3.
LS Ring File Structure</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_ring_lower">4.3.1. Lower Level</a></span></dt><dt><span
class="section"><a href="#ls_ring_upper">4.3.2. Upper
Level</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_join">4.4. LS Join</a></span></dt><dd><dl><dt><span
class="section"><a href="#ls_join_request">4.4.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_join_response">4.4.2. Response</a></span></dt></dl></dd><dt><span
class="section"><a href="#ls_updatetoken">4.5. LS
UpdateToken</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_updatetoken_request">4.5.1. Request</a></span></dt><dt><span
class="section"><a href="#ls_updatetoken_response">4.5.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_token_message">4.6. LS Token Message</a></span></dt>
<dd><dl><dt><span class="section"><a href="#ls_token_message_request">4.6.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_token_message_response">4.6.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_summary_message">4.7. LS Summary
Message</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_upper">4.7.1.
Upper</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_upper_request">4.7.1.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_summary_message_upper_response">4.7.1.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_summary_message_lower">4.7.2.
Lower</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_summary_message_lower_request">4.7.2.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_summary_message_lower_response">4.7.2.2.
Response</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a
href="#ls_leade
r_message">4.8. LS Leader Message</a></span></dt><dd><dl><dt!
><span c
lass="section"><a href="#ls_leader_message_request">4.8.1.
Request</a></span></dt><dt><span class="section"><a
href="#ls_leader_message_response">4.8.2.
Response</a></span></dt></dl></dd><dt><span class="section"><a
href="#ls_discovery_message">4.9. LS Discovery
Message</a></span></dt><dd><dl><dt><span class="section"><a
href="#ls_discovery_message_request">4.9.1. Request</a></span></dt><dt><span
class="section"><a href="#ls_discovery_message_response">4.9.2.
Response</a></span></dt></dl></dd></dl></dd><dt><span class="glossary"><a
href="#glossary">Terms</a></span></dt><dt><span class="bibliography"><a
href="#bibliography">References</a></span></dt></dl></div><div
class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2
class="title" style="clear: both"><a id="changes"></a>1. Document
Changes</h2></div></div></div><div class="table"><a id="table.1"></a><p
class="title"><b>Table 1. Change Log</b></p><div
class="table-contents"><table summary="Change Log"
border="1"><colgroup><col align="left" /></colgroup><thead><tr><th
align="left">Version</th><th align="left">Date</th><th
align="left">Description</th><th
align="left">Author(s)</th></tr></thead><tbody><tr><td
align="left">1.0</td><td align="left">12/17/2007</td><td align="left">Initial
Preparation</td><td align="left">J. Zurawski</td></tr><tr><td
align="left">1.1</td><td align="left">1/1/2008</td><td align="left">Update of
Scope Formation and boot-strapping</td><td align="left">J.
Boote</td></tr><tr><td align="left">1.0</td><td align="left">1/7/2008</td><td
align="left">Addition/Correction of scope diagrams</td><td align="left">J.
Zurawski</td></tr><tr><td align="left">1.0</td><td
align="left">4/14/2008</td><td align="left">Adding open questions, filling in
more blanks</td><td align="left">J.
Zurawski</td></tr></tbody></table></div></div><br class="table-break"
/></div><div class="section" lang="en" xml:lang="en"><div
class="titlepage"><div><div><h2 class="title" style="cl
ear: both"><a id="introduction"></a>2. Introduction</h2></d!
iv></div
></div><p>
This document describes the
<span class="emphasis"><em>Distributed Lookup Service</em></span>
(<span><strong class="command">dLS</strong></span>)
- in the <a href="#id2533141">perfSONAR</a> system. This modification
extends
+ in the <a href="#id2533326">perfSONAR</a> system. This modification
extends
the basic <span class="emphasis"><em>Lookup Service</em></span>
(<span><strong class="command">LS</strong></span>)
functionality that has been present in the system for some time. The
basic LS supports the storage and querying of
@@ -66,7 +66,7 @@
<a href="#lookup_info">Lookup Information</a>).
</p><p>
The idea is to move the metadata from a service-local
- <a href="#id2533159">XML</a> data store to a specialized
+ <a href="#id2533344">XML</a> data store to a specialized
<span><strong class="command">LS</strong></span> with additional
searching capabilities. The
<span><strong class="command">LS</strong></span> consists of an
XML database, (i.e.
<a href="#Berkeley DB XML">Berkeley DB XML</a> or <a
href="#eXist XML DB">eXist XML DB</a>)
@@ -1454,6 +1454,17 @@
The response message contains result code
</p><pre class="programlisting">
+ <b style="color:blue"><nmwg:message</b><b
style="color:green"> type="LSControlRequest"</b><b style="color:blue">></b>
+
+ <b style="color:blue"><nmwg:metadata</b><b
style="color:green"> id="metadata.6"</b><b style="color:blue">></b>
+ <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>some type<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
+ <b style="color:blue"></nmwg:metadata</b><b
style="color:green"></b><b style="color:blue">></b>
+
+ <b style="color:blue"><nmwg:data</b><b style="color:green">
id="data.6" metadataIdRef="metadata.6"</b><b style="color:blue">></b>
+ <b style="color:blue"><nmwgr:datum</b><b
style="color:green"> value="some sort of message?"</b><b
style="color:blue">></b>
+ <b style="color:blue"></nmwg:data</b><b
style="color:green"></b><b style="color:blue">></b>
+
+ <b style="color:blue"></nmwg:message</b><b
style="color:green"></b><b style="color:blue">></b>
</pre></div></div><div class="section" lang="en"
xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a
id="ls_token_message"></a>4.6. LS Token Message</h3></div></div></div><p>
This message exchange represents the token that is passed between
@@ -1780,7 +1791,13 @@
<b style="color:blue"><nmwg:message</b><b
style="color:green"> type="LSControlRequest"</b><b style="color:blue">></b>
- <b style="color:blue"><!--</b><b style="color:green"> tbd
--</b><b style="color:blue">></b>
+ <b style="color:blue"><nmwg:metadata</b><b
style="color:green"> id="metadata.6"</b><b style="color:blue">></b>
+ <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>some type<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
+ <b style="color:blue"></nmwg:metadata</b><b
style="color:green"></b><b style="color:blue">></b>
+
+ <b style="color:blue"><nmwg:data</b><b style="color:green">
id="data.6" metadataIdRef="metadata.6"</b><b style="color:blue">></b>
+ <b style="color:blue"><nmwgr:datum</b><b
style="color:green"> value="some sort of message?"</b><b
style="color:blue">></b>
+ <b style="color:blue"></nmwg:data</b><b
style="color:green"></b><b style="color:blue">></b>
<b style="color:blue"></nmwg:message</b><b
style="color:green"></b><b style="color:blue">></b>
@@ -1796,8 +1813,21 @@
<b style="color:blue"><nmwg:message</b><b
style="color:green"> type="LSDiscoveryRequest"</b><b
style="color:blue">></b>
<b style="color:blue"><nmwg:metadata</b><b
style="color:green"> id="metadata.1"</b><b style="color:blue">></b>
+ <b style="color:blue"><summary:subject</b><b
style="color:green"></b><b style="color:blue">></b>
+
+ <b style="color:blue"><!--</b><b style="color:green">
some topology goo? --</b><b style="color:blue">></b>
+
+ <b style="color:blue"></summary:subject</b><b
style="color:green"></b><b style="color:blue">></b>
+ <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>some et1<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
+ <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>some et2<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
+ <b style="color:blue"><nmwg:parameters</b><b
style="color:green"></b><b style="color:blue">></b>
+ <b style="color:blue"><nmwg:parameter</b><b
style="color:green"> name="" value="" /</b><b style="color:blue">></b>
+
+ <b style="color:blue"><!--</b><b style="color:green">
encode everything as parameters? --</b><b style="color:blue">></b>
+
+ <b style="color:blue"></nmwg:parameters</b><b
style="color:green"></b><b style="color:blue">></b>
+
- <b style="color:blue"><!--</b><b style="color:green">
WHAT DO I LOOK LIKE?!? --</b><b style="color:blue">></b>
<!-- I should have syntax to query for the combination
of eventType and topology. Some amount of wild-carding
should be available as well. (i.e. I'm interested in
@@ -1824,26 +1854,20 @@
<b style="color:blue"><nmwg:message</b><b
style="color:green"> type="LSDiscoveryResponse"</b><b
style="color:blue">></b>
- <b style="color:blue"><nmwg:metadata</b><b
style="color:green"> id="metadata.1.r"</b><b style="color:blue">></b>
+ <!-- possible event types (make uri's) for metadata here
are:
+ <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>referral<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
+ <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>authoratative<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
+ <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>error-codes...<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
+ -->
- <!-- possible event types (make uri's) for metadata
here are:
+<!-- we should have (both)? a refereal and an authoratiative section for
+ each request (when applicable) -->
- <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>referral<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
- <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>authoratative<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
+ <b style="color:blue"><nmwg:metadata</b><b
style="color:green"> id="metadata.1.r"</b><b style="color:blue">></b>
+ <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>referral<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
+ <b style="color:blue"></nmwg:metadata</b><b
style="color:green"></b><b style="color:blue">></b>
- <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>error-codes...<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
-
- <b style="color:blue"></nmwg:metadata</b><b
style="color:green"></b><b style="color:blue">></b>
-
<b style="color:blue"><nmwg:data</b><b style="color:green">
id="data.1.r" metadataIdRef="metadata.1.r"</b><b style="color:blue">></b>
-
- <b style="color:blue"><!--</b><b style="color:green"> for
failure: --</b><b style="color:blue">></b>
- <b style="color:blue"><nmwgr:datum</b><b
style="color:green"> value="some message" /</b><b style="color:blue">></b>
-
-
- <!-- for authoratative and/or referral
- list out the psservice info for each LS -->
-
<b style="color:blue"><nmwg:metadata</b><b
style="color:green"> id="metadata.6"</b><b style="color:blue">></b>
<b style="color:blue"><perfsonar:subject</b><b
style="color:green"> id="subject.6"</b><b style="color:blue">></b>
<b style="color:blue"><psservice:service</b><b
style="color:green"> id="service.6"</b><b style="color:blue">></b>
@@ -1854,9 +1878,34 @@
<b style="color:blue"></psservice:service</b><b
style="color:green"></b><b style="color:blue">></b>
<b style="color:blue"></perfsonar:subject</b><b
style="color:green"></b><b style="color:blue">></b>
<b style="color:blue"></nmwg:metadata</b><b
style="color:green"></b><b style="color:blue">></b>
-
+
+ <b style="color:blue"><!--</b><b style="color:green">
perhaps some more... --</b><b style="color:blue">></b>
+
<b style="color:blue"></nmwg:data</b><b
style="color:green"></b><b style="color:blue">></b>
+
+ <b style="color:blue"><nmwg:metadata</b><b
style="color:green"> id="metadata.2.r"</b><b style="color:blue">></b>
+ <b style="color:blue"><nmwg:eventType</b><b
style="color:green"></b><b style="color:blue">></b>authoratative<b
style="color:blue"></nmwg:eventType</b><b style="color:green"></b><b
style="color:blue">></b>
+ <b style="color:blue"></nmwg:metadata</b><b
style="color:green"></b><b style="color:blue">></b>
+
+ <b style="color:blue"><nmwg:data</b><b style="color:green">
id="data.2.r" metadataIdRef="metadata.2.r"</b><b style="color:blue">></b>
+ <b style="color:blue"><nmwg:metadata</b><b
style="color:green"> id="metadata.9"</b><b style="color:blue">></b>
+ <b style="color:blue"><perfsonar:subject</b><b
style="color:green"> id="subject.9"</b><b style="color:blue">></b>
+ <b style="color:blue"><psservice:service</b><b
style="color:green"> id="service.9"</b><b style="color:blue">></b>
+ <b style="color:blue"><psservice:serviceName</b><b
style="color:green"></b><b style="color:blue">></b>Internet2 LS #9<b
style="color:blue"></psservice:serviceName</b><b
style="color:green"></b><b style="color:blue">></b>
+ <b style="color:blue"><psservice:accessPoint</b><b
style="color:green"></b><b
style="color:blue">></b>http://latrobe.internet2.edu:8081/perfSONAR_PS/services/LS<b
style="color:blue"></psservice:accessPoint</b><b
style="color:green"></b><b style="color:blue">></b>
+ <b style="color:blue"><psservice:serviceType</b><b
style="color:green"></b><b style="color:blue">></b>LS<b
style="color:blue"></psservice:serviceType</b><b
style="color:green"></b><b style="color:blue">></b>
+ <b
style="color:blue"><psservice:serviceDescription</b><b
style="color:green"></b><b style="color:blue">></b>...<b
style="color:blue"></psservice:serviceDescription</b><b
style="color:green"></b><b style="color:blue">></b>
+ <b style="color:blue"></psservice:service</b><b
style="color:green"></b><b style="color:blue">></b>
+ <b style="color:blue"></perfsonar:subject</b><b
style="color:green"></b><b style="color:blue">></b>
+ <b style="color:blue"></nmwg:metadata</b><b
style="color:green"></b><b style="color:blue">></b>
+
+ <b style="color:blue"><!--</b><b style="color:green">
perhaps some more... --</b><b style="color:blue">></b>
+ <b style="color:blue"></nmwg:data</b><b
style="color:green"></b><b style="color:blue">></b>
+
+
+
+
<b style="color:blue"></nmwg:message</b><b
style="color:green"></b><b style="color:blue">></b>
</pre></div></div></div><div class="glossary"><div
class="titlepage"><div><div><h2 class="title"><a
id="glossary"></a>Terms</h2></div></div></div><div class="glossdiv"><h3
class="title">A</h3><dl><dt><a id=""></a></dt><dd><p>
@@ -1890,8 +1939,8 @@
A query language (with some programming language
features) that is designed to query collections of XML data. It
is semantically similar to SQL.
- </p></dd></dl></div><div class="glossdiv"><dl></dl></div><div
class="glossdiv"><dl></dl></div></div><div class="bibliography"><div
class="titlepage"><div><div><h2 class="title"><a
id="bibliography"></a>References</h2></div></div></div><div
class="biblioentry"><a id="id2533141"></a><p>[<abbr
class="abbrev">perfSONAR</abbr>] <span class="title"><i>
+ </p></dd></dl></div><div class="glossdiv"><dl></dl></div><div
class="glossdiv"><dl></dl></div></div><div class="bibliography"><div
class="titlepage"><div><div><h2 class="title"><a
id="bibliography"></a>References</h2></div></div></div><div
class="biblioentry"><a id="id2533326"></a><p>[<abbr
class="abbrev">perfSONAR</abbr>] <span class="title"><i>
<a href="http://www.perfsonar.net" target="_top">perfSONAR</a>
- </i>. </span></p></div><div class="biblioentry"><a
id="id2533159"></a><p>[<abbr class="abbrev">XML</abbr>] <span
class="title"><i>
+ </i>. </span></p></div><div class="biblioentry"><a
id="id2533344"></a><p>[<abbr class="abbrev">XML</abbr>] <span
class="title"><i>
<a href="http://www.w3.org/XML" target="_top">Extensible Markup
Language (XML)</a>
</i>. </span></p></div></div></div></body></html>
- nmwg: r339 - trunk/nmwg/doc/dLS, svnlog, 04/14/2008
Archive powered by MHonArc 2.6.16.