<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.reddnet.org/mwiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hunterh</id>
	<title>ReddNet - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.reddnet.org/mwiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hunterh"/>
	<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php/Special:Contributions/Hunterh"/>
	<updated>2026-05-25T04:29:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=Sep_24,_2008&amp;diff=3682</id>
		<title>Sep 24, 2008</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=Sep_24,_2008&amp;diff=3682"/>
		<updated>2008-09-24T15:01:21Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Attending (???) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=REDDnet Collaboration Meeting=&lt;br /&gt;
&lt;br /&gt;
==Coordinates==&lt;br /&gt;
* September 24, 2008 -- 11:00ET/10:00CT/8:00PT &lt;br /&gt;
* Call 510-665-5437 &lt;br /&gt;
* Meeting ID is 7333&lt;br /&gt;
&lt;br /&gt;
==Attending (???) ==&lt;br /&gt;
* Alan, Bobby, Matt and Santi (ACCRE)&lt;br /&gt;
* Martin (Delaware)&lt;br /&gt;
* Hunter, Eduardo (Nevoa)&lt;br /&gt;
* Jim and John (ORNL)&lt;br /&gt;
* Diane and PR (SFASU)&lt;br /&gt;
* Chris, Micah and Terry (UTK)&lt;br /&gt;
* Dan and Paul (Vanderbilt)&lt;br /&gt;
&lt;br /&gt;
==Agenda ==&lt;br /&gt;
&lt;br /&gt;
* FACIT Demo Status (Santi)&lt;br /&gt;
&lt;br /&gt;
* I2 Demo Status (Terry)&lt;br /&gt;
&lt;br /&gt;
* PerfSONAR/Pheobus status (Bobby, Martin)&lt;br /&gt;
** SC08 demo?&lt;br /&gt;
&lt;br /&gt;
* Test distribution of post-Ike data via REDDnet (PR)&lt;br /&gt;
&lt;br /&gt;
* A common code repository?  (Terry)&lt;br /&gt;
&lt;br /&gt;
* New depots at UTK and NC State (Micah/Chris)&lt;br /&gt;
**Depot naming conventions? (Chris)&lt;br /&gt;
&lt;br /&gt;
* Security (Jim)&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=All_Hands_Meeting,_Feb_1,_2008&amp;diff=3252</id>
		<title>All Hands Meeting, Feb 1, 2008</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=All_Hands_Meeting,_Feb_1,_2008&amp;diff=3252"/>
		<updated>2008-02-01T19:41:37Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* 10:45-12:30 --- A Toolbox for Distributed Storage (Part 1) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Agenda for All-Hands==&lt;br /&gt;
