Presenters: Seán O Sullivan, Service Reliability Engineer & Tim Czerniak, Software Engineer at Demonware
This presentation covers the eight-month evaluation process we underwent to migrate some of Call of Duty’s core services from MySQL to Cassandra. We will outline our requirements, the process we followed for the evaluation, decisions we made around our schema, configuration and hardware, and some issues we encountered.
2. Tim Czerniak
Software Engineer
DemonWare
Seán O Sullivan
Operations Engineer
DemonWare
3. DEMON-WHO?
DemonWare is a subsidiary of
Activision-Blizzard
We write, deploy and maintain
client and server applications
for Activision and Blizzard games
14. LOAD TESTING
• Two clusters
• Single CPU, SSD and
average memory
• Dual CPU, Spindles and
high memory
• Used realistic user profiles
• Included peaks and troughs
during testing
• Ran a soak test
15. THE WINNER???
• Initially Riak was a slam-dunk
• Erlang-based (we know Erlang)
• Tooling is excellent
• Performed well
• Previously evaluated
16. THE WINNER
• Cassandra won in the end
• Write performance
• Richer feature set
• Maturity of codebase and tooling
• Testing continued 24/7 until launch
17. SCHEMA
• Progress store
• A perfect fit!
• Presence
• More relational
• High throughput (Tombstones!)
• TTLs
• Messaging
• Time-series data, well suited
• Tombstones!
18. SCHEMA: LESSONS LEARNED
• Keep it simple
• It’s not a relational DB
• Get your partition keys and
clustering keys right.
• C* will do what it does best
19. SCHEMA: LESSONS LEARNED
• Don’t ignore CAP theorem
• Cassandra has tuneable
consistency, but there will be
trade-offs
• Load test with real numbers
• Some issues aren’t evident in
unit-tests
20. CONFIG
• Default settings, probably not
what you want
• Changed many settings off
the bat
• Reverted some (oops)