pmResult
       After the archive log label record, an archive volume file
       contains metric values corresponding to the pmResult set of one
       pmFetch operation, which is almost identical to the form on disk.
       The record size may vary according to number of PMIDs being
       fetched, the number of instances for their domains.  File size is
       limited to 2GiB, due to storage of 32-bit offsets within the
       temporal index.
        ┌────────┬────────┬───────────────────────────────────────────┐
        │Offset  │ Length │                   Name                    │
        ├────────┼────────┼───────────────────────────────────────────┤
        │   0    │   4    │ timestamp, seconds part (past UNIX epoch) │
        │   4    │   4    │ timestamp, microseconds part              │
        │   8    │   4    │ number of PMIDs with data following       │
        │  12    │   M    │ pmValueSet #0                             │
        │ 12+M   │   N    │ pmValueSet #1                             │
        │12+M+N  │  ...   │ ...                                       │
        │  NOP   │   X    │ pmValueBlock #0                           │
        │ NOP+X  │   Y    │ pmValueBlock #1                           │
        │NOP+X+Y │  ...   │ ...                                       │
        └────────┴────────┴───────────────────────────────────────────┘
       Records with a number-of-PMIDs equal to zero are "mark records",
       and represent interruptions, missing data, or time
       discontinuities in logging.
   pmValueSet
       This subrecord represents the measurements for one metric.
       ┌───────┬────────┬────────────────────────────────────────────────┐
       │Offset │ Length │                      Name                      │
       ├───────┼────────┼────────────────────────────────────────────────┤
       │  0    │   4    │ PMID                                           │
       │  4    │   4    │ number of values                               │
       │  8    │   4    │ storage mode, PM_VAL_INSITU=0 or PM_VAL_DPTR=1 │
       │  12   │   M    │ pmValue #0                                     │
       │ 12+M  │   N    │ pmValue #1                                     │
       │12+M+N │  ...   │ ...                                            │
       └───────┴────────┴────────────────────────────────────────────────┘
       The metric-description metadata for PMIDs is found in the .meta
       files.  These entries are not timestamped, so the metadata is
       assumed to be unchanging throughout the archiving session.
   pmValue
       This subrecord represents one measurement for one instance of the
       metric.  It is a variant type, depending on the parent
       pmValueSet's value-format field.  This allows small numbers to be
       encoded compactly, but retain flexibility for larger or variable-
       length data to be stored later in the pmResult record.
       ┌───────┬────────┬───────────────────────────────────────────────┐
       │Offset │ Length │                     Name                      │
       ├───────┼────────┼───────────────────────────────────────────────┤
       │  0    │   4    │ number in instance-domain (or PM_IN_NULL=-1)  │
       │  4    │   4    │ value (INSITU) or                             │
       │       │        │ offset in pmResult to our pmValueBlock (DPTR) │
       └───────┴────────┴───────────────────────────────────────────────┘
       The instance-domain metadata for PMIDs is found in the .meta
       files.  Since the numeric mappings may change during the lifetime
       of the logging session, it is important to match up the timestamp
       of the measurement record with the corresponding instance-domain
       record.  That is, the instance-domain corresponding to a
       measurement at time T are the records with largest timestamps T'
       <= T.
   pmValueBlock
       Instances of this subrecord are placed at the end of the
       pmValueSet, after all the pmValue subrecords.  If (and only if)
       needed, they are padded at the end to the next-higher 32-bit
       boundary.
       ┌───────┬────────┬────────────────────────────────────────────────┐
       │Offset │ Length │                      Name                      │
       ├───────┼────────┼────────────────────────────────────────────────┤
       │  0    │   1    │ value type (same as pmDesc.type)               │
       │  1    │   3    │ 4 + N, the length of the subrecord             │
       │  4    │   N    │ bytes that make up the raw value               │
       │ 4+N   │  0-3   │ padding (not included in the 4+N length field) │
       └───────┴────────┴────────────────────────────────────────────────┘
       Note that for PM_TYPE_STRING, the length includes an explicit
       NULL terminator byte.  For PM_TYPE_EVENT, the value bytestring is
       further structured.