【问题标题】:Modelling a leaderboard/ranking list in Riak在 Riak 中为排行榜/排名列表建模
【发布时间】:2015-05-24 19:30:03
【问题描述】:

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

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

Map/Reduce 应该可以工作,但我想它对于实时结果来说会有点重。我可能完全不在这里,因为我没有做过任何基准测试。

Riak 搜索呢?我根本不了解 Solr,所以可能有一种方法可以做到,我在阅读文档时完全错过了。

This blog post 使用一组集合方法。来自 Basho 工程师,这很可能是一个很好的解决方案。但这是在 Riak 中唯一可行的方法吗?能不能做点“优雅”一点的?

感谢您的宝贵时间!

【问题讨论】:

  • 真是个好问题。当你说一些更“优雅”的东西时,你想到了什么?下次我们有回顾时,我会在 riak 用户列表上分享这个!
  • 谢谢。我将“优雅”放在引号中,因为我不确定会发生什么。链接的示例似乎为一个相当简单的任务做了很多工作。至少与 Redis 排序集之类的东西相比。但我想这就是您所获得的可扩展性和易于操作性。
  • 公平点。我注意到腿部工作通常是快速查询的权衡。不将所有内容都保存在内存中会在查询时产生一组非常不同的假设。我会在内部保留这个想法——随时与我们联系! @mjbrender 在 Twitter 上。

标签: solr ranking riak leaderboard


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-31
    • 2014-05-24
    • 1970-01-01
    • 2021-09-21
    • 2021-10-07
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    相关资源
    最近更新 更多