LMDB: как эффективно хранить большие размеры - PullRequest
0 голосов
/ 28 марта 2019

Я использую LMDB для хранения пар ключ-значение, размеры которых имеют порядок 200 байт.Я сталкиваюсь со сценариями, в которых размеры значений могут вырасти до 8 КБ или более.

Согласно: https://lmdb.readthedocs.io/en/release/#storage-efficiency-limits и https://github.com/lmdbjava/benchmarks/blob/master/results/20160710/README.md, LMDB наиболее эффективен для значений размера в размере страницы (4096 КБ), иначе это может привести к фрагментации из-за переполнения страниц.

Мои основные вопросы:

  1. Нужно ли разбивать мое значение на приращения размера страницы для оптимальной производительности?
  2. Расположены ли лексикографические ключи в LMDB на соседних страницах?Допустим, мое значение составляет около 14 КБ, и я разбил его на блоки по 8 КБ, 4 КБ и 2 КБ со значениями ключа: key_chunk1, key_chunk_2, key_chunk_3, они будут на соседних страницах?Допустим, последний фрагмент (значение 2 КБ) находится на новой странице, а следующий лексикографически отсортированный ключ имеет значение 4 КБ. Это будет на новой странице, поскольку она не может поместиться на существующей странице?
...