Как работает алгоритм пакетной выборки Hibernate?

Я нашел это описание алгоритма пакетной выборки в «Manning - Java Persistence with Hibernate»:

Каков настоящий алгоритм пакетной выборки? (...) Представьте себе размер пакета 20 и общее количество 119 неинициализированных прокси, которые должны быть загружены в пакетах. Во время запуска Hibernate считывает метаданные сопоставления и создает 11 пакетных загрузчиков внутри. Каждый загрузчик знает, сколько прокси-серверов он может инициализировать: 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1. Цель состоит в том, чтобы минимизировать потребление памяти для создания загрузчика и создать достаточно загрузчиков, чтобы каждый возможна пакетная выборка. Очевидно, что другая цель - минимизировать количество SQL SELECT. Для инициализации 119 прокси Hibernate выполняет семь пакетов (вы, вероятно, ожидали шесть, потому что 6 x 20> 119). Применяемые пакетные загрузчики: пять раз по 20, один раз по 10 и один раз по 9, автоматически выбираемые Hibernate.

но я до сих пор не понимаю, как это работает.

Почему 11 пакетных погрузчиков?Почему пакетные загрузчики могут инициализировать: 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 прокси?

Если бы кто-нибудь мог представить пошаговый алгоритм ... :)

Ответы на вопрос(2)

Ваш ответ на вопрос