扩展用户唯一的实时排名算法

时间:2014-07-01 21:11:39

标签: database algorithm scalability

所以我今天和昨天一直在为我正在研究的消息应用程序的排名算法工作,现在我正在试图弄清楚如何处理对该算法的所有调用。该应用程序结构化为房间,主要新闻源显示基于此的某些房间:

num_mutual_friends * weight_f + ln(density + 1) * weight_d
----------------------------------------------------------
  (ln(dist + 1) / 3) * weight_d + ln(time + 1) * weight_t

我正在考虑如何扩展在数百万个数据库条目上执行此操作。许多变量需要对数据库进行唯一查询(例如,对于每对用户而言,共同朋友的数量是不同的),而其他变量则取决于用户的当前状态(例如,距离,时间)或房间(例如,密度)。

我认为必须查询每个单独的房间,然后遍历所有房间,分配分数,然后每当有人刷新他们的饲料时选择顶部的x房间是低效的。

我的第一个想法是通过在某个点之后切断值来限制查询 - 例如,算法不必查看位置为>的房间。 x距离用户当前距离或最近活动超过x个月前的房间。

但是,如果我设置的那些限制最终没有足够的结果,我希望仍然可以返回房间。

你如何扩展这样的东西?我无法真正缓存查询结果,因为它们一直在变化 - 任何有关可伸缩性的帮助,指南或好东西都会受到赞赏

0 个答案:

没有答案