UP

Introduction

Some of the anticipated uses of charge sets {(p1,chrgset)} do not require long term state integrity. Such integrity is not easy to provide and we do not plan to provide it soon. Thus we take the liberty of zapping charge sets when we need the room that their representation occupies {rather than keeping them on disk}. Zapping {inactivating} consists of making the set have no pages.

External Specs

This section may supersede portions of "Charge Sets" (p1,chrgset).

Attributes of a charge set

Sometimes a charge set is "active" and at all other times it is "inactive".

There is a varying relation between a charge set and a page: the page may "belong" to the set.

No pages belong to an inactive charge set.

Someday nodes may also belong to charge sets.

Active charge sets have a 64 bit "TOD" value which depicts the time when the set last became active.

{ni}There is a charge set key creator.

See (p2,cst) for what is available today.

SCSC(0;SB==>c;SCS) If SB is not an official prompt space bank, c will be 1. If enough space cannot be obtained from SB, c will be 2. Otherwise SCSC returns the only key to an inactive Simple Charge Set, SCS.

SCSC(kt==>X'01D')

Calls to the simple charge set key.

SCS(0==>n,tod) "count pages" where SCS is a charge set key, n is the number of pages in the charge set, and tod is the TOD clock value when the charge set was last activated. If the charge set is not active then both n and tod will be zero.

SCS(1==>n,(8,tod)) "count nodes" where SCS is a charge set key, n is the number of nodes in the charge set, and tod is the TOD clock value when the charge set was last activated. If the charge set is not active then both n and tod will be zero.

SCS(2==>0) "reset charge set" where SCS is a charge set key clears all pages and nodes from the charge set and automatically re-activates the charge set.

SCS(kt==>X'A09')

Charge Set Growth

When a domain under a charge set {(p1,m7)} references a page, that page is added to the set {if not already in the set}. If the set was inactive it is made active and the TOD value of the set is made to be the current TOD value.

Charge Set Decay

One of the two following schemes will be used to make charge sets decrease in size. The first scheme is implemented.

Sometimes the charge set will {spontaneously decay and} become inactive. Its half-life is anticipated to be many minutes.

{ni}Pages belonging to a set will be removed from the set if they are unreferenced after some amount of headway as measured at the meter holding the charge-set key.

Charge Set Tool

CST(0,(6,id)==>rc;SCS) returns a Simple Charge Set whose internal id number is id. Simple Charge Set keys with the same internal id number represent the same charge set. If id is zero then rc is -1, otherwise it is zero.

CST may currently be found in slot 11 of SYSNODE {(p2,sysnode)}.

See (p1,bloom-ch) for an alternative idea.