Terminology and components
- PSS instance
- A set of Bin Files on a single drive. One is deployed separately per drive. There are as many instances as there are active drives in a running Slicestor node.
- Bin Files (128 per drive)
- The source for all data associated with a PSS instance. Bin files are used for all data-related operations and to recover other components in disaster recovery situations. Each bin file contains a header, and zero or more bins.
- Bin
- A container that stores zero or more slices that can be referenced individually in a bin file.
Slices are assigned to bins based on a slice name hash value.Note: Potentially, multiple slices could share a bin, which is known as a hash collision. The number of bins on disk is large enough to avoid frequent hash collisions.
- In-memory pointers
- All bin locations are stored in memory; these in-memory pointers are used when servicing normal client IO. The amount of pointers that can be held depends on available system memory at the time of storage pool creation.
- Pointer file (one per disk)
- Every running PSS instance maintains a log-based journal file for bin locations written to PSS. It is used to restore bin references to system memory during system startup only. It is not needed to perform operations. The pointer file is appended with bin references each time a slice is written. It is periodically compressed to remove old pointer values.
- Catalog (one instance per disk)
- A database that holds extant slice names and their revisions. This database allows for efficient client object slice listing operations.