我在GridGain中存储了一个大(约100G)缓存,其中缓存键是一个整数ID,缓存项是一个JSON对象。
我需要:
a) 按排序顺序遍历缓存(基于JSON字段值)——就好像它是一组排序的SQL行
b) 寻找项目的分组——其中通过在排序的行上运行这样的函数来定义组:
boolean isInSameGroup(jsonFromPreviousRow, jsonFromCurrentRow)
c) 以特定于组的方式修改每个不同组中的数据。例如,可能会向组中的每一行写入一个唯一的"组id"。
在GridGain上有推荐的或最佳实践的方法吗?
如果您可以将JSON对象转换为可移植对象,这些对象是GridGain中可缓存的非结构化对象(请参阅GridPortableBuilder示例),那么您将能够为任何字段创建有序索引。之后,缓存中有order by
子句的简单SQL查询将在每个节点上返回一个排序的集合。不过,目前您必须自己进行总排序或分组(2015年初将提供完整的SQL支持,因此您不必自己进行总顺序)。