A simple implementation of a mmapv1-like storage system.
A storage pool supports both random-access lookup and scanning (i.e., it is the filesystem analog of a collection). Since documents are variable length, each block has a small fixed-sized header indicating the size of the next document in bytes. Each block is stored as a power of two for efficiency reasons.
Represents a memory block: offset and size.
A linear collection of contiguous blocks.
A wrapper around a
Document which contains pool allocation information.