Leaf is a Leaderboard system that helps you rank million user data.
项目已经完成基本功能,但还是有比较多bug。 项目是为了建立一个可复用抽象的排行系统模块。
现在支持分布式定时任务,mysql直排和三种有效的桶排。将来将会集成多数据库支持。
项目地址: https://github.com/thomashuang/Leaf
In system, supporting two leaderboard ways, one is ranking by score DESC,the same score has the same rank; another is 'dense' that ranks by score DESC, entry id ASC, the same score has diffrent rank order by entry id ASC.
In leaderboard attribute 'adapter', has four values ('base', 'bucket', 'block', 'chunk'), they are four leaderboard algorithms, but the kernel algorithm is bucket sort algorithm.
.. note:: When you don't use base adapter to rank leaderboard, you shuld set cron to fresh the bucket table
When set leaderboard adapter to 'base', the system will use the MySQL SQL, realtime sort the entries.
It suits for small data leaderboard that less 10k data.
When set leaderboard adapter to 'bucket', it will summary user count by score to help rank your leaderboard.
When set leaderboard adapter to 'block', it will summary user's conunt by a static scoce grap, like score block [0-100], [101-200]…,
it can be used to rank the user score histgram is steady and smooth.
When set leaderboard adapter to 'chunk', unlike block algorithm using a static score grap, but is dynamic score grap that makes sure user's count between a suitable range like (5000, 10000]
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.