2

我有一个处理产品项目的Android客户端,我想创建一个界面,以在任何给定时间显示最流行的程序。GAE/J现场产品评分的碎片计数器计算

我已阅读并使用分片计数器来实现高度可扩展和并行计数。就计算而言,这一直运作良好。

但是,当计算单个请求的前10个最受欢迎的产品项目时,问题就开始了,我必须首先获取它们的所有产品实体,然后获取每个产品实体的碎片计数器并将其添加最后将它们分类以获得最受欢迎的。

这里的问题是,为了找出什么是最流行的,我必须重新计算所有碎片计数器。乘以10000产品和我的单个用户的请求变得缓慢地狱。

我想过使用cron作业计算结果并存储的想法。你会推荐我这样做吗?有没有人处理过类似的情况?

谢谢!

回答

1

按照您的建议,定期将计数器合并到一个只读值中,或者使用备用方法来保留高并发计数器,如this

如果你使用前一种方法,你可能想使用从cronjob触发的mapreduce。