37 lines
2.6 KiB
Markdown
37 lines
2.6 KiB
Markdown
|
# Head Chunks on Disk Format
|
||
|
|
||
|
The following describes the format of a chunks file,
|
||
|
which is created in the `wal/chunks/` inside the data directory.
|
||
|
|
||
|
Chunks in the files are referenced from the index by uint64 composed of
|
||
|
in-file offset (lower 4 bytes) and segment sequence number (upper 4 bytes).
|
||
|
|
||
|
```
|
||
|
┌──────────────────────────────┐
|
||
|
│ magic(0x85BD40DD) <4 byte> │
|
||
|
├──────────────────────────────┤
|
||
|
│ version(1) <1 byte> │
|
||
|
├──────────────────────────────┤
|
||
|
│ padding(0) <3 byte> │
|
||
|
├──────────────────────────────┤
|
||
|
│ ┌──────────────────────────┐ │
|
||
|
│ │ Chunk 1 │ │
|
||
|
│ ├──────────────────────────┤ │
|
||
|
│ │ ... │ │
|
||
|
│ ├──────────────────────────┤ │
|
||
|
│ │ Chunk N │ │
|
||
|
│ └──────────────────────────┘ │
|
||
|
└──────────────────────────────┘
|
||
|
```
|
||
|
|
||
|
|
||
|
# Chunk
|
||
|
|
||
|
Unlike chunks in the on-disk blocks, here we additionally store series reference that the chunks belongs to and the mint/maxt of the chunks. This is because we don't have an index associated with these chunks, hence these meta information are used while replaying the chunks.
|
||
|
|
||
|
```
|
||
|
┌─────────────────────┬───────────────────────┬───────────────────────┬───────────────────┬───────────────┬──────────────┬────────────────┐
|
||
|
| series ref <8 byte> | mint <8 byte, uint64> | maxt <8 byte, uint64> | encoding <1 byte> | len <uvarint> | data <bytes> │ CRC32 <4 byte> │
|
||
|
└─────────────────────┴───────────────────────┴───────────────────────┴───────────────────┴───────────────┴──────────────┴────────────────┘
|
||
|
```
|