2017-04-24 01:33:08 -07:00
|
|
|
# Chunks Disk Format
|
|
|
|
|
2019-03-25 03:33:38 -07:00
|
|
|
The following describes the format of a chunks file,
|
|
|
|
which is created in the `chunks/` directory of a block.
|
|
|
|
The maximum size per segment file is 512MiB.
|
2017-04-28 05:17:53 -07:00
|
|
|
|
2019-03-25 03:33:38 -07:00
|
|
|
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).
|
2017-04-24 01:33:08 -07:00
|
|
|
|
|
|
|
```
|
2019-09-19 03:56:32 -07:00
|
|
|
┌──────────────────────────────┐
|
|
|
|
│ magic(0x85BD40DD) <4 byte> │
|
|
|
|
├──────────────────────────────┤
|
|
|
|
│ version(1) <1 byte> │
|
|
|
|
├──────────────────────────────┤
|
|
|
|
│ padding(0) <3 byte> │
|
|
|
|
├──────────────────────────────┤
|
|
|
|
│ ┌──────────────────────────┐ │
|
|
|
|
│ │ Chunk 1 │ │
|
|
|
|
│ ├──────────────────────────┤ │
|
|
|
|
│ │ ... │ │
|
|
|
|
│ ├──────────────────────────┤ │
|
|
|
|
│ │ Chunk N │ │
|
|
|
|
│ └──────────────────────────┘ │
|
|
|
|
└──────────────────────────────┘
|
2019-03-25 03:33:38 -07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
# Chunk
|
|
|
|
|
|
|
|
```
|
|
|
|
┌───────────────┬───────────────────┬──────────────┬────────────────┐
|
|
|
|
│ len <uvarint> │ encoding <1 byte> │ data <bytes> │ CRC32 <4 byte> │
|
|
|
|
└───────────────┴───────────────────┴──────────────┴────────────────┘
|
2017-04-24 01:33:08 -07:00
|
|
|
```
|
2021-06-30 03:45:43 -07:00
|
|
|
|
|
|
|
## Histogram chunk
|
|
|
|
|
|
|
|
```
|
|
|
|
┌──────────────┬─────────────────┬──────────────────────────┬──────────────────────────┬──────────────┐
|
|
|
|
│ len <uint16> │ schema <varint> │ pos-spans <span-section> │ neg-spans <span-section> │ data <bytes> │
|
|
|
|
└──────────────┴─────────────────┴──────────────────────────┴──────────────────────────┴──────────────┘
|
|
|
|
|
|
|
|
span-section:
|
|
|
|
|
|
|
|
┌──────────────┬──────────────────┬──────────────────┬────────────┐
|
|
|
|
│ len <varint> │ length1 <varint> │ offset1 <varint> │ length2... │
|
|
|
|
└──────────────┴──────────────────┴──────────────────┴────────────┘
|
|
|
|
```
|