2.6.1 NDB Layer

The NDB layer, for the purpose of discussion in this section, consists of two portions: an infrastructure portion, and the NDB portion, as shown in the following diagram.

NDB layer

Figure 16: NDB layer

The infrastructure portion contains the various elements in the PST that maintain the lowest-level information, which includes: the PST header and the allocation metadata pages (that is, AMaps, PMaps, FMaps, FPMaps, and the DList). Together these entities form the underlying infrastructure that represent the metadata and state on which the proper functioning of the PST relies. The header and the allocation metadata pages are the only entities in the PST that are ever modified in-place.

The NDB portion is the node database that includes the NBT and BBT, and all its associated operations. This section covers the various implementation considerations associated with the NDB Layer. To start, the following table illustrates the various entities that exist in the NDB layer.

Entity

Required?

Instances

Remarks

PST HEADER

Y

1

The PST header MUST be maintained and up-to-date at all times.

AMap

Y

Many, Periodic

Authoritative source of all free/allocated space in the PST, MUST be maintained at all times.

PMap

Y

Many, Periodic

MUST exist in correct intervals for backward client compatibility. Implementations SHOULD NOT modify PMaps after they are created.<19>

FMap

Y

Many, Periodic

MUST exist in correct intervals for backward client compatibility. Implementations SHOULD NOT modify FMaps after they are created.<20>

FPMap

Y

Many, Periodic

MUST exist in correct intervals for backward client compatibility. Implementations SHOULD NOT modify FPMaps after they are created.<21>