TSSP Procedures: Difference between revisions
Jump to navigation
Jump to search
(2 intermediate revisions by the same user not shown) | |||
Line 37: | Line 37: | ||
# exit | # exit | ||
# no action | # no action | ||
# retry (limit?) | # retry (limit?). exit | ||
# exit | # exit | ||
</td> | </td> | ||
Line 146: | Line 146: | ||
</td> | </td> | ||
<td> | <td> | ||
# retry (limit?). otherwise cache locally(?) or expire channel | # retry (limit?). otherwise cache locally(?) or expire channel. exit | ||
# cache locally(?) or expire channel | # cache locally(?) or expire channel. exit | ||
# expire channel | # expire channel. exit | ||
# expire channel | # expire channel. exit | ||
# expire channel | # expire channel. exit | ||
# retry (limit?). otherwise cache locally or expire channel | # retry (limit?). otherwise cache locally or expire channel. exit | ||
# expire channel | # expire channel. exit | ||
# no action. results in inaccessible channel capacity and content | # no action. results in inaccessible channel capacity and content | ||
</td> | </td> | ||
Line 180: | Line 180: | ||
# connection broken | # connection broken | ||
# operation canceled | # operation canceled | ||
# operation interrupted | # operation interrupted (client crash) | ||
</td> | </td> | ||
<td> | <td> | ||
# metadata is not purged, remains in the namespace, and contains unexpired allocations. retry (limit? time?) | # metadata is not purged, remains in the namespace, and contains unexpired allocations. retry (limit? time?) | ||
# metadata is not purged, remains in the namespace, and contains unexpired allocations | # metadata is not purged, remains in the namespace, and contains unexpired allocations. exit | ||
# interpreted as expired allocation. metadata is purged | # interpreted as expired allocation. metadata is purged | ||
# interpreted as unauthorized allocation. metadata is purged | # interpreted as unauthorized allocation. metadata is purged | ||
# retry (limit?) | # retry (limit?). exit | ||
# metadata is not purged, remains in the namespace, and contains unexpired allocations (i.e. partial channel and content) | # metadata is not purged, remains in the namespace, and contains unexpired allocations (i.e. partial channel and content). exit | ||
# no action. can result in partial channel and content | # no action. can result in partial channel and content | ||
</td> | </td> | ||
Line 204: | Line 204: | ||
# connection broken | # connection broken | ||
# operation canceled | # operation canceled | ||
# operation interrupted | # operation interrupted (client crash) | ||
# output stream closed | # output stream closed | ||
</td> | </td> | ||
<td> | <td> | ||
# | # retry. try replica. exit | ||
# | # exit | ||
# | # try replica. exit | ||
# | # try replica. exit | ||
# | # retry. try replica. exit | ||
# | # retry. try replica. exit | ||
# | # exit | ||
# | # no action | ||
# | # exit | ||
</td> | </td> | ||
</tr> | </tr> | ||
Line 231: | Line 231: | ||
# connection broken | # connection broken | ||
# operation canceled | # operation canceled | ||
# operation interrupted | # operation interrupted (client crash) | ||
</td> | </td> | ||
<td> | <td> | ||
# | # retry (limit?). exit | ||
# | # exit | ||
# | # exit | ||
# | # exit | ||
# | # exit | ||
# | # retry (limit?). exit | ||
# | # undo duration changes to altered allocations. exit | ||
# | # no action. results in skewed channel duration | ||
</td> | </td> | ||
</tr> | </tr> | ||
Line 256: | Line 256: | ||
# connection broken | # connection broken | ||
# operation canceled | # operation canceled | ||
# operation interrupted | # operation interrupted (client crash) | ||
</td> | </td> | ||
<td> | <td> | ||
# | # retry (limit?). exit | ||
# | # exit | ||
# | # exit | ||
# | # exit | ||
# | # exit | ||
# | # retry (limit?). exit | ||
# | # undo resizing of altered allocations. exit | ||
# | # no action. results in skewed channel capacity | ||
</td> | </td> | ||
</tr> | </tr> | ||
</table> | </table> |
Latest revision as of 20:40, 31 January 2008
This section contains recommendations pertaining to the Issues section of the TSSP Framework article.
(back to Protocol Standardization Efforts)
Fault Tolerance
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:
- Inaccessible channel capacity (can not be remedied by TSSP)
- Inaccessible channel content (can not be remedied by TSSP)
- Skewed channel duration
- Skewed channel capacity
Step | Occurrence | Parallel (T/F) | Cause of Failure | Procedure |
---|---|---|---|---|
obtain metadata | 5 | F |
|
|
fill channel (store/copy) | 3 | T |
|
|
obtain depot set | 2 | T |
|
|
determine next depot | 2 | F |
|
|
reserve channel (alloc) | 2 | T |
|
|
publish/record metadata | 2 | F |
|
|
order depot set | 1 | F |
|
|
expire channel | 1 | T |
|
|
consume content (load) | 1 | T |
|
|
channel duration | 1 | T |
|
|
channel capacity | 1 | T |
|
|