Передовой опыт вычисления групп данных в GridGain

У меня есть большой (~ 100 ГБ) кеш, хранящийся в GridGain, где ключ кеша представляет собой целочисленный идентификатор, а запись в кеше — объект JSON.

Мне необходимо:

а) пройти кеш в отсортированном порядке (на основе значений поля JSON) - как если бы это был отсортированный набор строк SQL

б) искать группы элементов - где группа определяется путем запуска такой функции над отсортированными строками:

boolean isInSameGroup(jsonFromPreviousRow, jsonFromCurrentRow)

c) Измените данные в каждой отдельной группе специфичным для группы способом. Например, уникальный «идентификатор группы» может быть записан в каждую строку в группе.

Есть ли рекомендуемый или лучший способ сделать это в GridGain?


person Lynn Monson    schedule 05.09.2014    source источник
comment
Вы используете секционированный кеш или реплицированный? Если вы разделены, нужно ли вам просматривать весь кеш в отсортированном порядке, или можно просматривать записи, хранящиеся на каждом узле, в отсортированном порядке?   -  person Dmitriy    schedule 07.09.2014
comment
Я использую секционированный кеш, хотя я также могу его реплицировать, если это каким-то образом полезно. Концептуально мне нужно просмотреть все данные в отсортированном порядке. Тем не менее, я, вероятно, мог бы мириться с разделами в общем порядке за счет возможных ошибок в группировке на границах.   -  person Lynn Monson    schedule 08.09.2014


Ответы (1)


Если вы можете преобразовать свои объекты JSON в Portable Objects, которые являются кэшируемыми неструктурированными объектами в GridGain (см. пример GridPortableBuilder), то вы иметь возможность создавать упорядоченный индекс для любого из полей. После этого простой SQL-запрос с предложением order by в кеше вернет отсортированную коллекцию на каждом узле. Вам придется выполнять общее упорядочивание или группировку самостоятельно (полная поддержка SQL, поэтому вам не нужно выполнять собственное общее упорядочивание, появится в начале 2015 года).

person Dmitriy    schedule 09.09.2014
comment
Спасибо за идею - я считаю, что Portable Objects доступны только в корпоративной версии. Есть ли аналогичный подход для версии с открытым исходным кодом? - person Lynn Monson; 10.09.2014