3.1.1 Abstract Data Model

This section describes a conceptual model that an implementation can maintain to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

The sections that follow list the states that are associated with this protocol. Some of these states are to be maintained in persistent storage, which is to be available even when this protocol is initialized following a previous shutdown. Most states are also maintained within in-memory data structures. Each state that follows specifies whether it is stored in-memory, in persistent storage, or in both.

Methods that create, modify, or delete states that are stored within memory as well as in persistent storage initially write the state to memory and subsequently write it to persistent store before returning.

Note that the abstract interface notation (Public) indicates that the abstract data model element can be directly accessed from outside this protocol.