over 12 Million users and 30 Million visitors come to ROBLOX to play, adventure, imagine and create with their friends. • #1 gaming platform for Kids and Teens • Primarily user generated content • 360k concurrent players at peak times • 800K+ requests/sec
and by us • Makes use of boosting, filtering, custom scripts, tokenizers, and analyzers • eCPM sort • 350 Million documents (11 shards) • Seven nodes User Generated Catalog
want to the players • Each game gets a leaderboard but all the per-game leaderboard documents go into the same index • Aggregate leaderboards viewable by day, week, month and all time Leaderboards
game • 200 Million documents (six shards) across six nodes • Watch out for the default query generated by your client Leaderboards (continued) Valid query 1: { "filter": { "term": { “gameId": "8888" } } } Valid query 2: { "query": { "filtered": { "filter": { "term": { " gameId": "8888" } } } } } took : 774 ms took : 53 ms
"id": { "gt": "10" } } }, { "range": { "id": { "lt": "110" } } } ] } } • Gives the ability for our Customer Service team to respond to purchase anomalies and also ensure security • 800 Million documents (11 shards) across three nodes • 4 Million documents being added per day • Range query performance Users + Catalog = Virtual Sales Query 2: { "range": { "id": { "gt": "10", "lt": "110" } } } took: 5543 ms took:15 ms
to Chicago • Considered approaches like cross data-center replication of indices • Scheduled snapshots copied over by automated scripts • Snapshots restored in the new data center • Once the rest of the site migrated over, the data started flowing into the new indices Data Center Migration