在 Riak 中建模 leaderboard/ranking 列表

Modelling a leaderboard/ranking list in Riak

我目前正在研究可扩展游戏后端的数据库。从操作的角度来看,Riak 看起来非常好。我可以很容易地看到如何在 Riak 中对用户和游戏数据和统计数据进行建模。但是我在使用 leaderboards/ranking 列表时遇到了问题。

假设我们有数百万玩家,并且排名将基于单个高分整数,那么 "best" 存储排名列表的方法是什么?我们需要获取玩家的个人排名和所有玩家的分页列表,比如排名 1-100 或 14500-14600。分数会经常更新,玩家排名会实时更新。

Map/Reduce 应该可以,但我想实时结果会有点重。我可能完全离开这里,因为我没有做任何基准测试。

Riak 搜索怎么样?我根本不了解 Solr,所以可能有一种方法可以做到这一点,但我完全没有阅读文档。

This blog post 使用一组一组的方法。来自 Basho 工程师,这很可能是一个很好的解决方案。但这是 Riak 中唯一可行的方法吗?我们可以再做点什么吗"elegant"?

感谢您的宝贵时间!

Riak 搜索 (Solr) 似乎是您的某些用例的自然选择。它支持排序(按最高分)和分页。但是,根据 Basho 的说法,当 deep pagination is needed 时不应使用 Riak 搜索。它也不能很好地扩展到超过 8-10 个节点。同样根据我的经验,存储一个值和它在 Solr 中完全索引之间可能会有明显的延迟,这可能不符合您的实时要求。因此,博客 post 中建议的所有解决方案似乎都是正确的。