mdbx: устранение лишней итерации внутри tree_rebalance().

Допускаем итерацию с не-вовлечением еще не-измененных страниц,
только когда страницы для объединения доступны справа и слева,

Т.е. допускаем итерацию для выбора лучшей альтернативы (справа или слева),
и избегаем этой итерации когда альтернативы нет.
This commit is contained in:
Леонид Юрьев (Leonid Yuriev) 2024-07-23 15:59:59 +03:00
parent 9309aa7e12
commit 69aa9e0fe1

View File

@ -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 &&