История изменений
Исправление Vit, (текущая версия) :
Структура плоская, но очень длинная (все посты форума подряд). Ребилдить лучше примерно последовательно. Это фактически стандартная задача «разбивки на страницы», которая на больших объемах в чистом виде не разрешима и не параллелится.
Единственный способ разбить равномерно и «дешево», который я придумал - генерить чанки итератором. Нам ведь не надо сразу все чанки знать, достаточно иметь столько чтобы занять все ядра.
Фишка в том, чтобы итератор после отработки запоминал не порядковый номер, а ID поста. Тогда вместо дорогого skip будет дешевый range запрос.
У меня сейчас сделано с разбивкой по датам. Так себе - плотность постов в начале и в конце в 10 раз отличается.
Исходная версия Vit, :
Структура плоская, но очень длинная (все посты форума подряд). Ребилдить лучше примерно последовательно. Это фактически стандартная задача «разбивки на страницы», которая в на больших объемах в чистом виде не разрешима и не параллелится.
Единственный способ разбить равномерно и «дешево», который я придумал - генерить чанки итераторам. Нам ведь не надо сразу все чанки знать, достаточно иметь столько чтобы занять все ядра.
Фишка в том, чтобы итератор после отработки запоминал не порядковый номер, а ID поста. Тогда вместо дорогого skip будет дешевый range запрос.
У меня сейчас сделано с разбивкой по датам. Так себе - плотность постов в начале и в конце в 10 раз отличается.