mirror of
https://github.com/isar/libmdbx.git
synced 2024-10-29 23:19:20 +08:00
mdbx: устранение лишней итерации внутри tree_rebalance()
.
Допускаем итерацию с не-вовлечением еще не-измененных страниц, только когда страницы для объединения доступны справа и слева, Т.е. допускаем итерацию для выбора лучшей альтернативы (справа или слева), и избегаем этой итерации когда альтернативы нет.
This commit is contained in:
parent
9309aa7e12
commit
69aa9e0fe1
@ -855,7 +855,7 @@ int tree_rebalance(MDBX_cursor *mc) {
|
||||
const size_t right_room = right ? page_room(right) : 0;
|
||||
const size_t left_nkeys = left ? page_numkeys(left) : 0;
|
||||
const size_t right_nkeys = right ? page_numkeys(right) : 0;
|
||||
bool involve = false;
|
||||
bool involve = !(left && right);
|
||||
retry:
|
||||
cASSERT(mc, mc->top > 0);
|
||||
if (left_room > room_threshold && left_room >= right_room &&
|
||||
|
Loading…
Reference in New Issue
Block a user