UP

Some definitions: A segment is a tree of pages. A consistent segment is one that may not be modified except via the top node. This means that there are no page, node or fetch keys to pieces of the segment except in the segment and that, of all segment keys to parts of the segment, those keys that are not in the segment have the read-only bit on. A discreet segment is one that may not be read except via the top key. This means that there are no fetch keys or page keys to parts of the segment except for those in the segment.

To motivate the need to know that a segment is consistent, imagine that a program is provided with segment S and that it is to modify data D in a manner that depends on the contents of S. Our program is responsible for the integrity of D but the provider of S is not. In order to insure the correct functioning of the program it may be necessary to know that S will not change while the program is running. More generally it may be necessary to know that S will not change except insofar as the program changes it.

To motivate the need to know that a segment is discreet, assume that a program is given a segment S and that its job is to modify it and return the modified version. Assume further that the nature of the algorithm is proprietary and that the intermediate steps are secret. Knowing that the segment is discreet will allow the program to work directly on the data without copying it.

Clearly, a segment is consistent or discreet only relative to some space bank. The keys that the space bank keeps would allow it to modify or read data in the pages. Thus the space bank must be trusted (and trustworthy). For this reason a space bank has an additional function, that of verifying that a segment is consistent or discreet. The space bank may be in a position to do this more efficiently than any other program because it has special tools that it uses to recycle pages that have been returned. These tools insure that there are no copies of keys to the given page. Normally this is done in conjunction with clearing the page, but the page need not be cleared. The transformation of a segment into a consistent segment may be done only to segments for which the holder holds a write key. It is equivalent to copying the data from the old segment into a new one and deleting the old one, but perhaps cheaper.

Sponsored segments are constructed with memory nodes that have meter keys in them. The space bank provides segments that are copies of the callers segment and are sponsored. The meter key in a sponsored segment points to one of the space bank's meters. The space bank charges for this service in proportion to the duration of the sponsored segment and the size of the segment.