2014-09-05 20 views
0

我有一个大的(〜100G)缓存存储在GridGain中,其中缓存键是一个整数ID,缓存条目是一个JSON对象。在GridGain中计算数据组的最佳实践

我需要:

一)遍历排序顺序缓存(基于JSON字段值) - 就好像它是一个排序的SQL行集

B)寻找的分组项 - ,其中一组是通过在已排序列上运行这样的功能定义为:

boolean isInSameGroup(jsonFromPreviousRow, jsonFromCurrentRow) 

c)在每个不同的组中的特定组的方式修改数据。例如,可以将一个唯一的“组ID”写入组中的每一行。

在GridGain上有这样做的建议或最佳实践方法吗?

+0

您使用分区缓存还是复制?如果分区,您是否需要按排序顺序遍历整个缓存,还是可以按排序顺序遍历每个节点上存储的条目? – Dmitriy 2014-09-07 13:47:30

+0

我正在使用分区缓存,但我也可以复制它,如果这在某些方面有帮助。从概念上讲,我需要按排序顺序遍历所有数据。但是,我可能可以容忍总排序中的分区,但可能会在边界分组中出现可能的错误代价。 – 2014-09-08 14:31:58

回答

0

如果您可以将您的JSON对象转换为Portable Objects,它们是GridGain中可缓存的非结构化对象(请参阅GridPortableBuilder示例),那么您将能够为任何字段创建有序索引。之后,在缓存中使用order by子句的简单SQL查询将在每个节点上返回一个已排序的集合。您现在必须自行完成整个订购或分组(完整的SQL支持,因此您不必自己完成整个订购,即将于2015年初发布)。

+0

感谢您的想法 - 我相信便携式对象只在企业版中可用。开源版本有没有类似的方法? – 2014-09-10 16:06:13