LevelDB SS file as the storage file format for PostgreSQL [4]

Xiang Xiao
1 min readApr 28, 2020

--

a look of LevelDB storage

LevelDB uses a log-structured merge (LSM) tree type storage system.

LevelDB LSM storage

Log format

block := record* trailer?
record :=
checksum: uint32 // crc32c of type and data[] ; little-endian
length: uint16 // little-endian
type: uint8 // One of FULL, FIRST, MIDDLE, LAST
data: uint8[length]

Sstable format

<beginning_of_file>
[data block 1]
[data block 2]
...
[data block N]
[meta block 1]
...
[meta block K]
[metaindex block]
[index block]
[Footer] (fixed size; starts at file_size - sizeof(Footer))
<end_of_file>

References:

  1. https://github.com/google/leveldb/blob/master/doc/impl.md
  2. https://github.com/google/leveldb/blob/master/doc/log_format.md
  3. https://github.com/google/leveldb/blob/master/doc/table_format.md

--

--