【发布时间】:2011-04-16 01:46:17
【问题描述】:
例如,在进行 Analytics 时,可能会有一个 map/reduce 运行需要 10 秒。运行后,如果其他网页可以使用该结果,则每页将节省 10 秒。
最好以某种方式缓存 map/reduce 结果。
可以在数据库中以map_reduce_result_[timestamp] 记录成功的map/reduce 运行,然后将此时间戳保存在MongoDB 中的db.run_log 中。例如,此时间戳是 UNIX 纪元时间。因此,当其他页面需要访问结果时,他们可以获取最大时间戳,然后只需查找存储在 MongoDB 中的那个结果。但这样做有点像 hack,想知道是否有更好的方法来做到这一点。
【问题讨论】:
-
似乎是一个好方法,而不是“hackish”。去吧(不要忘记偶尔清除过期的结果)。