mirror of
https://github.com/isar/libmdbx.git
synced 2025-10-19 10:18:56 +08:00
mdbx: добавление опций для subpage: limit, room_threshold, reserve_prereq, reserve_limit.
This commit is contained in:
44
mdbx.h
44
mdbx.h
@@ -2344,7 +2344,49 @@ typedef enum MDBX_option {
|
||||
* будет УМЕНЬШАТЬ неравномерность заполнения страниц.
|
||||
*
|
||||
* \see MDBX_opt_merge_threshold_16dot16_percent */
|
||||
MDBX_opt_prefer_waf_insteadof_balance
|
||||
MDBX_opt_prefer_waf_insteadof_balance,
|
||||
|
||||
/** \brief Задаёт в % максимальный размер вложенных страниц, используемых для
|
||||
* размещения небольшого количества мульти-значений связанных с одном ключем.
|
||||
*
|
||||
* Использование вложенных страниц, вместо выноса значений на отдельные
|
||||
* страницы вложенного дерева, позволяет уменьшить объем неиспользуемого места
|
||||
* и этим увеличить плотность размещения данных.
|
||||
*
|
||||
* Но с увеличением размера вложенных страниц требуется больше листовых
|
||||
* страниц основного дерева, что также увеличивает высоту основного дерева.
|
||||
* Кроме этого, изменение данных на вложенных страницах требует дополнительных
|
||||
* копирований, поэтому стоимость может быть больше во многих сценариях.
|
||||
*
|
||||
* min 12.5% (8192), max 100% (65535), default = 100% */
|
||||
MDBX_opt_subpage_limit,
|
||||
|
||||
/** \brief Задаёт в % минимальный объём свободного места на основной странице,
|
||||
* при отсутствии которого вложенные страницы выносятся в отдельное дерево.
|
||||
*
|
||||
* min 0, max 100% (65535), default = 0 */
|
||||
MDBX_opt_subpage_room_threshold,
|
||||
|
||||
/** \brief Задаёт в % минимальный объём свободного места на основной странице,
|
||||
* при наличии которого, производится резервирование места во вложенной.
|
||||
*
|
||||
* Если на основной странице свободного места недостаточно, то вложенная
|
||||
* страница будет минимального размера. В свою очередь, при отсутствии резерва
|
||||
* во вложенной странице, каждое добавлении в неё элементов будет требовать
|
||||
* переформирования основной страниц с переносом всех узлов данных.
|
||||
*
|
||||
* Поэтому резервирование места, как правило, выгодно в сценариях с
|
||||
* интенсивным добавлением коротких мульти-значений, например при
|
||||
* индексировании. Но уменьшает плотность размещения данных, соответственно
|
||||
* увеличивает объем БД и операций ввода-вывода.
|
||||
*
|
||||
* min 0, max 100% (65535), default = 42% (27525) */
|
||||
MDBX_opt_subpage_reserve_prereq,
|
||||
|
||||
/** \brief Задаёт в % ограничение резервирования места на вложенных страницах.
|
||||
*
|
||||
* min 0, max 100% (65535), default = 4.2% (2753) */
|
||||
MDBX_opt_subpage_reserve_limit
|
||||
} MDBX_option_t;
|
||||
|
||||
/** \brief Sets the value of a extra runtime options for an environment.
|
||||
|
Reference in New Issue
Block a user