Я написал пару реализаций дерева B +.Для запроса диапазона вы перемещаете курсор на клавишу с нижней границей диапазона, затем «двигаетесь вправо», пока не достигнете верхней границы.Дерево B + -линков (которое имеет левые / правые указатели между конечными узлами) делает это чрезвычайно простым.
Однако я никогда не реализовывал изоляцию моментальных снимков.Я думаю, что это сильно зависит от вашего алгоритма изоляции.Если вы используете теневые страницы (где вы создаете копии измененных страниц для каждой транзакции), то вам нужно проверить, существует ли теневая страница, прежде чем «двигаться вправо» по конечным узлам.