Вот проблема, которую я пытаюсь решить:
Мне нужно иметь возможность отображать разбитую на страницы отсортированную таблицу данных, которая хранится в нескольких сегментах базы данных.
Пейджинг и сортировка - это хорошо известные проблемы, которые большинство из нас может решить разными способами, когда данные поступают из одного источника. Но если вы распределяете свои данные по осколкам, используете DHT или базу данных распределенных документов или любой другой вариант NoSQL, который вы предпочитаете, все становится сложнее.
Вот простая картина действительно небольшого набора данных:
Осколок | Данные
1 | A
1 | D
1 | G
2 | B
2 | E
2 | H
3 | C
3 | F
3 | Я
Сортировка по страницам (размер страницы = 3):
Страница | Данные
1 | A
1 | B
1 | C
2 | D
2 | E
2 | F
3 | G
3 | H
3 | Я
И если бы мы хотели показать страницу пользователя 2, мы бы вернули:
D
E
F
Если размер рассматриваемой таблицы составляет примерно 10 миллионов строк или 100 миллионов, вы не можете просто перенести все данные на сервер веб / приложений, чтобы отсортировать их и вернуть нужную страницу. И вы, очевидно, не можете позволить каждому отдельному фрагменту сортировать и пейджировать свой собственный фрагмент данных, потому что фрагменты не знают друг о друге.
Чтобы усложнить ситуацию, данные, которые мне нужно представить, не могут быть слишком устаревшими, поэтому предварительный расчет набора полезных сортировок заблаговременно и сохранение результатов для последующего извлечения нецелесообразно.