Your SlideShare is downloading. ×
0
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Painful Success - Lessons Learned while Scaling Up

330

Published on

Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/19siM4E. …

Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/19siM4E.

Jesper Richter-Reichhelm shares lessons learned from failures while scaling Wooga games to millions of daily users.Filmed at qconlondon.com.

Jesper Richter-Reichhelm is working as Head of Engineering at Wooga, one of the most popular social games developers for web and mobile in the world. Jesper is passionate about playing and working on games as well as developing highly scalable software that is used by millions of players. He also loves sharing his knowledge and passion at conferences. Twitter: @jrirei

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
330
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PAINFUL SUCCESS Jesper Richter-Reichhelm (@jrirei) / session 4853 Monday, 18 March 13
  • 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /scalability-case-study
  • 3. Presented at QCon London www.qconlondon.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  • 4. Pain Monday, 18 March 13
  • 5. Monday, 18 March 13
  • 6. Monday, 18 March 13
  • 7. Monday, 18 March 13
  • 8. Flash client Backend Monday, 18 March 13
  • 9. 7M players / month Monday, 18 March 13
  • 10. 7M players / month 10K API calls / second Monday, 18 March 13
  • 11. 7M players / month 10K API calls / second 200K DB operations / second Monday, 18 March 13
  • 12. 7M players / month 10K API calls / second 200K DB operations / second 100K DB writes / second Monday, 18 March 13
  • 13. 7M players / month 10K API calls / second 200K DB operations / second 100K DB writes / second 2 devops since 2009 Monday, 18 March 13
  • 14. Success Monday, 18 March 13
  • 15. Monday, 18 March 13
  • 16. Monday, 18 March 13
  • 17. Painful Success Monday, 18 March 13
  • 18. Painful Success Monday, 18 March 13
  • 19. 2009 Decisions Monday, 18 March 13
  • 20. Monday, 18 March 13
  • 21. Monday, 18 March 13
  • 22. What is the right software stack? Monday, 18 March 13
  • 23. Monday, 18 March 13
  • 24. Monday, 18 March 13
  • 25. Monday, 18 March 13
  • 26. SQL ap lb SQL Browser sql sql apap Monday, 18 March 13
  • 27. 2010 Scaling Up Monday, 18 March 13
  • 28. Monday, 18 March 13
  • 29. Monday, 18 March 13
  • 30. 0%# 20%# 40%# 60%# 80%# 100%# 0# 5# 10# 15# 20# 25# 30# 35# 40# Monday, 18 March 13
  • 31. 0%# 20%# 40%# 60%# 80%# 100%# 0# 5# 10# 15# 20# 25# 30# 35# 40# Monday, 18 March 13
  • 32. 0%# 20%# 40%# 60%# 80%# 100%# 0# 5# 10# 15# 20# 25# 30# 35# 40# Monday, 18 March 13
  • 33. Small things... Monday, 18 March 13
  • 34. AMF responses Monday, 18 March 13
  • 35. Checking connection ‘status’ Monday, 18 March 13
  • 36. ActiveRecord caching Monday, 18 March 13
  • 37. Always check back on reality! Lesson 1: Monday, 18 March 13
  • 38. Big Things... Monday, 18 March 13
  • 39. Lot’s of tuning Monday, 18 March 13
  • 40. Lot’s of tuning and more memory Monday, 18 March 13
  • 41. app slave master Monday, 18 March 13
  • 42. app slave master master slave 1. create new DBs Monday, 18 March 13
  • 43. app slave master master slave 1. create new DBs 2. setup replication Monday, 18 March 13
  • 44. app slave master master slave 1. create new DBs 2. setup replication Monday, 18 March 13
  • 45. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters Monday, 18 March 13
  • 46. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication Monday, 18 March 13
  • 47. app master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication Monday, 18 March 13
  • 48. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters Monday, 18 March 13
  • 49. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. remove old DBs Monday, 18 March 13
  • 50. app master slave 1. create new DBs 2. setup replication 3. start using masters 4. remove old DBs Monday, 18 March 13
  • 51. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters Monday, 18 March 13
  • 52. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  • 53. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  • 54. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  • 55. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  • 56. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  • 57. app 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  • 58. app 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  • 59. You will make mistakes! Lesson 2: Monday, 18 March 13
  • 60. More things... Monday, 18 March 13
  • 61. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication Monday, 18 March 13
  • 62. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication AB AB AB AB Monday, 18 March 13
  • 63. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters BA AB AB AB AB Monday, 18 March 13
  • 64. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication BA AB AB AB AB Monday, 18 March 13
  • 65. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication BA AB AB AB AB Monday, 18 March 13
  • 66. app slave master master slave slave master master slave AC AC BD BD Monday, 18 March 13
  • 67. app slave master master slave slave master master slave AC AC BD BD AC AC BD BD Monday, 18 March 13
  • 68. app slave master master slave slave master master slave AC AC BD BD AC AC BD BD Monday, 18 March 13
  • 69. app slave master master slave slave master master slave AC AC BD BD AC AC BD BD Monday, 18 March 13
  • 70. The right thing... Monday, 18 March 13
  • 71. Monday, 18 March 13
  • 72. Monday, 18 March 13
  • 73. Monday, 18 March 13
  • 74. Software is easy, data is hard! Lesson 3: Monday, 18 March 13
  • 75. 24 GB 44 GB in 8 days Monday, 18 March 13
  • 76. Not enough memory Monday, 18 March 13
  • 77. Not enough memory => no backups Monday, 18 March 13
  • 78. Not enough memory => no backups => no new slaves Monday, 18 March 13
  • 79. Not enough memory => no backups => no new slaves => big problem Monday, 18 March 13
  • 80. 24 GB 38 GB in 3 days Monday, 18 March 13
  • 81. 24 GB 38 GB in 3 days Fixed in v2.2 Monday, 18 March 13
  • 82. 2011 Operation Hell Monday, 18 March 13
  • 83. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  • 84. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  • 85. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap SQL EBS EBS EBS EBS lb lblblb Monday, 18 March 13
  • 86. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  • 87. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  • 88. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  • 89. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  • 90. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  • 91. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  • 92. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  • 93. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  • 94. 0" 500,000" 1,000,000" 1,500,000" 2,000,000" Apr*10" Jul*10" Oct*10" Jan*11" Apr*11" Jul*11" Oct*11" Monday, 18 March 13
  • 95. 0" 500,000" 1,000,000" 1,500,000" 2,000,000" Apr*10" Jul*10" Oct*10" Jan*11" Apr*11" Jul*11" Oct*11" AWS outage in Ireland Monday, 18 March 13
  • 96. http://en.wikipedia.org/wiki/File:St%C3%B6wer_Titanic.jpg Monday, 18 March 13
  • 97. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  • 98. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  • 99. Monday, 18 March 13
  • 100. Installed in 3 years: Monday, 18 March 13
  • 101. Installed in 3 years: 98 MySQL machines Monday, 18 March 13
  • 102. Installed in 3 years: 98 MySQL machines 195 Redis machines Monday, 18 March 13
  • 103. Monday, 18 March 13
  • 104. Monday, 18 March 13
  • 105. Monday, 18 March 13
  • 106. Monday, 18 March 13
  • 107. 2012/2013 Refactoring Monday, 18 March 13
  • 108. Lessons learned Monday, 18 March 13
  • 109. Server Database Monday, 18 March 13
  • 110. Server Database Monday, 18 March 13
  • 111. Server Database Monday, 18 March 13
  • 112. Server Database Monday, 18 March 13
  • 113. Server Database Monday, 18 March 13
  • 114. Server Database Monday, 18 March 13
  • 115. Server Database Monday, 18 March 13
  • 116. Server Database Monday, 18 March 13
  • 117. Server Database Monday, 18 March 13
  • 118. Server Database One Game Session Monday, 18 March 13
  • 119. Server Database One Game Session Monday, 18 March 13
  • 120. Rd rd SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd rd Rd Rd rd rd SQL SQL SQL SQL SQL ap apap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  • 121. Rd rd ap apap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  • 122. Rd rd ap apap lb lblblb Monday, 18 March 13
  • 123. Monday, 18 March 13
  • 124. 1. Separate user and world DBs Monday, 18 March 13
  • 125. 1. Separate user and world DBs 2. Migrate to JRuby Monday, 18 March 13
  • 126. 1. Separate user and world DBs 2. Migrate to JRuby 3. Introduce life cycle Monday, 18 March 13
  • 127. 1. Separate user and world DBs 2. Migrate to JRuby 3. Introduce life cycle 4. Remove (user) DBs Monday, 18 March 13
  • 128. 1. Separate user and world DBs 2. Migrate to JRuby 3. Introduce life cycle 4. Remove (user) DBs 5. Enjoy! Monday, 18 March 13
  • 129. Separate user DBs Monday, 18 March 13
  • 130. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd lb lblblb Monday, 18 March 13
  • 131. SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL SQL sql sql SQL SQL sql sql SQL sql lb lblblb Monday, 18 March 13
  • 132. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL lb lblblb Monday, 18 March 13
  • 133. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  • 134. JRuby Monday, 18 March 13
  • 135. http://www.flickr.com/photos/biblicone/3425903181/sizes/l/in/photostream/ Monday, 18 March 13
  • 136. JRuby v2 Monday, 18 March 13
  • 137. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Throughput Monday, 18 March 13
  • 138. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Throughput Monday, 18 March 13
  • 139. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Throughput Monday, 18 March 13
  • 140. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput Monday, 18 March 13
  • 141. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput no benchmark Monday, 18 March 13
  • 142. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput no benchmark Monday, 18 March 13
  • 143. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput no benchmark multi threaded Monday, 18 March 13
  • 144. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput no benchmark multi threaded tuning Monday, 18 March 13
  • 145. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput no benchmark multi threaded tuning cpu saturation Monday, 18 March 13
  • 146. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL SQL ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  • 147. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL SQL ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap lb lblblb ap ap ap ap ap ap ap ap ap ap ap ap ap ap Monday, 18 March 13
  • 148. Monday, 18 March 13
  • 149. Monday, 18 March 13
  • 150. Monday, 18 March 13
  • 151. NEW OLD Monday, 18 March 13
  • 152. NEW OLD Monday, 18 March 13
  • 153. NEW OLD Monday, 18 March 13
  • 154. NEW OLD Monday, 18 March 13
  • 155. Life cycle Monday, 18 March 13
  • 156. app Monday, 18 March 13
  • 157. app Monday, 18 March 13
  • 158. app servlet Monday, 18 March 13
  • 159. app servlet archiver Monday, 18 March 13
  • 160. User Registry app servlet archiver Monday, 18 March 13
  • 161. User Registry S3 app servlet archiver Monday, 18 March 13
  • 162. User Registry SQL Rd S3 app servlet archiver Monday, 18 March 13
  • 163. User Registry SQL Rd S3 app servlet archiver Monday, 18 March 13
  • 164. World Data User Registry SQL Rd S3 app servlet archiver Monday, 18 March 13
  • 165. World Data User Registry SQL Rd S3 Load Balancer app servlet archiver Monday, 18 March 13
  • 166. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd rd Rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  • 167. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd rd Rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd Rd rd lb lblblb Monday, 18 March 13
  • 168. Removing DBs Monday, 18 March 13
  • 169. SQL SQL sql Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQLSQL SQL sql sql SQL SQL sql sql Rd Rd rd rd Rd Rd rd rd Rd rd SQL SQL SQL SQL Rd rd Rd rd Rd rd lb lblblb Monday, 18 March 13
  • 170. SQL SQL sql Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  • 171. SQL sql Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  • 172. Enjoy Monday, 18 March 13
  • 173. SQL sql Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  • 174. Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  • 175. Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd Rd rd Rd rd lb lblblb Monday, 18 March 13
  • 176. http://www.flickr.com/photos/aigle_dore/ Monday, 18 March 13
  • 177. http://www.flickr.com/photos/aigle_dore/ Monday, 18 March 13
  • 178. Looking Back Monday, 18 March 13
  • 179. What is the right software stack? Monday, 18 March 13
  • 180. Monday, 18 March 13
  • 181. Monday, 18 March 13
  • 182. What is the right software stack? Monday, 18 March 13
  • 183. What is the right software stack? Monday, 18 March 13
  • 184. What kind of application are we building? Monday, 18 March 13
  • 185. User Monday, 18 March 13
  • 186. User Avatar Monday, 18 March 13
  • 187. User Avatar Cus- tomer Monday, 18 March 13
  • 188. User GardenAvatar Cus- tomer Monday, 18 March 13
  • 189. User GardenAvatar Cus- tomer Tiles Deco- rations Monday, 18 March 13
  • 190. User GardenAvatar Cus- tomer Tiles Deco- rations Monday, 18 March 13
  • 191. User GardenAvatar Cus- tomer Tiles Deco- rations User GardenAvatar Cus- tomer Tiles Deco- rations Monday, 18 March 13
  • 192. User GardenAvatar Cus- tomer Tiles Deco- rations User GardenAvatar Cus- tomer Tiles Deco- rations Monday, 18 March 13
  • 193. http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg Monday, 18 March 13
  • 194. http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg Monday, 18 March 13
  • 195. http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg Monday, 18 March 13
  • 196. http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg Monday, 18 March 13
  • 197. http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg Monday, 18 March 13
  • 198. What kind of application are we building? Monday, 18 March 13
  • 199. Monday, 18 March 13
  • 200. Monday, 18 March 13
  • 201. Monday, 18 March 13
  • 202. Monday, 18 March 13
  • 203. Monday, 18 March 13
  • 204. Plain File System Monday, 18 March 13
  • 205. Monday, 18 March 13
  • 206. Handle state the right way! Monday, 18 March 13
  • 207. Software is easy, data is hard! Lesson 3: Monday, 18 March 13
  • 208. You will make mistakes! Lesson 2: Monday, 18 March 13
  • 209. Always check back on reality! Lesson 1: Monday, 18 March 13
  • 210. Always check back on your assumptions! Lesson 1: Monday, 18 March 13
  • 211. Thank you Monday, 18 March 13
  • 212. Jesper Richter-Reichhelm @jrirei woo.ga/backend wooga.com/jobs Monday, 18 March 13
  • 213. Jesper Richter- Reichhelm @jrirei wooga.com/jobs woo.ga/backend Monday, 18 March 13
  • 214. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations/scalability -case-study

×