LINUX.ORG.RU

История изменений

Исправление Vit, (текущая версия) :

Структура плоская, но очень длинная (все посты форума подряд). Ребилдить лучше примерно последовательно. Это фактически стандартная задача «разбивки на страницы», которая на больших объемах в чистом виде не разрешима и не параллелится.

Единственный способ разбить равномерно и «дешево», который я придумал - генерить чанки итератором. Нам ведь не надо сразу все чанки знать, достаточно иметь столько чтобы занять все ядра.

Фишка в том, чтобы итератор после отработки запоминал не порядковый номер, а ID поста. Тогда вместо дорогого skip будет дешевый range запрос.

У меня сейчас сделано с разбивкой по датам. Так себе - плотность постов в начале и в конце в 10 раз отличается.

Исходная версия Vit, :

Структура плоская, но очень длинная (все посты форума подряд). Ребилдить лучше примерно последовательно. Это фактически стандартная задача «разбивки на страницы», которая в на больших объемах в чистом виде не разрешима и не параллелится.

Единственный способ разбить равномерно и «дешево», который я придумал - генерить чанки итераторам. Нам ведь не надо сразу все чанки знать, достаточно иметь столько чтобы занять все ядра.

Фишка в том, чтобы итератор после отработки запоминал не порядковый номер, а ID поста. Тогда вместо дорогого skip будет дешевый range запрос.

У меня сейчас сделано с разбивкой по датам. Так себе - плотность постов в начале и в конце в 10 раз отличается.