PokerRoom, Ongame and MySQL
I found an interesting case study of the use of MySQL on the operation of the Ongame network.
A network of poker sites is an infrastructure that interconnects several poker sites, forming a larger user base. All participating poker sites (also known as skins of the poker network) benefit from belonging a network, since they can guarantee a larger variety of games and a never ending flow of opponents to play with. Nobody wants to join a small site if it cannot guarantee a certain amount of traffic, no matter how good their sign up bonuses may be - ultimately, the user wants to be able to play poker anytime, at any stakes, being it short handed, full ring, or heads up, in either cash games or tournaments.
Ongame is one of the largest poker networks. At peak hours, it gathers up to 27,000 simultaneous players, according to non-official statistics gathered by flopturnriver.com. The most well-marketed brands that participate in the Ongame Network are PokerRoom and bwin. Some other participating sites are Holywood poker, mansion poker, and europoker.
So, I found this interesting paper that analyzes the positive role MySQL in both PokerRoom and the Ongame network. As the paper exposes, in the early days of PokerRoom, the founders sought to use high-quality yet low-cost available tools, and, as many others, decided to rely on the typical Linux + Apache + MySQL + PHP setting, a configuration so popular nowadays, that it has its own nickname: LAMP.
The paper also offers some insight in the use of MySQL in the Ongame network, which it used during the actual game playing. The paper mentions the need for security in a system, which is always important in a site where money continuously changes hands, and, if I may add, in a system that is so susceptible to break-in attempts - after all, being able to see the opponent’s cards would make loads of money for an intruder, and would be difficult to detect if done carefully. Understandably, the paper does not offer much insight on the cheat detection (collusion detection, I understand) algorithm that it mentions, which would be based on a neural network.
The second point on which the paper focuses is performance. As already stated, the number of simultaneous user can go up to 27000 as of today. It is easy to imagine that this leads to a high stress on the database infrastructure. The paper mentions a mean load of 2000 MySQL queries per second with peaks of 4000, and that was back in 2004, which was at the time handled by a Dell 2650 with 2.8GHz processors master node, plus two slave nodes. The game servers and clients run on a dozen more Dell 2650 machines. The systems run Red Hat Enterprise Linux.
Overall, while slightly outdated, the paper makes an interesting read for the geekish poker players, even if it is just a marketing paper aimed to convince you that MySQL rocks. PostgreSQL lovers, though, can also find their favorite db in use in the poker world since pokertracker uses it for hand information storage.
Download the paper here. There is a slightly different version of the paper here that focuses more on the use of HP technologies and does not mention Dell servers anymore.