IWKV

block size: u128
max key+value size: 268435455 (~255Mb)
max data file size: 512G

SBLK - Skip list node with pointers to next nodes and pointer to KVBLK (key/value pairs block).
       SBLK has fixed size (256 bytes). SBLK file position (block adress) within a file is
       fixed and cannot be changed.

V1 SBLK layout:

  [u1:flags,lvl:u1,lkl:u1,pnum:u1,p0:u4,kblk:u4,pi:u1[32],n:u4[24],lk:u116]:u256

V2 SBLK layout:

  [flags:u1,lvl:u1,lkl:u1,pnum:u1,p0:u4,kblk:u4,pi:u1[32],n:u4[24],bpos:u1,lk:u115]:u256
                                        \
                                       KVBLK

  flags  - Persistent block flags (1 byte)
  lvl    - Skiplist level of this block (1 byte)
  lkl    - Length of the lower key in this block (1 byte)
  pnum   - Number of active kv indexes in `SBLK::pi`
  p0     - Address of previous sblk block at zero level
  kblk   - Block number of associated KVBLK. (4 bytes)
  pi[32] - Array of key/value pair indexes in KVBLK block.
           Indexes are sorted by keys. (32 bytes)
  n[24]  - Pointers to next SBLK blocks in skiplist (96 bytes)
  bpos   - Position of SBLK in a page block starting with 1 (zero means SBLK deleted)
  lk     - Buffer for the lowest key among all key/value pairs stored in KVBLK


KVBLK - Data block stored a set of key/value pairs associated with SBLK

[szpow:u1,idxsz:u2,KVI[32] ___free space___ [[KV],...]]

  szpow   - KVBLK length as power of 2
  idxsz   - Length of KVI array in bytes
  KVI[32] - [ps:vn, pl:vn]
              ps: key/value pair block offset on i-th place variable length encoded number.
                  This offset is relative to end of KVBLK block
              pl: key/value pair block length on i-th place variable length encoded number

  KV     - [klen:vn,key,value]
           Key/value pair
             klen:  Key length as variable length encoded number
            key:   Key data buffer
            value: Value data buffer

DB header block:

  [magic:u4,dbflg:u1,dbid:u4,next_db_blk:u4,p0:u4,n[24]:u4,c[24]:u4,meta_blk:u4,meta_len:u4]:217

  magic       - DB magic number 0x69776462
  dbflg       - Database flags
  next_db_blk - Next database meta block number or zero
  dbid        - Database ID
  p0          - Last database block
  n24         - Skiplist next pointers to `SBLK`
  c24         - SBLK count per level,
  /* since file format v1 */
  meta_blk    - Database metadata block number
  meta_blkn   - Database metadata block count

HEADER:

  [magic:u4,u8:fistdb_addr]

  magic       - File magic number 0x69776b76
  fistdb_addr - Address of the first db in the DB chain

------------------------------------------------------------

WAL

1. Extra rdb methods




