Upload
social-point
View
3.291
Download
2
Embed Size (px)
DESCRIPTION
The leaderboard adds a whole new dimension to your video game. It's a means of building rivalry between players and deepening their engagement with the game. But, like most things in gaming, building a leaderboard comes with its own technical challenges.
Citation preview
Leaderboards
• Effective way to show where a user stands within a gamified system
• Absolute leaderboards – incentivize • Relative leaderboards – avoid disengagement of players at
lower end of rankings• Several type of rankings (weekly, monthly, friends, …)
2
3
4
5
Requirements
• Add member• Remove member• Update member score• Find member score• Find member rank• Associate data to members (Name, Alliance, etc…)• Get slices of the ranking (for pagination)
6
Architecture
Scalable to serve several million active users Performance is a must
7
Implementation
• Redis data structure server• Sorted set data structure• Different sorted sets for different kinds of rankings• Redis hash data structure for member associated data• Lua scripting for aggregating in-memory data • (Sorted) Sets operations (union, intersection, etc…)
8
Challenges
• Horizontal scaling• It is not possible to shard a dataset with a single huge key like a
very big sorted set• Two-phase commits if you want to execute a transaction among
different data stores
9
Summary
• Redis is the right tool for the job, but datasets can not be bigger than memory
• Exceptional performance (more than 8K leaderboard ops per second in a single instance)
• Easy to use and understand technology• Mature and open source
10