# Memory Snapshot Format Memory snapshot uses the WAL package and writes each series as a WAL record. Below are the formats of the individual records. ### Series records This record is a snapshot of a single series. Only one series exists per record. It includes the metadata of the series and the in-memory chunk data if it exists. The sampleBuf is the last 4 samples in the in-memory chunk. ``` ┌──────────────────────────┬────────────────────────────┐ │ Record Type │ Series Ref │ ├──────────────────────────┴────────────────────────────┤ │ Number of Labels │ ├──────────────────────────────┬────────────────────────┤ │ len(name_1) │ name_1 │ ├──────────────────────────────┼────────────────────────┤ │ len(val_1) │ val_1 │ ├──────────────────────────────┴────────────────────────┤ │ . . . │ ├──────────────────────────────┬────────────────────────┤ │ len(name_N) │ name_N │ ├──────────────────────────────┼────────────────────────┤ │ len(val_N) │ val_N │ ├──────────────────────────────┴────────────────────────┤ │ Chunk Range │ ├───────────────────────────────────────────────────────┤ │ Chunk Exists │ │ # 1 if head chunk exists, 0 otherwise to detect a nil | | # chunk. Below fields exists only when it's 1 here. | ├───────────────────────────┬───────────────────────────┤ │ Chunk Mint │ Chunk Maxt │ ├───────────────────────────┴───────────────────────────┤ │ Chunk Encoding │ ├──────────────────────────────┬────────────────────────┤ │ len(Chunk) │ Chunk │ ├──────────────────────────┬───┴────────────────────────┤ | sampleBuf[0].t | sampleBuf[0].v | ├──────────────────────────┼────────────────────────────┤ | sampleBuf[1].t | sampleBuf[1].v | ├──────────────────────────┼────────────────────────────┤ | sampleBuf[2].t | sampleBuf[2].v | ├──────────────────────────┼────────────────────────────┤ | sampleBuf[3].t | sampleBuf[3].v | └──────────────────────────┴────────────────────────────┘ ``` ### Tombstone record This includes all the tombstones in the Head block. A single record is written into the snapshot for all the tombstones. The encoded tombstones uses the same encoding as tombstone file in blocks. ``` ┌─────────────────────────────────────────────────────────────────┐ │ Record Type │ ├───────────────────────────────────┬─────────────────────────────┤ │ len(Encoded Tombstones) │ Encoded Tombstones │ └───────────────────────────────────┴─────────────────────────────┘ ```