&lt;br /&gt;
Meeting Purpose:  &amp;quot;To decide upon a plan of action that will make REDDnet a success.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Meeting will be held at ACCRE at Vanderbilt University&lt;br /&gt;
&lt;br /&gt;
===Morning Session 9-12:30===&lt;br /&gt;
&lt;br /&gt;
====09:00-09:30 --- Meeting Kickoff====&lt;br /&gt;
&lt;br /&gt;
* Summary of the proposal - towards a vision for REDDnet - Terry&lt;br /&gt;
* [http://docdb.accre.vanderbilt.edu/cgi-bin/DocDB/ShowDocument?docid=112 Putting together a plan of action] - Paul&lt;br /&gt;
&lt;br /&gt;
====09:30-10:00 --- Deployment and Operations====&lt;br /&gt;
&lt;br /&gt;
* [[Operations and Deployment|Plan of Work]] - Bobby&lt;br /&gt;
* What should we expect of REDDnet sites? What should they expect of us?&lt;br /&gt;
&lt;br /&gt;
====10:00-10:30 --- Applications====&lt;br /&gt;
* Application Liaison Effort - Plan of Work (Carie Lee)&lt;br /&gt;
* [http://docdb.accre.vanderbilt.edu/cgi-bin/DocDB/ShowDocument?docid=114 Demo Projects and Application Use] - Plans (such as CMS) (Dan)&lt;br /&gt;
&lt;br /&gt;
====10:30-10:45 --- Coffee Break====&lt;br /&gt;
&lt;br /&gt;
====10:45-12:30 --- A Toolbox for Distributed Storage (Part 1)====&lt;br /&gt;
* Data and Directory Services Discussion&lt;br /&gt;
** [[Directory and data management services APIs|Architectural Issues]] - Larry &lt;br /&gt;
** [[How we did things in the tools we developed at UTK]] - Chris&lt;br /&gt;
** [http://docdb.accre.vanderbilt.edu/cgi-bin/DocDB/ShowDocument?docid=115| (Meeting Slides)] [[Check Point|TSSP Status]] - Hunter&lt;br /&gt;
* IBP: [[Presentation information|Current Status and Proposed Extensions]] - Alan&lt;br /&gt;
&lt;br /&gt;
===Lunch 12:30-01:30===&lt;br /&gt;
* Lunch will be provided at the Vanderbilt Commons&lt;br /&gt;
&lt;br /&gt;
===Afternoon Session 1:30-05:00===&lt;br /&gt;
&lt;br /&gt;
====01:30-03:15 --- A Toolbox for Distributed Storage (Part 2)====&lt;br /&gt;
&lt;br /&gt;
* continue discussion listed above.&lt;br /&gt;
&lt;br /&gt;
====03:15-03:30 --- Coffee Break====&lt;br /&gt;
&lt;br /&gt;
====03:30-05:00 --- Close-Out Discussion and Assignments====&lt;br /&gt;
* tasks to be done&lt;br /&gt;
* prioritize tasks&lt;br /&gt;
* build a software diagram? (straw man is at [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=Development_ideas&amp;diff=3251</id>
		<title>Development ideas</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=Development_ideas&amp;diff=3251"/>
		<updated>2008-02-01T19:38:31Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Suggested changes to existing protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Suggested changes to existing protocol =&lt;br /&gt;
&lt;br /&gt;
== Re-order parameters in IBP_STATUS command ==&lt;br /&gt;
The existing IBP v1.4 implementation is:&lt;br /&gt;
&lt;br /&gt;
:''version IBP_STATUS '''RID'''   IBP_ST_INQ password  TIMEOUT \n''&lt;br /&gt;
:''version IBP_STATUS '''RID'''   IBP_ST_CHANGE password  TIMEOUT \n max_hard max_soft max_duration \n''&lt;br /&gt;
:''version IBP_STATUS  IBP_ST_RES  TIMEOUT \n''&lt;br /&gt;
&lt;br /&gt;
Notice that two of the commands have a primary command, ''IBP_STATUS'', a resource ID (''RID''), followed by a sub-command (''IBP_ST_INQ, IBP_ST_CHANGE'') and the last version has no ''RID'', just a sub-command, ''IBP_ST_RES''.  The current implementation can only be parsed by first reading the whole line in and then counting the number of arguments.  The argument count is then used to determine which command is actually being issued.  A more natural version of the commands would always have the sub-command immediately follow the IBP_STATUS command.&lt;br /&gt;
&lt;br /&gt;
== Change in ''RID'' format ==&lt;br /&gt;
The current definition of an ''RID'' is an integer as defined in ''struct ibp_depot''.  The definition of an integer is architecture dependent and hense not portable.  An alternative definition would be to define the ''RID'' as a character string.  This would provide flexibility in its implmentation and use.  The current IBP client libraries already treat the ''RID'' as an opaque character string for all commands except ''IBP_Allocate()''.&lt;br /&gt;
&lt;br /&gt;
== Provide interface to IBP data structures ==&lt;br /&gt;
No explicit interfaces are provided for any of the various IBP data structures. A more flexible approach would be to add API calls to manipulate these structures indirectly.&lt;br /&gt;
&lt;br /&gt;
== IBP_MCOPY current status ==&lt;br /&gt;
The documentation for this command is sparse.  It looks like numerous different multicast methods were implemented but there is very little documentation describing them.  Should this command be dropped?&lt;br /&gt;
&lt;br /&gt;
== NFU ==&lt;br /&gt;
There is very little documentation describing the NFU implementation in the current LoCI depot and the documentation provided has errors and is not fully supported.  The concept of the NFU is very powerful and I wonder if it should be split out as a separate specification altogether.  Hunter's Java implementation is quite elegant.  In his implementation the NFU calls are actually Java JAR files stored as allocations.  These allocation are then registered with the NFU manager with hooks for checksums for data integrity.  Having the NFU call operating in a Java container is extremely appealing.  Java can place the NFU call in a box to limit it's resource consumption(memory, cpu, threads, etc) making it much more difficult for an NFU call to inadvertently or maliciously take down the depot or NFU manager.  Also because of Java's portability deploying new NFU calls becomes trivial.&lt;br /&gt;
&lt;br /&gt;
== Resource Discovery == &lt;br /&gt;
Added call to receive the list of resource ID's&lt;br /&gt;
&lt;br /&gt;
--[[User:Hunterh|Hunterh]] 13:38, 1 February 2008 (CST)&lt;br /&gt;
&lt;br /&gt;
= Security =&lt;br /&gt;
&lt;br /&gt;
== Add support for SSL ==&lt;br /&gt;
Self-explanatory&lt;br /&gt;
&lt;br /&gt;
== Auth/AuthZ for IBP_ALLOC command ==&lt;br /&gt;
This command has the potential for abuse and could result in a a &amp;quot;Denial of Space&amp;quot; attack on the depot.  If the concept of an &amp;quot;account&amp;quot; is added one could then come up with additional methods to share resources for example adding the concept of an account quota.  It also provides a tracking mechanism on who is *creating* allocations.&lt;br /&gt;
&lt;br /&gt;
== Virtual Capabilities(vcap) ==&lt;br /&gt;
The current implementation only allows a single set of caps for an allocation.  So once a user has access to a cap it can never be revoked.  Virtual caps is designed to solve this problem.  The idea is a user presenting the IBP_MANAGE cap could request the depot issue a new set of caps with a shorter duration.  These new vcaps could then be provided to a 3rd party.  At any time the original cap owner can revoke access to the allocation by simply using the IBP_MANAGE command to delete the vcap.  Another useful feature to consider is restricting the vcap to a specific byte range of the original cap.&lt;br /&gt;
&lt;br /&gt;
== IBP &amp;quot;Accounts&amp;quot; ==&lt;br /&gt;
In order for several of these ideas to work a new set of commands would need to be added to manage the accounts.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
= Data Integrity =&lt;br /&gt;
&lt;br /&gt;
== Validation along the entire data path ==&lt;br /&gt;
The current implementation allows for validating at the end points only.  This is accomplished by having the data originator calculate a checksum before uploading the data.  This checksum can be appended to the data uploaded data or it can be stored externally in the exnode.  The consumer can then download the data, calculate the checksum, and compare it to what is stored.  This approach is not well suited to live data streams since the raw data will have to be buffered until the consumer can download the data to verify it.&lt;br /&gt;
&lt;br /&gt;
An alternative approach would be to standardize on a checksum algorithm and have the client calculate the checksum as the data is being streamed to the depot while the depot simultaneously calculates the checksum as it receives the data. The sender would pass on it's checksum for validation by the receiver. Any discrepancy occurring during the network transfer would be immediately detected while the data is still in the senders original buffer.  The depot could then store this checksum as part of the allocation for use later.  Most OS will immediately detect a write failure but not necessarily bit rot when reading unless the disk is part of a RAID array.  Likewise when a reader requests data the reverse process can occur.  Namely the depot and receiver both calculate the checksum as the data is being sent.  The depot would additionally compare the original checksum stored with what was just calculated in order to detect disk errors.  If no errors occurred the depot would go ahead and send the checksum down to the receiver for validation.  This process is computationally efficient since the data is never re-read.  The checksum is just part of the transfer pipeline.&lt;br /&gt;
&lt;br /&gt;
Building this validation procedure into the protocol simplifies the data integrity higher level tools require.  These checksums could be used by higher level tools to verify replicated copies and detect data changes.  The checksums should be treated as opaque strings and could be accessed by additional IBP_MANAGE sub-commands:&lt;br /&gt;
&lt;br /&gt;
* IBP_GET_CHECKSUM - Return the allocations checksum&lt;br /&gt;
* IBP_VALIDATE_CHECKSUM - Re-calculate the checksum&lt;br /&gt;
&lt;br /&gt;
Using single checksum for an entire allocation is not efficient if random I/O on an allocation is allowed. In this case changing a single byte of a 10MB allocation would require the re-processing of the entire allocation.  Another option would be to specify that for every 64KB of data (I picked this out of the blue so feel free to suggest something different) a checksum is generated.  This means each allocation could have multiple checksums.  In this case if a single byte was changed only 64KB of data would have to be re-processed.  If the checksum field on the client is treated as an opaque string then having 1 or multiple checksums is irrelevant.  Both cases can be treated the same.&lt;br /&gt;
&lt;br /&gt;
see discussion tab for comments&lt;br /&gt;
&lt;br /&gt;
= Miscellanous =&lt;br /&gt;
&lt;br /&gt;
== Support UDP transfers ==&lt;br /&gt;
What about usingthe UDT implementation since it can mimic FAST, web100, etc. TCP congestion control methods...&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=All_Hands_Meeting,_Feb_1,_2008&amp;diff=3243</id>
		<title>All Hands Meeting, Feb 1, 2008</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=All_Hands_Meeting,_Feb_1,_2008&amp;diff=3243"/>
		<updated>2008-02-01T15:56:23Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* 10:45-12:30 --- A Toolbox for Distributed Storage (Part 1) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Agenda for All-Hands==&lt;br /&gt;
&lt;br /&gt;
Meeting Purpose:  &amp;quot;To decide upon a plan of action that will make REDDnet a success.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Meeting will be held at ACCRE at Vanderbilt University&lt;br /&gt;
&lt;br /&gt;
===Morning Session 9-12:30===&lt;br /&gt;
&lt;br /&gt;
====09:00-09:30 --- Meeting Kickoff====&lt;br /&gt;
&lt;br /&gt;
* Summary of the proposal - towards a vision for REDDnet - Terry&lt;br /&gt;
* [http://docdb.accre.vanderbilt.edu/cgi-bin/DocDB/ShowDocument?docid=112 Putting together a plan of action] - Paul&lt;br /&gt;
&lt;br /&gt;
====09:30-10:00 --- Deployment and Operations====&lt;br /&gt;
&lt;br /&gt;
* [[Operations and Deployment|Plan of Work]] - Bobby&lt;br /&gt;
* What should we expect of REDDnet sites? What should they expect of us?&lt;br /&gt;
&lt;br /&gt;
====10:00-10:30 --- Applications====&lt;br /&gt;
* Application Liaison Effort - Plan of Work (Carie Lee)&lt;br /&gt;
* [[Demo Projects and Application Use]] - Plans (such as CMS) (Dan)&lt;br /&gt;
&lt;br /&gt;
====10:30-10:45 --- Coffee Break====&lt;br /&gt;
&lt;br /&gt;
====10:45-12:30 --- A Toolbox for Distributed Storage (Part 1)====&lt;br /&gt;
* Data and Directory Services Discussion&lt;br /&gt;
** [[Directory and data management services APIs|Architectural Issues]] - Larry &lt;br /&gt;
** [[How we did things in the tools we developed at UTK]] - Chris&lt;br /&gt;
** [[Check Point|TSSP Status]] - Hunter&lt;br /&gt;
* IBP: [[Presentation information|Current Status and Proposed Extensions]] - Alan&lt;br /&gt;
&lt;br /&gt;
===Lunch 12:30-01:30===&lt;br /&gt;
* Lunch will be provided at the Vanderbilt Commons&lt;br /&gt;
&lt;br /&gt;
===Afternoon Session 1:30-05:00===&lt;br /&gt;
&lt;br /&gt;
====01:30-03:15 --- A Toolbox for Distributed Storage (Part 2)====&lt;br /&gt;
&lt;br /&gt;
* continue discussion listed above.&lt;br /&gt;
&lt;br /&gt;
====03:15-03:30 --- Coffee Break====&lt;br /&gt;
&lt;br /&gt;
====03:30-05:00 --- Close-Out Discussion and Assignments====&lt;br /&gt;
* tasks to be done&lt;br /&gt;
* prioritize tasks&lt;br /&gt;
* build a software diagram? (straw man is at [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=Check_Point&amp;diff=3234</id>
		<title>Check Point</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=Check_Point&amp;diff=3234"/>
		<updated>2008-02-01T05:06:21Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: New page: == TSSP Progress ==   The following question and subsequent answer aim to characterize what role TSSP plays in a logistical network deployment -    Q: &amp;quot;Given a logistical network, what can...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== TSSP Progress == &lt;br /&gt;
&lt;br /&gt;
The following question and subsequent answer aim to characterize what role TSSP plays in a logistical network deployment -&lt;br /&gt;
&lt;br /&gt;
  Q: &amp;quot;Given a logistical network, what can I do with it?&amp;quot; A: &amp;quot;Following this protocol/spec, you can at least achieve [these operations].&amp;quot;&lt;br /&gt;
&lt;br /&gt;
TSSP implementations depend on three distinct services: &lt;br /&gt;
* metadata respository - where the information usually contained in exnodes will be hosted&lt;br /&gt;
* storage resource discovery - where a list of available storage servers can be found&lt;br /&gt;
* and storage itself - host running an IBP-capable service (aka depot)&lt;br /&gt;
&lt;br /&gt;
When these are defined for a given logistical network, TSSP implementations can perform the following operations: &lt;br /&gt;
* send data using static or dynamic routes/channels &lt;br /&gt;
* receive data from a filled channel &lt;br /&gt;
* change the duration of a channel &lt;br /&gt;
* and increase or reduce a channel's data capacity.&lt;br /&gt;
&lt;br /&gt;
Thus far we have broken down the operations into reusable steps, have characterized the behavior of TSSP during each step when faced with a series of possible failures, and have outlined the content of the messages needed to complete each transaction. &lt;br /&gt;
&lt;br /&gt;
Pending items include:&lt;br /&gt;
* for which of the three services does TSSP need authentication&lt;br /&gt;
* which end-to-end services should be standard for TSSP&lt;br /&gt;
&lt;br /&gt;
We expect to have a working implementation available by the end of February.&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
Nevoa plans to have an area of their website where developers can validate implementations of IBP, exMSP, and RDP services according to the latest specifications of each protocol. By coding against validated services, we hope to ensure the quality of our documentation and make troubleshooting easier.&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=All_Hands_Meeting,_Feb_1,_2008&amp;diff=3233</id>
		<title>All Hands Meeting, Feb 1, 2008</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=All_Hands_Meeting,_Feb_1,_2008&amp;diff=3233"/>
		<updated>2008-02-01T04:39:33Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* 10:45-12:30 --- A Toolbox for Distributed Storage (Part 1) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Agenda for All-Hands==&lt;br /&gt;
&lt;br /&gt;
Meeting Purpose:  &amp;quot;To decide upon a plan of action that will make REDDnet a success.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Meeting will be held at ACCRE at Vanderbilt University&lt;br /&gt;
&lt;br /&gt;
===Morning Session 9-12:30===&lt;br /&gt;
&lt;br /&gt;
====09:00-09:30 --- Meeting Kickoff====&lt;br /&gt;
&lt;br /&gt;
* Summary of the proposal - towards a vision for REDDnet - Terry&lt;br /&gt;
* Putting together a plan of action - Paul &lt;br /&gt;
&lt;br /&gt;
====09:30-10:00 --- Deployment and Operations====&lt;br /&gt;
&lt;br /&gt;
* [[Operations and Deployment|Plan of Work]] - Bobby&lt;br /&gt;
* What should we expect of REDDnet sites? What should they expect of us?&lt;br /&gt;
&lt;br /&gt;
====10:00-10:30 --- Applications====&lt;br /&gt;
* Application Liaison Effort - Plan of Work (Carie Lee)&lt;br /&gt;
* [[Demo Projects and Application Use]] - Plans (such as CMS) (Dan)&lt;br /&gt;
&lt;br /&gt;
====10:30-10:45 --- Coffee Break====&lt;br /&gt;
&lt;br /&gt;
====10:45-12:30 --- A Toolbox for Distributed Storage (Part 1)====&lt;br /&gt;
* Data and Directory Services Discussion&lt;br /&gt;
** [[Directory and data management services APIs|Architectural Issues]] - Larry &lt;br /&gt;
** How we did things in the tools we developed at UTK - Chris&lt;br /&gt;
** [[Check Point|TSSP Satus]] - Hunter&lt;br /&gt;
* IBP: [[Presentation information|Current Status and Proposed Extensions]] - Alan&lt;br /&gt;
&lt;br /&gt;
===Lunch 12:30-01:30===&lt;br /&gt;
* Lunch will be provided at the Vanderbilt Commons&lt;br /&gt;
&lt;br /&gt;
===Afternoon Session 1:30-05:00===&lt;br /&gt;
&lt;br /&gt;
====01:30-03:15 --- A Toolbox for Distributed Storage (Part 2)====&lt;br /&gt;
&lt;br /&gt;
* continue discussion listed above.&lt;br /&gt;
&lt;br /&gt;
====03:15-03:30 --- Coffee Break====&lt;br /&gt;
&lt;br /&gt;
====03:30-05:00 --- Close-Out Discussion and Assignments====&lt;br /&gt;
* tasks to be done&lt;br /&gt;
* prioritize tasks&lt;br /&gt;
* build a software diagram? (straw man is at [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=3232</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=3232"/>
		<updated>2008-02-01T02:43:08Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Teardown */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
'''Goal'''&lt;br /&gt;
&lt;br /&gt;
Q: &amp;quot;Given a logistical network, what can I do with it?&amp;quot; &lt;br /&gt;
A: &amp;quot;Following this protocol/spec, you can at least achieve [these operations].&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
 related - [http://julian.ultralight.org/~fvlingen/managedNetwork/Annex10080807.pdf Managed Circuits] for bulk data transfers&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Capacity'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Expire ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Capacity ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
(see [[TSSP Procedures]] for proposed issue resolutions)&lt;br /&gt;
&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** How do algorithms fit into our specification goals?&lt;br /&gt;
** Should there be a standard algorithm for &lt;br /&gt;
*** download&lt;br /&gt;
*** upload&lt;br /&gt;
*** depot list generation&lt;br /&gt;
&lt;br /&gt;
== Fault Tolerance ==&lt;br /&gt;
* Issues&lt;br /&gt;
**Given a best-effort communication medium, how insistent should TSSP be with regards to successful completion of its operations? &lt;br /&gt;
**Is it possible to find a common policy that can satisfy both simple (i.e. fast) and complex (i.e. time consuming) forms of channel creation and management?&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3231</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3231"/>
		<updated>2008-02-01T02:40:55Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired channel states:&lt;br /&gt;
* Inaccessible channel capacity (can not be remedied by TSSP)&lt;br /&gt;
* Inaccessible channel content (can not be remedied by TSSP)&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Cause of Failure&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# redo allocate&lt;br /&gt;
# redo allocate&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# retry (limit?). otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
# no action. results in inaccessible channel capacity and content&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned (i.e. non-existent resource)&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit &lt;br /&gt;
# retry (limit?). otherwise, exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action. results in inaccessible channel capacity&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry (limit?). otherwise cache locally(?) or expire channel. exit&lt;br /&gt;
# cache locally(?) or expire channel. exit&lt;br /&gt;
# expire channel. exit&lt;br /&gt;
# expire channel. exit&lt;br /&gt;
# expire channel. exit&lt;br /&gt;
# retry (limit?). otherwise cache locally or expire channel. exit&lt;br /&gt;
# expire channel. exit&lt;br /&gt;
# no action. results in inaccessible channel capacity and content&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations. retry (limit? time?)&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations. exit&lt;br /&gt;
# interpreted as expired allocation. metadata is purged&lt;br /&gt;
# interpreted as unauthorized allocation. metadata is purged&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations (i.e. partial channel and content). exit&lt;br /&gt;
# no action. can result in partial channel and content&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# size mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry. try replica. exit&lt;br /&gt;
# exit&lt;br /&gt;
# try replica. exit&lt;br /&gt;
# try replica. exit&lt;br /&gt;
# retry. try replica. exit&lt;br /&gt;
# retry. try replica. exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# undo duration changes to altered allocations. exit&lt;br /&gt;
# no action. results in skewed channel duration&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# undo resizing of altered allocations. exit&lt;br /&gt;
# no action. results in skewed channel capacity&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3230</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3230"/>
		<updated>2008-02-01T02:36:26Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired channel states:&lt;br /&gt;
* Inaccessible channel capacity (can not be remedied by TSSP)&lt;br /&gt;
* Inaccessible channel content (can not be remedied by TSSP)&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Cause of Failure&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# redo allocate&lt;br /&gt;
# redo allocate&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# retry (limit?). otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
# no action. results in inaccessible channel capacity and content&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned (i.e. non-existent resource)&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit &lt;br /&gt;
# retry (limit?). otherwise, exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action. results in inaccessible channel capacity&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry (limit?). otherwise cache locally(?) or expire channel&lt;br /&gt;
# cache locally(?) or expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# retry (limit?). otherwise cache locally or expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# no action. results in inaccessible channel capacity and content&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations. retry (limit? time?)&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations&lt;br /&gt;
# interpreted as expired allocation. metadata is purged&lt;br /&gt;
# interpreted as unauthorized allocation. metadata is purged&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations (i.e. partial channel and content)&lt;br /&gt;
# no action. can result in partial channel and content&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# size mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry. try replica. exit&lt;br /&gt;
# exit&lt;br /&gt;
# try replica. exit&lt;br /&gt;
# try replica. exit&lt;br /&gt;
# retry. try replica. exit&lt;br /&gt;
# retry. try replica. exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# undo duration changes to altered allocations. exit&lt;br /&gt;
# no action. results in skewed channel duration&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# undo resizing of altered allocations. exit&lt;br /&gt;
# no action. results in skewed channel capacity&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3229</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3229"/>
		<updated>2008-02-01T02:34:57Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired channel states:&lt;br /&gt;
* Inaccessible channel capacity (can not be remedied by TSSP)&lt;br /&gt;
* Inaccessible channel content (can not be remedied by TSSP)&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Cause of Failure&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# redo allocate&lt;br /&gt;
# redo allocate&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# retry (limit?). otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
# no action. results in inaccessible channel capacity and content&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned (i.e. non-existent resource)&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit &lt;br /&gt;
# retry (limit?). otherwise, exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action. results in inaccessible channel capacity&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry (limit?). otherwise cache locally(?) or expire channel&lt;br /&gt;
# cache locally(?) or expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# retry (limit?). otherwise cache locally or expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# no action. results in inaccessible channel capacity and content&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations. retry (limit? time?)&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations&lt;br /&gt;
# interpreted as expired allocation. metadata is purged&lt;br /&gt;
# interpreted as unauthorized allocation. metadata is purged&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations (i.e. partial channel and content)&lt;br /&gt;
# no action. can result in partial channel and content&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# size mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry. try replica. exit&lt;br /&gt;
# exit&lt;br /&gt;
# try replica. exit&lt;br /&gt;
# try replica. exit&lt;br /&gt;
# retry. try replica. exit&lt;br /&gt;
# retry. try replica. exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# undo duration changes to altered allocations. exit&lt;br /&gt;
# no action. results is channel duration skew&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# retry (limit?). exit&lt;br /&gt;
# undo resizing of altered allocations. exit&lt;br /&gt;
# no action. results in channel capacity skew&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3228</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3228"/>
		<updated>2008-02-01T02:26:33Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired channel states:&lt;br /&gt;
* Inaccessible channel capacity (can not be remedied by TSSP)&lt;br /&gt;
* Inaccessible channel content (can not be remedied by TSSP)&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Cause of Failure&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# redo allocate&lt;br /&gt;
# redo allocate&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# retry (limit?). otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
# no action. results in inaccessible channel capacity and content&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
# expire channel, purge metadata, and exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned (i.e. non-existent resource)&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit &lt;br /&gt;
# retry (limit?). otherwise, exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, expire channel, purge metadata, and exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action. results in inaccessible channel capacity&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry (limit?). otherwise cache locally(?) or expire channel&lt;br /&gt;
# cache locally(?) or expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# retry (limit?). otherwise cache locally or expire channel&lt;br /&gt;
# expire channel&lt;br /&gt;
# no action. results in inaccessible channel capacity and content&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations. retry (limit? time?)&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations&lt;br /&gt;
# interpreted as expired allocation. metadata is purged&lt;br /&gt;
# interpreted as unauthorized allocation. metadata is purged&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# metadata is not purged, remains in the namespace, and contains unexpired allocations (i.e. partial channel and content)&lt;br /&gt;
# no action. can result in partial channel and content&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# size mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# - &lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3227</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3227"/>
		<updated>2008-02-01T02:12:09Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired channel states:&lt;br /&gt;
* Inaccessible channel capacity (can not be remedied by TSSP)&lt;br /&gt;
* Inaccessible channel content (can not be remedied by TSSP)&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Cause of Failure&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise, execute channel teardown, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, execute channel teardown, purge metadata, and exit&lt;br /&gt;
# redo allocate&lt;br /&gt;
# redo allocate&lt;br /&gt;
# try next depot/resource if available. otherwise, execute channel teardown, purge metadata, and exit&lt;br /&gt;
# retry (limit?). otherwise, decrement successful allocations, purge metadata, and exit&lt;br /&gt;
# decrement successful allocations, purge metadata, and exit&lt;br /&gt;
# no action. results in inaccessible channel capacity and content&lt;br /&gt;
# decrement successful allocations, purge metadata, and exit&lt;br /&gt;
# decrement successful allocations, purge metadata, and exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned (i.e. non-existent resource)&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit &lt;br /&gt;
# retry (limit?). otherwise, exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise, execute channel teardown, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, execute channel teardown, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, execute channel teardown, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, execute channel teardown, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, execute channel teardown, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, execute channel teardown, purge metadata, and exit&lt;br /&gt;
# exit&lt;br /&gt;
# no action. results in inaccessible channel capacity&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted (client crash)&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# retry (limit?). otherwise cache locally(?) or execute channel teardown&lt;br /&gt;
# cache locally(?) or execute channel teardown&lt;br /&gt;
# execute channel teardown&lt;br /&gt;
# execute channel teardown&lt;br /&gt;
# execute channel teardown&lt;br /&gt;
# retry (limit?). otherwise cache locally or execute channel teardown&lt;br /&gt;
# execute channel teardown&lt;br /&gt;
# no action. results in inaccessible channel capacity and content&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# &lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# size mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# - &lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3226</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3226"/>
		<updated>2008-02-01T00:59:49Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired channel states:&lt;br /&gt;
* Inaccessible channel capacity (can not be remedied by TSSP)&lt;br /&gt;
* Inaccessible channel content (can not be remedied by TSSP)&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Cause of Failure&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise, decrement successful allocations, purge metadata, and exit&lt;br /&gt;
# try next depot/resource if available. otherwise, decrement successful allocations, purge metadata, and exit&lt;br /&gt;
# redo allocate&lt;br /&gt;
# redo allocate&lt;br /&gt;
# try next depot/resource if available. otherwise, decrement successful allocations, purge metadata, and exit&lt;br /&gt;
# retry (limit?). otherwise, decrement successful allocations, purge metadata, and exit&lt;br /&gt;
# decrement successful allocations, purge metadata, and exit&lt;br /&gt;
# retry (limit?). otherwise, decrement successful allocations, purge metadata, and exit&lt;br /&gt;
# decrement successful allocations, purge metadata, and exit&lt;br /&gt;
# decrement successful allocations, purge metadata, and exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit (=non-existant resource)&lt;br /&gt;
# retry (limit?). otherwise, exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
# exit&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# size mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# - &lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3225</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3225"/>
		<updated>2008-02-01T00:47:52Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired channel states:&lt;br /&gt;
* Inaccessible channel capacity (can not be remedied by TSSP)&lt;br /&gt;
* Inaccessible channel content (can not be remedied by TSSP)&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Cause of Failure&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# desist&lt;br /&gt;
# desist&lt;br /&gt;
# desist&lt;br /&gt;
# desist&lt;br /&gt;
# desist&lt;br /&gt;
# desist&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# desist&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# try next depot/resource if available. otherwise desist&lt;br /&gt;
# try next depot/resource if available. otherwise desist&lt;br /&gt;
# redo allocate&lt;br /&gt;
# redo allocate&lt;br /&gt;
# try next depot/resource if available. otherwise desist&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# desist&lt;br /&gt;
# retry (limit?)&lt;br /&gt;
# desist&lt;br /&gt;
# desist&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# size mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# - &lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3000</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=3000"/>
		<updated>2008-01-16T13:20:23Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired channel states:&lt;br /&gt;
* Inaccessible channel capacity (can not be remedied by TSSP)&lt;br /&gt;
* Inaccessible channel content (can not be remedied by TSSP)&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Cause of Failure&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# size mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# - &lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=Talk:TSSP_Framework&amp;diff=2999</id>
		<title>Talk:TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=Talk:TSSP_Framework&amp;diff=2999"/>
		<updated>2008-01-16T13:18:37Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Checksums: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My understanding of the TSSP task is to identify and help standardize a sequence of steps that are essential to each of the data operations listed (or eventually requested)(Please redirect me if my interpretation is off. I'd hate to spend time generating information that only makes sense to me!). So I'm starting with a minimalistic set that answers the question &amp;quot;Given a logistical network, what can I do with it?&amp;quot; with &amp;quot;Following this protocol/spec, you can at least achieve [these operations].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
- Hunter 19/20/07&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Here are some comments on your specification page:&lt;br /&gt;
&lt;br /&gt;
1. I think it would be good to list all of the possible actors and their roles at the beginning of the description.  Some of the actors you have listed (such as the &amp;quot;route generator&amp;quot; may not exist yet, which means that perhaps we should not include them in this document.&lt;br /&gt;
&lt;br /&gt;
*Right. In both the routing scenarios the path is manually determined. There's currently no automated agent for either dynamic or static. &lt;br /&gt;
&lt;br /&gt;
2. You should come up with another name/description for the IBP client, one which describes its function, not its implementation.  &amp;quot;Data source&amp;quot; and &amp;quot;Data destination&amp;quot; might be two such roles (notice that there are two roles even though a single protocol is being used).&lt;br /&gt;
&lt;br /&gt;
*This is what I was referring to when I asked about the scope of the actors. I only listed the components embodied by the TSSP implementation and not the external entities it will communicate with. It seems like the presence of a protocol's client implies the participation of its service, but I can make that explicit. &lt;br /&gt;
&lt;br /&gt;
3. Your description of the &amp;quot;Steps&amp;quot; for the various operations is very high level, and some protocols that fit the description definitely would not work, certainly not achieving acceptable performance.  For instance, the multistream TCP download implemented in LoRS is quite complex, with a number of optimization parameters.  Now, we might not want to standardize on a protocol with all that complexity but on the other hand we might want to. If not, then how much complexity do we want to require?  And do we want to specify the full protocol as an optional variant of a simpler one?&lt;br /&gt;
&lt;br /&gt;
4. It's not clear to me why you refer to storage space as bandwidth.  This is not standard terminology even when dealing with communication buffers, as far as I know.  It certainly doesn't fit the scenario when storage allocations are used to implement persistent files (unless you mean to characterize a file as a &amp;quot;channel through time&amp;quot; which is a nice image, but one that few people outside of Claxton Hall will understand).&lt;br /&gt;
&lt;br /&gt;
*Well taken. Maybe we could talk about channel capacity? &lt;br /&gt;
&lt;br /&gt;
5. Your Teardown operation seems to be the only way to truncate the duration of storage allocations.  What if a user simply deletes the exNode without doing the truncation?  Remember, this may happen due to client error, so a protocol that rules it out cannot be implemented reliably.&lt;br /&gt;
&lt;br /&gt;
*This also speaks to my understanding of the TSSP assignment. If TSSP represents the standard sequence of steps that are essential to each of the data operations, then premature deletion of the metadata seems like an implementation fault. Or removal of the metadata can be the responsibility of some other operation?&lt;br /&gt;
**The management of exNodes is at this point unspecified.  We could decide to include in the TSSP a let of rules as well as protocols for managing them, but we certainly don't have such rules now.  When a client obtains an exNode from a directory service, what obligations does it have, if any, in how that exNode is managed?  How about when a client creates a new exNode?  Is there an obligation to register it with a directory and to delete its own copy? If a copy of the exNode is lost, how robust must the directory service and IBP service be (this goes to the question of how long allocation durations are)?&lt;br /&gt;
**It's easy to say that losing the exNode is an implementation fault, but it's not clear that it can be avoided, given that faults can occur in the network and/or operating system serving and connecting the components.  An implementation fault is not simply a runtime fault, it is one that can/should be avoided.&lt;br /&gt;
&lt;br /&gt;
7. I think that some open issues include what sorts of up/download algorithms are considered acceptable.  If there is a single-stream implementation that gets really terrible performance and sometimes doesn't succeed when more sophisticated algorithms succeed, is that an acceptable implementation (becauase when it does succeed it delivers the correct bits).&lt;br /&gt;
&lt;br /&gt;
*Once again, I'm unsure of how a sub-routine would be integrated into a protocol description. This is just part of having an IS guy try to work this out. The exchange would be something like -  &amp;quot;I've followed the TSSP spec and can upload/download, but it sucks!&amp;quot;, response &amp;quot;The TSSP spec is a minimalist representation of how to do those operations. If you want better results, try parallelizing.&amp;quot;&lt;br /&gt;
**The best analogy is TCP.  There are many possible implementations of a TCP-like protocol, but most of the ones that have been documented are not known to work very well.  Particular TCP variants are documented and approved by the IETF, others are not.&lt;br /&gt;
**If someone comes forward with an implementation of TSSP which &amp;quot;meets the specification&amp;quot; but had bad performance or other behavior, would be want to put our stamp of approval on it?  Arguably, it would not be a truely interoperable alternative to existing implementations because applications that used it expecting high performance would be disappointed.  It's all a matter of what we want &amp;quot;interoperable&amp;quot; to mean.&lt;br /&gt;
&lt;br /&gt;
8. The relationship between resources on a single depot needs to be specified.  Are they necessarily independent or can they be linked (eg having resource zero represent the union of the other resources).&lt;br /&gt;
&lt;br /&gt;
*Even local resources of different types? What's the significance of the same-depot resource relationship with regards to the operations listed?&lt;br /&gt;
**Good question.  This issue came up because LoRS cannot make allocations on resources other than zero, but Alan wanted to run depots with multiple resources.  His way of dealing with this was to make resource zero represent the union of all other resources, with an allocation made on resource zero returning a capability pointing to one of the other resources.  It was a &amp;quot;work-around&amp;quot;, but if this sort of this is going to be allowable, that fact should be specified as part of the standard. &amp;quot;  &lt;br /&gt;
&lt;br /&gt;
- Micah/Hunter 12/20/07&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Checksums: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP generates a checksum at the sender and then re-calculates a checksum at the receiver.&lt;br /&gt;
&lt;br /&gt;
TSSP could have a verify option (or requirement) that &lt;br /&gt;
*generates a checksum per slice&lt;br /&gt;
**stores that in the exnode&lt;br /&gt;
*The 2nd checksum would have to be calculated on the depot&lt;br /&gt;
**re-reading the data from the media, of course&lt;br /&gt;
**wastes bandwidth re-sending the data to the client for checksum calculation&lt;br /&gt;
*There could be a chksum-reverify option&lt;br /&gt;
**the client sends chksums to the depots slice by slice.&lt;br /&gt;
**The checksum is re-calculated at the depot&lt;br /&gt;
***re-scanning the media&lt;br /&gt;
***the depot only sends success/failure back (not the re-calculated checksum)&lt;br /&gt;
*But how is the 2nd checksum calculated on the depot?&lt;br /&gt;
**part of the IBP manage protocol?&lt;br /&gt;
**NFU-type operation?&lt;br /&gt;
*Replication can be made more robust by deallocating from the depots, and removing from the exnode, the corrupt slices while replacing them with good copies&lt;br /&gt;
*Data &amp;quot;warming&amp;quot; can be made a more complete operation that includes checksum verification and data rebuilding.&lt;br /&gt;
The end-user is probably most comfortable using a checksum for the whole file as verification -- and CMS requires matching with the file checksum.  But the slice by slice features provides a lot of flexibility for replica management and it seems we should be doing this from the start.&lt;br /&gt;
&lt;br /&gt;
- Dan 1/15/08&lt;br /&gt;
&lt;br /&gt;
I think this is a good candidate for the NFU and might be heavy for standard TSSP operations. It highlights one of the differences of our approach in that we are dealing with one or many, possibly undetermined, end-points (where the channel content is consumed) and that a depot is part of the communication medium. &lt;br /&gt;
&lt;br /&gt;
--[[User:Hunterh|Hunterh]] 07:18, 16 January 2008 (CST)&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2971</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2971"/>
		<updated>2008-01-03T17:30:56Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired states:&lt;br /&gt;
* Inaccessible channel capacity (can not be remedied by TSSP)&lt;br /&gt;
* Inaccessible channel content (can not be remedied by TSSP)&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Cause of Failure&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# size mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# - &lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2970</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2970"/>
		<updated>2008-01-03T17:29:22Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired states:&lt;br /&gt;
* Inaccessible channel capacity (can not be remedied by TSSP)&lt;br /&gt;
* Inaccessible channel content (can not be remedied by TSSP)&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# size mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# - &lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2969</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2969"/>
		<updated>2008-01-03T17:23:26Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired states:&lt;br /&gt;
* Inaccessible channel capacity&lt;br /&gt;
* Inaccessible channel content&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# size mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# - &lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# operation interrupted&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2968</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2968"/>
		<updated>2008-01-03T17:12:15Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired states:&lt;br /&gt;
* Inaccessible channel capacity&lt;br /&gt;
* Inaccessible channel content&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid WRITE key&lt;br /&gt;
# insufficient space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# size mismatch&lt;br /&gt;
# input stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid resource&lt;br /&gt;
# insufficient capacity&lt;br /&gt;
# insufficient duration&lt;br /&gt;
# connection broken&lt;br /&gt;
# client destroyed&lt;br /&gt;
# operation canceled&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timeout&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid MANAGE key&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# invalid capability&lt;br /&gt;
# invalid READ key&lt;br /&gt;
# bytes read mismatch&lt;br /&gt;
# connection broken&lt;br /&gt;
# operation canceled&lt;br /&gt;
# output stream closed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# - &lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2967</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2967"/>
		<updated>2008-01-03T15:57:57Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired states:&lt;br /&gt;
* Inaccessible channel capacity&lt;br /&gt;
* Inaccessible channel content&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel (store/copy)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# lookup canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel (alloc)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content (load)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2966</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2966"/>
		<updated>2008-01-03T15:56:01Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able, or desired, to be implemented in parallel. Steps that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. Inability to rollback can result in several undesired states:&lt;br /&gt;
* Inaccessible channel capacity&lt;br /&gt;
* Inaccessible channel content&lt;br /&gt;
* Skewed channel duration&lt;br /&gt;
* Skewed channel capacity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# lookup canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2965</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2965"/>
		<updated>2008-01-03T15:40:01Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Open TSSP Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
'''Goal'''&lt;br /&gt;
&lt;br /&gt;
Q: &amp;quot;Given a logistical network, what can I do with it?&amp;quot; &lt;br /&gt;
A: &amp;quot;Following this protocol/spec, you can at least achieve [these operations].&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
 related - [http://julian.ultralight.org/~fvlingen/managedNetwork/Annex10080807.pdf Managed Circuits] for bulk data transfers&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Capacity'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Teardown ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Capacity ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
(see [[TSSP Procedures]] for proposed issue resolutions)&lt;br /&gt;
&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** How do algorithms fit into our specification goals?&lt;br /&gt;
** Should there be a standard algorithm for &lt;br /&gt;
*** download&lt;br /&gt;
*** upload&lt;br /&gt;
*** depot list generation&lt;br /&gt;
&lt;br /&gt;
== Fault Tolerance ==&lt;br /&gt;
* Issues&lt;br /&gt;
**Given a best-effort communication medium, how insistent should TSSP be with regards to successful completion of its operations? &lt;br /&gt;
**Is it possible to find a common policy that can satisfy both simple (i.e. fast) and complex (i.e. time consuming) forms of channel creation and management?&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2964</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2964"/>
		<updated>2008-01-03T15:36:13Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
The steps that compose the five proposed standard operations are shown ranked by how many times they appear in the operations' construction. Also, each step is categorized as being able to be implemented in parallel. Those that support parallelism assume that the failure of one of the executing threads compromises the entire operation, triggering aggressive rollback when possible. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# lookup canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2963</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2963"/>
		<updated>2008-01-03T15:30:00Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# lookup canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
# null result&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# malformed query&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2962</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2962"/>
		<updated>2008-01-03T15:14:24Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# lookup canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# empty depot set&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2961</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2961"/>
		<updated>2008-01-03T15:13:29Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Fault Tolerance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# lookup canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# empty depot set&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2960</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2960"/>
		<updated>2008-01-03T14:46:42Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Parallel (T/F)&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
# size mismatch&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# empty set returned&lt;br /&gt;
# connection broken&lt;br /&gt;
# lookup canceled&lt;br /&gt;
# invalid schema&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# connection timed out&lt;br /&gt;
# authentication failed&lt;br /&gt;
# path not found&lt;br /&gt;
# permission denied&lt;br /&gt;
# not enough space&lt;br /&gt;
# connection broken&lt;br /&gt;
# transfer canceled&lt;br /&gt;
# client destroyed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
# -&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;F&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;T&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2959</id>
		<title>TSSP Procedures</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Procedures&amp;diff=2959"/>
		<updated>2008-01-03T13:29:04Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: New page: This section contains recommendations pertaining to the Issues section of the TSSP Framework article.   = Fault Tolerance =  &amp;lt;table&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Ty...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains recommendations pertaining to the Issues section of the [[TSSP Framework]] article. &lt;br /&gt;
&lt;br /&gt;
= Fault Tolerance =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Occurrence&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Failure Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Procedure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;fill channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;obtain depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;determine next depot&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;reserve channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;publish/record metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
* connection timed out&lt;br /&gt;
* authentication failed&lt;br /&gt;
* path not found&lt;br /&gt;
* permission denied&lt;br /&gt;
* not enough space&lt;br /&gt;
* connection broken&lt;br /&gt;
* transfer canceled&lt;br /&gt;
* client detroyed&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;order depot set&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;expire channel&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;consume content&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel duration&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;channel capacity&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td align=center&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=Protocol_Standardization_Efforts&amp;diff=2958</id>
		<title>Protocol Standardization Efforts</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=Protocol_Standardization_Efforts&amp;diff=2958"/>
		<updated>2008-01-03T12:52:11Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''SUMMARY''' - Given the increasing number of logistical networking software components, the REDDnet community is actively seeking to establish a series of standard protocols that would ensure the interoperability between these components and the services they need and/or the clients they serve. Although the Internet Backplane Protocol is already documented, it is also under revision by members of the REDDnet community, some of whom are the original authors.&lt;br /&gt;
&lt;br /&gt;
The following is the list of protocols under deliberation/refinement:&lt;br /&gt;
&lt;br /&gt;
* Transfer and Storage Services Protocol&lt;br /&gt;
** [[TSSP Framework]]&lt;br /&gt;
** [[TSSP Procedures]]&lt;br /&gt;
** [[TSSP Messaging]]&lt;br /&gt;
&lt;br /&gt;
* Resource Discovery Protocol (see [[Resource Discovery Standardization]])&lt;br /&gt;
** The Discovery Service&lt;br /&gt;
** [[RDP Messages]]&lt;br /&gt;
&lt;br /&gt;
* Exnode Management Services Protocol&lt;br /&gt;
** The Metadata Hosting Service&lt;br /&gt;
** [[exMSP Messages]]&lt;br /&gt;
&lt;br /&gt;
* Internet Backplane Protocol&lt;br /&gt;
** [http://www.reddnet.org/mwiki/index.php/Internet_Backplane_Protocol Version 1.4]&lt;br /&gt;
** [[1.4 Revision]]&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2957</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2957"/>
		<updated>2008-01-02T19:27:00Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
'''Goal'''&lt;br /&gt;
&lt;br /&gt;
Q: &amp;quot;Given a logistical network, what can I do with it?&amp;quot; &lt;br /&gt;
A: &amp;quot;Following this protocol/spec, you can at least achieve [these operations].&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
 related - [http://julian.ultralight.org/~fvlingen/managedNetwork/Annex10080807.pdf Managed Circuits] for bulk data transfers&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Capacity'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Teardown ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Capacity ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** How do algorithms fit into our specification goals?&lt;br /&gt;
** Should there be a standard algorithm for &lt;br /&gt;
*** download&lt;br /&gt;
*** upload&lt;br /&gt;
*** depot list generation&lt;br /&gt;
&lt;br /&gt;
== Fault Tolerance ==&lt;br /&gt;
* Issues&lt;br /&gt;
**Given a best-effort communication medium, how insistent should TSSP be with regards to successful completion of its operations? &lt;br /&gt;
**Is it possible to find a common policy that can satisfy both simple (i.e. fast) and complex (i.e. time consuming) forms of channel creation and management?&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2956</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2956"/>
		<updated>2008-01-02T18:34:27Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
'''Goal'''&lt;br /&gt;
&lt;br /&gt;
Q: &amp;quot;Given a logistical network, what can I do with it?&amp;quot; &lt;br /&gt;
A: &amp;quot;Following this protocol/spec, you can at least achieve [these operations].&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
 related - [http://julian.ultralight.org/~fvlingen/managedNetwork/Annex10080807.pdf Managed Circuits] for bulk data transfers&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Capacity'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Teardown ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Capacity ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** How do algorithms fit into our specification goals&lt;br /&gt;
** Should there be a standard algorithm for &lt;br /&gt;
*** download&lt;br /&gt;
*** upload&lt;br /&gt;
*** depot list generation&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2955</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2955"/>
		<updated>2008-01-02T18:14:50Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Algorithms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
 related - [http://julian.ultralight.org/~fvlingen/managedNetwork/Annex10080807.pdf Managed Circuits] for bulk data transfers&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Capacity'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Teardown ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Capacity ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** How do algorithms fit into our specification goals&lt;br /&gt;
** Should there be a standard algorithm for &lt;br /&gt;
*** download&lt;br /&gt;
*** upload&lt;br /&gt;
*** depot list generation&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=Talk:TSSP_Framework&amp;diff=2952</id>
		<title>Talk:TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=Talk:TSSP_Framework&amp;diff=2952"/>
		<updated>2007-12-21T15:11:25Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My understanding of the TSSP task is to identify and help standardize a sequence of steps that are essential to each of the data operations listed (or eventually requested)(Please redirect me if my interpretation is off. I'd hate to spend time generating information that only makes sense to me!). So I'm starting with a minimalistic set that answers the question &amp;quot;Given a logistical network, what can I do with it?&amp;quot; with &amp;quot;Following this protocol/spec, you can at least achieve [these operations].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
- Hunter 19/20/07&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Here are some comments on your specification page:&lt;br /&gt;
&lt;br /&gt;
1. I think it would be good to list all of the possible actors and their roles at the beginning of the description.  Some of the actors you have listed (such as the &amp;quot;route generator&amp;quot; may not exist yet, which means that perhaps we should not include them in this document.&lt;br /&gt;
&lt;br /&gt;
*Right. In both the routing scenarios the path is manually determined. There's currently no automated agent for either dynamic or static. &lt;br /&gt;
&lt;br /&gt;
2. You should come up with another name/description for the IBP client, one which describes its function, not its implementation.  &amp;quot;Data source&amp;quot; and &amp;quot;Data destination&amp;quot; might be two such roles (notice that there are two roles even though a single protocol is being used).&lt;br /&gt;
&lt;br /&gt;
*This is what I was referring to when I asked about the scope of the actors. I only listed the components embodied by the TSSP implementation and not the external entities it will communicate with. It seems like the presence of a protocol's client implies the participation of its service, but I can make that explicit. &lt;br /&gt;
&lt;br /&gt;
3. Your description of the &amp;quot;Steps&amp;quot; for the various operations is very high level, and some protocols that fit the description definitely would not work, certainly not achieving acceptable performance.  For instance, the multistream TCP download implemented in LoRS is quite complex, with a number of optimization parameters.  Now, we might not want to standardize on a protocol with all that complexity but on the other hand we might want to. If not, then how much complexity do we want to require?  And do we want to specify the full protocol as an optional variant of a simpler one?&lt;br /&gt;
&lt;br /&gt;
4. It's not clear to me why you refer to storage space as bandwidth.  This is not standard terminology even when dealing with communication buffers, as far as I know.  It certainly doesn't fit the scenario when storage allocations are used to implement persistent files (unless you mean to characterize a file as a &amp;quot;channel through time&amp;quot; which is a nice image, but one that few people outside of Claxton Hall will understand).&lt;br /&gt;
&lt;br /&gt;
*Well taken. Maybe we could talk about channel capacity? &lt;br /&gt;
&lt;br /&gt;
5. Your Teardown operation seems to be the only way to truncate the duration of storage allocations.  What if a user simply deletes the exNode without doing the truncation?  Remember, this may happen due to client error, so a protocol that rules it out cannot be implemented reliably.&lt;br /&gt;
&lt;br /&gt;
*This also speaks to my understanding of the TSSP assignment. If TSSP represents the standard sequence of steps that are essential to each of the data operations, then premature deletion of the metadata seems like an implementation fault. Or removal of the metadata can be the responsibility of some other operation?&lt;br /&gt;
**The management of exNodes is at this point unspecified.  We could decide to include in the TSSP a let of rules as well as protocols for managing them, but we certainly don't have such rules now.  When a client obtains an exNode from a directory service, what obligations does it have, if any, in how that exNode is managed?  How about when a client creates a new exNode?  Is there an obligation to register it with a directory and to delete its own copy? If a copy of the exNode is lost, how robust must the directory service and IBP service be (this goes to the question of how long allocation durations are)?&lt;br /&gt;
**It's easy to say that losing the exNode is an implementation fault, but it's not clear that it can be avoided, given that faults can occur in the network and/or operating system serving and connecting the components.  An implementation fault is not simply a runtime fault, it is one that can/should be avoided.&lt;br /&gt;
&lt;br /&gt;
7. I think that some open issues include what sorts of up/download algorithms are considered acceptable.  If there is a single-stream implementation that gets really terrible performance and sometimes doesn't succeed when more sophisticated algorithms succeed, is that an acceptable implementation (becauase when it does succeed it delivers the correct bits).&lt;br /&gt;
&lt;br /&gt;
*Once again, I'm unsure of how a sub-routine would be integrated into a protocol description. This is just part of having an IS guy try to work this out. The exchange would be something like -  &amp;quot;I've followed the TSSP spec and can upload/download, but it sucks!&amp;quot;, response &amp;quot;The TSSP spec is a minimalist representation of how to do those operations. If you want better results, try parallelizing.&amp;quot;&lt;br /&gt;
**The best analogy is TCP.  There are many possible implementations of a TCP-like protocol, but most of the ones that have been documented are not known to work very well.  Particular TCP variants are documented and approved by the IETF, others are not.&lt;br /&gt;
**If someone comes forward with an implementation of TSSP which &amp;quot;meets the specification&amp;quot; but had bad performance or other behavior, would be want to put our stamp of approval on it?  Arguably, it would not be a truely interoperable alternative to existing implementations because applications that used it expecting high performance would be disappointed.  It's all a matter of what we want &amp;quot;interoperable&amp;quot; to mean.&lt;br /&gt;
&lt;br /&gt;
8. The relationship between resources on a single depot needs to be specified.  Are they necessarily independent or can they be linked (eg having resource zero represent the union of the other resources).&lt;br /&gt;
&lt;br /&gt;
*Even local resources of different types? What's the significance of the same-depot resource relationship with regards to the operations listed?&lt;br /&gt;
**Good question.  This issue came up because LoRS cannot make allocations on resources other than zero, but Alan wanted to run depots with multiple resources.  His way of dealing with this was to make resource zero represent the union of all other resources, with an allocation made on resource zero returning a capability pointing to one of the other resources.  It was a &amp;quot;work-around&amp;quot;, but if this sort of this is going to be allowable, that fact should be specified as part of the standard. &amp;quot;  &lt;br /&gt;
&lt;br /&gt;
- Micah/Hunter 12/20/07&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=RDP_Messages&amp;diff=2951</id>
		<title>RDP Messages</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=RDP_Messages&amp;diff=2951"/>
		<updated>2007-12-21T14:32:56Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''SUMMARY''' - Add desired messages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;From&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;To&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Message&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Parameters&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Return Values&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=2&amp;gt;User/App&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=2&amp;gt;Resource Directory&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;resource list request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;group name&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;verbosity&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;host/IP&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;port&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;resource ID&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;resource list request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;group name&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;verbosity&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;host/IP&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;port&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;resource ID&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;available space&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;max duration&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;tags&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Messaging&amp;diff=2950</id>
		<title>TSSP Messaging</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Messaging&amp;diff=2950"/>
		<updated>2007-12-21T14:29:46Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;From&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;To&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Message&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Parameters&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Return Values&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=9&amp;gt;User/App&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Resource Directory&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;resource list request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials?&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;resource group identifier&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;verbosity&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;host/IP&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;port&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;resource ID&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;(more...)&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Storage Resource&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;allocate space request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;allocation type&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;size of allocation&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;duration of allocatoin&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;allocation reference&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;read key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;write key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;manage key&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Storage Resource&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;write request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials?&amp;lt;li&amp;gt; &amp;lt;li&amp;gt;allocation reference&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;write key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;data&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;number of bytes written&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Storage Resource&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;read request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials?&amp;lt;li&amp;gt; &amp;lt;li&amp;gt;allocation reference&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;read key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;offset&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;length&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;data&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Storage Resource&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;duration request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials?&amp;lt;li&amp;gt; &amp;lt;li&amp;gt;allocation reference&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;manage key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;duration value&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;result&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Storage Resource&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;capacity request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials?&amp;lt;li&amp;gt; &amp;lt;li&amp;gt;allocation reference&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;manage key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;allocation size&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;size delta&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Metadata Hosting Service&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;publish metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;namespace target&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;metadata&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;method&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;number of bytes written&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Metadata Hosting Service&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;retrieve metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;namespace target&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;criteria&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;number of bytes read&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Metadata Hosting Service&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;remove metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;namespace target&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;criteria&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;result&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=Protocol_Standardization_Efforts&amp;diff=2949</id>
		<title>Protocol Standardization Efforts</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=Protocol_Standardization_Efforts&amp;diff=2949"/>
		<updated>2007-12-21T14:00:03Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''SUMMARY''' - Given the increasing number of logistical networking software components, the REDDnet community is actively seeking to establish a series of standard protocols that would ensure the interoperability between these components and the services they need and/or the clients they serve. Although the Internet Backplane Protocol is already documented, it is also under revision by members of the REDDnet community, some of whom are the original authors.&lt;br /&gt;
&lt;br /&gt;
The following is the list of protocols under deliberation/refinement:&lt;br /&gt;
&lt;br /&gt;
* Transfer and Storage Services Protocol&lt;br /&gt;
** [[TSSP Framework]]&lt;br /&gt;
** [[TSSP Messaging]]&lt;br /&gt;
&lt;br /&gt;
* Resource Discovery Protocol (see [[Resource Discovery Standardization]])&lt;br /&gt;
** The Discovery Service&lt;br /&gt;
** [[RDP Messages]]&lt;br /&gt;
&lt;br /&gt;
* Exnode Management Services Protocol&lt;br /&gt;
** The Metadata Hosting Service&lt;br /&gt;
** [[exMSP Messages]]&lt;br /&gt;
&lt;br /&gt;
* Internet Backplane Protocol&lt;br /&gt;
** [http://www.reddnet.org/mwiki/index.php/Internet_Backplane_Protocol Version 1.4]&lt;br /&gt;
** [[1.4 Revision]]&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Messaging_Sequence&amp;diff=2948</id>
		<title>TSSP Messaging Sequence</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Messaging_Sequence&amp;diff=2948"/>
		<updated>2007-12-21T13:59:43Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: TSSP Messaging Sequence moved to TSSP Messaging&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[TSSP Messaging]]&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Messaging&amp;diff=2947</id>
		<title>TSSP Messaging</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Messaging&amp;diff=2947"/>
		<updated>2007-12-21T13:59:43Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: TSSP Messaging Sequence moved to TSSP Messaging&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Send == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;From&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;To&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Message&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Parameters&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Return Values&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=4&amp;gt;User/App&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Resource Directory&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;resource list request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials?&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;resource group identifier&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;verbosity&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;host/IP&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;port&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;resource ID&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;(more...)&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Storage Resource&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;allocate space request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;allocation type&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;size of allocation&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;duration of allocatoin&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;allocation reference&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;read key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;write key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;manage key&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Storage Resource&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;write request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials?&amp;lt;li&amp;gt; &amp;lt;li&amp;gt;allocation reference&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;write key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;data&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;number of bytes written&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Metadata Hosting Service&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;publish metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;namespace target&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;metadata&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;method&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;number of bytes written&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Messaging&amp;diff=2946</id>
		<title>TSSP Messaging</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Messaging&amp;diff=2946"/>
		<updated>2007-12-21T13:58:38Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Send == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;From&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;To&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Message&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Parameters&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Return Values&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=4&amp;gt;User/App&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Resource Directory&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;resource list request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials?&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;resource group identifier&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;verbosity&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;host/IP&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;port&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;resource ID&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;(more...)&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Storage Resource&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;allocate space request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;allocation type&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;size of allocation&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;duration of allocatoin&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;allocation reference&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;read key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;write key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;manage key&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Storage Resource&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;write request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials?&amp;lt;li&amp;gt; &amp;lt;li&amp;gt;allocation reference&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;write key&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;data&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;number of bytes written&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Metadata Hosting Service&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;publish metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;credentials&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;namespace target&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;metadata&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;method&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;number of bytes written&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2945</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2945"/>
		<updated>2007-12-21T12:13:55Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* TSSP High-level Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
 related - [http://julian.ultralight.org/~fvlingen/managedNetwork/Annex10080807.pdf Managed Circuits] for bulk data transfers&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Capacity'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Teardown ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Capacity ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** How to algorithms fit into our specification goals&lt;br /&gt;
** Should there be a standard algorithm for &lt;br /&gt;
*** download&lt;br /&gt;
*** upload&lt;br /&gt;
*** depot list generation&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=Talk:TSSP_Framework&amp;diff=2944</id>
		<title>Talk:TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=Talk:TSSP_Framework&amp;diff=2944"/>
		<updated>2007-12-21T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My understanding of the TSSP task is to identify and help standardize a sequence of steps that are essential to each of the data operations listed (or eventually requested)(Please redirect me if my interpretation is off. I'd hate to spend time generating information that only makes sense to me!). So I'm starting with a minimalistic set that answers the question &amp;quot;Given a logistical network, what can I do with it?&amp;quot; with &amp;quot;Following this protocol/spec, you can at least achieve this.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
- Hunter 19/20/07&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Here are some comments on your specification page:&lt;br /&gt;
&lt;br /&gt;
1. I think it would be good to list all of the possible actors and their roles at the beginning of the description.  Some of the actors you have listed (such as the &amp;quot;route generator&amp;quot; may not exist yet, which means that perhaps we should not include them in this document.&lt;br /&gt;
&lt;br /&gt;
*Right. In both the routing scenarios the path is manually determined. There's currently no automated agent for either dynamic or static. &lt;br /&gt;
&lt;br /&gt;
2. You should come up with another name/description for the IBP client, one which describes its function, not its implementation.  &amp;quot;Data source&amp;quot; and &amp;quot;Data destination&amp;quot; might be two such roles (notice that there are two roles even though a single protocol is being used).&lt;br /&gt;
&lt;br /&gt;
*This is what I was referring to when I asked about the scope of the actors. I only listed the components embodied by the TSSP implementation and not the external entities it will communicate with. It seems like the presence of a protocol's client implies the participation of its service, but I can make that explicit. &lt;br /&gt;
&lt;br /&gt;
3. Your description of the &amp;quot;Steps&amp;quot; for the various operations is very high level, and some protocols that fit the description definitely would not work, certainly not achieving acceptable performance.  For instance, the multistream TCP download implemented in LoRS is quite complex, with a number of optimization parameters.  Now, we might not want to standardize on a protocol with all that complexity but on the other hand we might want to. If not, then how much complexity do we want to require?  And do we want to specify the full protocol as an optional variant of a simpler one?&lt;br /&gt;
&lt;br /&gt;
4. It's not clear to me why you refer to storage space as bandwidth.  This is not standard terminology even when dealing with communication buffers, as far as I know.  It certainly doesn't fit the scenario when storage allocations are used to implement persistent files (unless you mean to characterize a file as a &amp;quot;channel through time&amp;quot; which is a nice image, but one that few people outside of Claxton Hall will understand).&lt;br /&gt;
&lt;br /&gt;
*Well taken. Maybe we could talk about channel capacity? &lt;br /&gt;
&lt;br /&gt;
5. Your Teardown operation seems to be the only way to truncate the duration of storage allocations.  What if a user simply deletes the exNode without doing the truncation?  Remember, this may happen due to client error, so a protocol that rules it out cannot be implemented reliably.&lt;br /&gt;
&lt;br /&gt;
*This also speaks to my understanding of the TSSP assignment. If TSSP represents the standard sequence of steps that are essential to each of the data operations, then premature deletion of the metadata seems like an implementation fault. Or removal of the metadata can be the responsibility of some other operation?&lt;br /&gt;
**The management of exNodes is at this point unspecified.  We could decide to include in the TSSP a let of rules as well as protocols for managing them, but we certainly don't have such rules now.  When a client obtains an exNode from a directory service, what obligations does it have, if any, in how that exNode is managed?  How about when a client creates a new exNode?  Is there an obligation to register it with a directory and to delete its own copy? If a copy of the exNode is lost, how robust must the directory service and IBP service be (this goes to the question of how long allocation durations are)?&lt;br /&gt;
**It's easy to say that losing the exNode is an implementation fault, but it's not clear that it can be avoided, given that faults can occur in the network and/or operating system serving and connecting the components.  An implementation fault is not simply a runtime fault, it is one that can/should be avoided.&lt;br /&gt;
&lt;br /&gt;
7. I think that some open issues include what sorts of up/download algorithms are considered acceptable.  If there is a single-stream implementation that gets really terrible performance and sometimes doesn't succeed when more sophisticated algorithms succeed, is that an acceptable implementation (becauase when it does succeed it delivers the correct bits).&lt;br /&gt;
&lt;br /&gt;
*Once again, I'm unsure of how a sub-routine would be integrated into a protocol description. This is just part of having an IS guy try to work this out. The exchange would be something like -  &amp;quot;I've followed the TSSP spec and can upload/download, but it sucks!&amp;quot;, response &amp;quot;The TSSP spec is a minimalist representation of how to do those operations. If you want better results, try parallelizing.&amp;quot;&lt;br /&gt;
**The best analogy is TCP.  There are many possible implementations of a TCP-like protocol, but most of the ones that have been documented are not known to work very well.  Particular TCP variants are documented and approved by the IETF, others are not.&lt;br /&gt;
**If someone comes forward with an implementation of TSSP which &amp;quot;meets the specification&amp;quot; but had bad performance or other behavior, would be want to put our stamp of approval on it?  Arguably, it would not be a truely interoperable alternative to existing implementations because applications that used it expecting high performance would be disappointed.  It's all a matter of what we want &amp;quot;interoperable&amp;quot; to mean.&lt;br /&gt;
&lt;br /&gt;
8. The relationship between resources on a single depot needs to be specified.  Are they necessarily independent or can they be linked (eg having resource zero represent the union of the other resources).&lt;br /&gt;
&lt;br /&gt;
*Even local resources of different types? What's the significance of the same-depot resource relationship with regards to the operations listed?&lt;br /&gt;
**Good question.  This issue came up because LoRS cannot make allocations on resources other than zero, but Alan wanted to run depots with multiple resources.  His way of dealing with this was to make resource zero represent the union of all other resources, with an allocation made on resource zero returning a capability pointing to one of the other resources.  It was a &amp;quot;work-around&amp;quot;, but if this sort of this is going to be allowable, that fact should be specified as part of the standard. &amp;quot;  &lt;br /&gt;
&lt;br /&gt;
- Micah/Hunter 12/20/07&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2943</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2943"/>
		<updated>2007-12-21T01:03:51Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* TSSP High-level Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
 reference - [http://julian.ultralight.org/~fvlingen/managedNetwork/Annex10080807.pdf Managed Circuits] for bulk data transfers&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Capacity'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Teardown ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Capacity ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** How to algorithms fit into our specification goals&lt;br /&gt;
** Should there be a standard algorithm for &lt;br /&gt;
*** download&lt;br /&gt;
*** upload&lt;br /&gt;
*** depot list generation&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=Talk:TSSP_Framework&amp;diff=2942</id>
		<title>Talk:TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=Talk:TSSP_Framework&amp;diff=2942"/>
		<updated>2007-12-21T00:58:28Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My understanding of the TSSP task is to identify and help standardize a sequence of steps that are essential to each of the data operations listed (or eventually requested)(Please redirect me if my interpretation is off. I'd hate to spend time generating information that only makes sense to me!). So I'm starting with a minimalistic set that answers the question &amp;quot;Given a logistical network, what can I do with it?&amp;quot; with &amp;quot;Following this protocol/spec, you can at least achieve this.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
- Hunter 19/20/07&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Here are some comments on your specification page:&lt;br /&gt;
&lt;br /&gt;
1. I think it would be good to list all of the possible actors and their roles at the beginning of the description.  Some of the actors you have listed (such as the &amp;quot;route generator&amp;quot; may not exist yet, which means that perhaps we should not include them in this document.&lt;br /&gt;
&lt;br /&gt;
*Right. In both the routing scenarios the path is manually determined. There's currently no automated agent for either dynamic or static. &lt;br /&gt;
&lt;br /&gt;
2. You should come up with another name/description for the IBP client, one which describes its function, not its implementation.  &amp;quot;Data source&amp;quot; and &amp;quot;Data destination&amp;quot; might be two such roles (notice that there are two roles even though a single protocol is being used).&lt;br /&gt;
&lt;br /&gt;
*This is what I was referring to when I asked about the scope of the actors. I only listed the components embodied by the TSSP implementation and not the external entities it will communicate with. It seems like the presence of a protocol's client implies the participation of its service, but I can make that explicit. &lt;br /&gt;
&lt;br /&gt;
3. Your description of the &amp;quot;Steps&amp;quot; for the various operations is very high level, and some protocols that fit the description definitely would not work, certainly not achieving acceptable performance.  For instance, the multistream TCP download implemented in LoRS is quite complex, with a number of optimization parameters.  Now, we might not want to standardize on a protocol with all that complexity but on the other hand we might want to. If not, then how much complexity do we want to require?  And do we want to specify the full protocol as an optional variant of a simpler one?&lt;br /&gt;
&lt;br /&gt;
4. It's not clear to me why you refer to storage space as bandwidth.  This is not standard terminology even when dealing with communication buffers, as far as I know.  It certainly doesn't fit the scenario when storage allocations are used to implement persistent files (unless you mean to characterize a file as a &amp;quot;channel through time&amp;quot; which is a nice image, but one that few people outside of Claxton Hall will understand).&lt;br /&gt;
&lt;br /&gt;
*Well taken. Maybe we could talk about channel capacity? &lt;br /&gt;
&lt;br /&gt;
5. Your Teardown operation seems to be the only way to truncate the duration of storage allocations.  What if a user simply deletes the exNode without doing the truncation?  Remember, this may happen due to client error, so a protocol that rules it out cannot be implemented reliably.&lt;br /&gt;
&lt;br /&gt;
*This also speaks to my understanding of the TSSP assignment. If TSSP represents the standard sequence of steps that are essential to each of the data operations, then premature deletion of the metadata seems like an implementation fault. Or removal of the metadata can be the responsibility of some other operation?&lt;br /&gt;
**The management of exNodes is at this point unspecified.  We could decide to include in the TSSP a let of rules as well as protocols for managing them, but we certainly don't have such rules now.  When a client obtains an exNode from a directory service, what obligations does it have, if any, in how that exNode is managed?  How about when a client creates a new exNode?  Is there an obligation to register it with a directory and to delete its own copy? If a copy of the exNode is lost, how robust must the directory service and IBP service be (this goes to the question of how long allocation durations are)?&lt;br /&gt;
**It's easy to say that losing the exNode is an implementation fault, but it's not clear that it can be avoided, given that faults can occur in the network and/or operating system serving and connecting the components.  An implementation fault is not simply a runtime fault, it is one that can/should be avoided.&lt;br /&gt;
&lt;br /&gt;
7. I think that some open issues include what sorts of up/download algorithms are considered acceptable.  If there is a single-stream implementation that gets really terrible performance and sometimes doesn't succeed when more sophisticated algorithms succeed, is that an acceptable implementation (becauase when it does succeed it delivers the correct bits).&lt;br /&gt;
&lt;br /&gt;
*Once again, I'm unsure of how a sub-routine would be integrated into a protocol description. This is just part of having an IS guy try to work this out. The exchange would be something like -  &amp;quot;I've followed the TSSP spec and can upload/download, but it sucks!&amp;quot;, response &amp;quot;The TSSP spec is a minimalist representation of how to do those operations. If you want better results, try parallelizing.&amp;quot;&lt;br /&gt;
**The best analogy is TCP.  There are many possible implementations of a TCP-like protocol, but most of the ones that have been documented are not known to work very well.  Particular TCP variants are documented and approved by the IETF, others are not.&lt;br /&gt;
**If someone comes forward with an implementation of TSSP which &amp;quot;meets the specification&amp;quot; but had bad performance or other behavior, would be want to put our stamp of approval on it?  Arguably, it would not be a truely interoperable alternative to existing implementations because applications that used it expecting high performance would be disappointed.  It's all a matter of what we want &amp;quot;interoperable&amp;quot; to mean.&lt;br /&gt;
&lt;br /&gt;
8. The relationship between resources on a single depot needs to be specified.  Are they necessarily independent or can they be linked (eg having resource zero represent the union of the other resources).&lt;br /&gt;
&lt;br /&gt;
*Even local resources of different types? What's the significance of the same-depot resource relationship with regards to the operations listed?&lt;br /&gt;
**Good question.  This issue came up because LoRS cannot make allocations on resources other than zero, but Alan wanted to run depots with multiple resources.  His way of dealing with this was to make resource zero represent the union of all other resources, with an allocation made on resource zero returning a capability pointing to one of the other resources.  It was a &amp;quot;work-around&amp;quot;, but if this sort of this is going to be allowable, that fact should be specified as part of the standard. &amp;quot;  &lt;br /&gt;
&lt;br /&gt;
- Micah/Hunter 12/20/07&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=Talk:TSSP_Framework&amp;diff=2938</id>
		<title>Talk:TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=Talk:TSSP_Framework&amp;diff=2938"/>
		<updated>2007-12-20T18:43:22Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: New page: &amp;quot;Here are some comments on your specification page:  1. I think it would be good to list all of the possible actors and their roles at the beginning of the description.  Some of the actors...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;Here are some comments on your specification page:&lt;br /&gt;
&lt;br /&gt;
1. I think it would be good to list all of the possible actors and their roles at the beginning of the description.  Some of the actors you have listed (such as the &amp;quot;route generator&amp;quot; may not exist yet, which means that perhaps we should not include them in this document.&lt;br /&gt;
&lt;br /&gt;
2. You should come up with another name/description for the IBP client, one which describes its function, not its implementation.  &amp;quot;Data source&amp;quot; and &amp;quot;Data destination&amp;quot; might be two such roles (notice that there are two roles even though a single protocol is being used).&lt;br /&gt;
&lt;br /&gt;
3. Your description of the &amp;quot;Steps&amp;quot; for the various operations is very high level, and some protocols that fit the description definitely would not work, certainly not achieving acceptable performance.  For instance, the multistream TCP download implemented in LoRS is quite complex, with a number of optimization parameters.  Now, we might not want to standardize on a protocol with all that complexity but on the other hand we might want to. If not, then how much complexity do we want to require?  And do we want to specify the full protocol as an optional variant of a simpler one?&lt;br /&gt;
&lt;br /&gt;
4. It's not clear to me why you refer to storage space as bandwidth.  This is not standard terminology even when dealing with communication buffers, as far as I know.  It certainly doesn't fit the scenario when storage allocations are used to implement persistent files (unless you mean to characterize a file as a &amp;quot;channel through time&amp;quot; which is a nice image, but one that few people outside of Claxton Hall will understand).&lt;br /&gt;
&lt;br /&gt;
5. Your Teardown operation seems to be the only way to truncate the duration of storage allocations.  What if a user simply deletes the exNode without doing the truncation?  Remember, this may happen due to client error, so a protocol that rules it out cannot be implemented reliably.&lt;br /&gt;
&lt;br /&gt;
6. Why do you need both Teardown and Duration?  The former seems like a special case of the latter.&lt;br /&gt;
&lt;br /&gt;
7. I think that some open issues include what sorts of up/download algorithms are considered acceptable.  If there is a single-stream implementation that gets really terrible performance and sometimes doesn't succeed when more sophisticated algorithms succeed, is that an acceptable implementation (becauase when it does succeed it delivers the correct bits).&lt;br /&gt;
&lt;br /&gt;
8. The relationship between resources on a single depot needs to be specified.  Are they necessarily independent or can they be linked (eg having resource zero represent the union of the other resources). &amp;quot;  - Micah 12/20/07&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2937</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2937"/>
		<updated>2007-12-20T18:41:36Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Open TSSP Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Capacity'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Teardown ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Capacity ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** How to algorithms fit into our specification goals&lt;br /&gt;
** Should there be a standard algorithm for &lt;br /&gt;
*** download&lt;br /&gt;
*** upload&lt;br /&gt;
*** depot list generation&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2936</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2936"/>
		<updated>2007-12-20T18:35:08Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Channel Management */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Capacity'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Teardown ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Capacity ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2935</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2935"/>
		<updated>2007-12-20T18:34:08Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Capacity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Bandwidth'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Teardown ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Capacity ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2934</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2934"/>
		<updated>2007-12-20T18:33:27Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Duration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Bandwidth'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Teardown ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Bandwidth ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. IBP client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
	<entry>
		<id>https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2933</id>
		<title>TSSP Framework</title>
		<link rel="alternate" type="text/html" href="https://www.reddnet.org/mwiki/index.php?title=TSSP_Framework&amp;diff=2933"/>
		<updated>2007-12-20T18:33:07Z</updated>

		<summary type="html">&lt;p&gt;Hunterh: /* Teardown */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft is based on the assumption that a logistical network is viewed essentially as a communication medium. Therefore, we have used networking terms and concepts to identify the types of operations that the TSSP would be responsible for. (back to [[Protocol Standardization Efforts]])&lt;br /&gt;
&lt;br /&gt;
= TSSP High-level Concepts =&lt;br /&gt;
&lt;br /&gt;
 channel - used in this context it represents a set of IBP allocations. Channel &lt;br /&gt;
 use is determined by access to the capability triplets associated with the allocations.&lt;br /&gt;
&lt;br /&gt;
== Channel Usage ==&lt;br /&gt;
* ''Send'' – Is a two step operation that combines establishing and filling/populating a communication channel. The construction of the channel is determined by the communication initiator over an available route.&lt;br /&gt;
** '''Route''' – the ''send'' operation assumes the existence of a known (i.e. static) or unknown (i.e. dynamic) route through which the data fragments will travel. Routes with multiple hops imply multiple instances of data fragments. The route used by the ''send'' characterizes the communication channel, but does not define the end point.&lt;br /&gt;
*** dynamic – results from decision making processes that occur after a ''send'' has already been initiated&lt;br /&gt;
*** static – is determined prior to the execution of a ''send''&lt;br /&gt;
** '''Reuse''' – once a ''send'' has been performed, the communication channel can be reused by filling/populating it with new data. Although it requires administrative access to the channel, it is classified under ''send'' because it represents data transfer.&lt;br /&gt;
* ''Receive'' – Is a generalized operation that allows the recipient of the communication to access the content in the communication channel. &lt;br /&gt;
&lt;br /&gt;
== Channel Management ==&lt;br /&gt;
&lt;br /&gt;
* ''Teardown'' – Deconstructs the communication channel, preventing successful ''send''('''reuse''') and ''receive'' operations.&lt;br /&gt;
* ''Duration'' – Alters the life span of the communication channel by prolonging or shortening its existence.&lt;br /&gt;
* ''Bandwidth'' – Alters the data capacity of the communication channel by increasing or reducing the amount of reserved space.&lt;br /&gt;
&lt;br /&gt;
= Operation Actors and Steps =&lt;br /&gt;
== Send ==&lt;br /&gt;
 '''I. Route (dynamic)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client (see [[Internet Backplane Protocol]])&lt;br /&gt;
   2. depot directory client (see [[Resource Discovery Standardization]])&lt;br /&gt;
   3. depot selection agent&lt;br /&gt;
   4. metadata transfer client (see exnode Management Service Protocol)&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. determine next depot (if any)&lt;br /&gt;
   3. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   4. repeat steps 1-3 until depot set is empty&lt;br /&gt;
   5. publish/record metadata&lt;br /&gt;
 '''II. Route (static)'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. depot directory client &lt;br /&gt;
   3. route generator?&lt;br /&gt;
   4. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain non-empty depot set&lt;br /&gt;
   2. order depot set&lt;br /&gt;
   3. determine next depot (if any)&lt;br /&gt;
   4. reserve and fill channel (allocate &amp;amp; store) &lt;br /&gt;
   5. repeat steps 3 and 4 until depot set is empty&lt;br /&gt;
   6. publish/record metadata &lt;br /&gt;
 '''III. Reuse'''&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client&lt;br /&gt;
   2. metadata transfer client &lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. fill channel (store)&lt;br /&gt;
&lt;br /&gt;
== Receive ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. consume channel content (does not free up channel capacity)&lt;br /&gt;
&lt;br /&gt;
== Teardown ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. data transport client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. force expiration of reserved capacity (results in content loss and increased system capacity)&lt;br /&gt;
&lt;br /&gt;
== Duration ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. IBP client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for longer or shorter duration (can result in data loss and ''teardown'')&lt;br /&gt;
&lt;br /&gt;
== Bandwidth ==&lt;br /&gt;
  A. Actors&lt;br /&gt;
   1. IBP client &lt;br /&gt;
   2. metadata transfer client&lt;br /&gt;
  B. Steps&lt;br /&gt;
   1. obtain metadata of selected channel&lt;br /&gt;
   2. reconfigure channel for greater or lesser capacity (can result in content loss?)&lt;br /&gt;
&lt;br /&gt;
= Open TSSP Issues =&lt;br /&gt;
== Channel creation ==&lt;br /&gt;
* Issues (see send-&amp;gt;route)&lt;br /&gt;
** What's the result when a TSSP request exceeds the depot's limits (duration, space)?&lt;br /&gt;
** What level(s) of security/authorization does TSSP need to handle?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by logistical network configuration&lt;br /&gt;
** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
** Impacts metadata service interface - where/how do I record the metadata?&lt;br /&gt;
&lt;br /&gt;
== Channel management ==&lt;br /&gt;
* Structure (see teardown and send-&amp;gt;route) &lt;br /&gt;
** Issues&lt;br /&gt;
*** Trim (partial teardown?)&lt;br /&gt;
*** Migrate (route''(dynamic)'' + trim)&lt;br /&gt;
*** Teardown&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts resource discovery interface - where can I reserve space?&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover and update the metadata? what do I do when the channel is in use?&lt;br /&gt;
* Persistence (see duration)&lt;br /&gt;
** Issues&lt;br /&gt;
*** Duration policy - limits based on usage profile?&lt;br /&gt;
*** Warming policy - limits based on usage profile and/or resource availability?&lt;br /&gt;
** Impacts&lt;br /&gt;
*** Impacted by logistical network configuration&lt;br /&gt;
*** Impacts metadata service interface - where/how do I recover the metadata?&lt;br /&gt;
(TSSP does '''not''' alter the configuration of the network, only allocation properties, i.e. channel)&lt;br /&gt;
&lt;br /&gt;
== Channel access ==&lt;br /&gt;
* Issues (affects all operations)&lt;br /&gt;
** Concurrent (block/nonblock I/O)&lt;br /&gt;
** Permission management - determining TSSP access to different combinations of caps&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacted by IBP service implementation&lt;br /&gt;
** Impacts metadata service interface - where/how do I recover the metadata? what do I do if the channel is in use?&lt;br /&gt;
** Impacts TSSP(channel_mgmt) - do I have access to the metadata needed in order to execute a task? &lt;br /&gt;
&lt;br /&gt;
== End-to-End services ==&lt;br /&gt;
* Issues (see send-&amp;gt;route and receive)&lt;br /&gt;
** Which, if any, are standard for TSSP?&lt;br /&gt;
* Impacts&lt;br /&gt;
** Impacts metadata schema - what E2E service tags do I have to support?&lt;br /&gt;
&lt;br /&gt;
(back to [[Protocol Standardization Efforts]])&lt;/div&gt;</summary>
		<author><name>Hunterh</name></author>
	</entry>
</feed>