Introduction
The world's largest producer of casual games has selected MySQL Cluster to power its real-time recommendations platform. High velocity data ingestion, low latency reads, on-line scaling and the operational simplicity delivered by MySQL Cluster enables Big Fish to increase customer engagement and deliver targeted marketing, providing a more personalized experience to its users.
Company Overview
Founded in 2002, Big Fish is the world's largest producer of casual games; dedicated to bringing engaging entertainment to everyone, anywhere, on any device.
Through its data-driven platform, millions of consumers seeking engaging entertainment easily discover and play PC and mobile games created by Big Fish's network of more than 600 development partners and its in-house Big Fish Studios.
The company has distributed more than 2 billion games from a growing catalog of 3,000+ unique PC/Mac titles and 300+ unique mobile games, and offers cross-platform interactive game streaming via its cloud gaming service, Big Fish Unlimited.
Big Fish's games are played in more than 150 countries across 13 local language sites. The company is headquartered in Seattle, WA, with multiple regional offices in North America and Europe.
Personalizing the User Experience
The global video gaming market is experiencing explosive growth with forecasts estimating revenues to reach $82bn by 20171. Competition is intense, and so to differentiate services and engage users, progressive gaming companies such as Big Fish are seeking solutions to more fully personalize the customer experience.
Using Business Intelligence (BI) and predictive analytics Big Fish can segment customers based on a range of demographic and behavioural indicators. This enables Big Fish to serve highly targeted recommendations and marketing, precisely personalized to a user's individual preferences.
Project Requirements
The Marketing Management Service (MMS) is designed to serve real-time recommendations to Big Fish customers in real time. The project team established a set of success requirements for the database that would power the MMS recommendations engine:
- High-Velocity Data Ingest: Data had to be extracted daily from the BI system to the recommendations database, with the ability to scale the frequency and volume of data loads in the future. Each user could be categorized into multiple market segmentations, and these segmentations can also change daily;
- Low-Latency Access: Personalized content had to be rendered to each page view, without impacting user response times;
- On-Line Scalability: With data volumes and velocity increasing, coupled with the desire to use MMS across new services in the future, it was vital that the database could scale quickly to meet new and unpredictable demands. At the same time, database scaling had to be an on-line operation, ensuring continuous platform availability to gamers;
- 99.999% Availability: The service had to be reliable and highly available as downtime would significantly impact the user experience;
- Enterprise-Level Support & Strong Technology Roadmap: MMS is a strategic investment for Big Fish, and so the project team wanted access to the highest levels of 24x7 support. This requirement was coupled with the security of working with a proven technology that the developers knew had a strong roadmap.
Technology Selection
Big Fish already has an extensive deployment of MySQL databases powering web applications, including the storefront. They knew MySQL could power the recommendations database, but would require additional engineering efforts to implement database sharding to support data ingest and future scaling needs, coupled with a Memcached layer for low-latency reads.
As a result, they began evaluations of MySQL Cluster, in addition to other database technologies. Using MySQL Cluster, the Engineering teams were able to leverage their existing MySQL skills, enabling them to reduce operational complexity when compared to introducing a new database to the Big Fish environment.
At the same time, they knew MySQL Cluster, backed by Oracle, provided the long-term investment protection they needed for the MMS platform.
Through their evaluation, the Big Fish engineering team identified MySQL Cluster was best able to meet their technical requirements.
Write Performance to Support High Velocity Data Ingest
MySQL Cluster's multi-master architecture, coupled with the ability to auto-shard (partition) tables across nodes, enables Big Fish to meet the data load demands of MMS.
During testing, MySQL Cluster was able to insert 187,000 records per second while simultaneously serving 3,000 SELECTs per second with just two data nodes and one MySQL Server.
They found MySQL Cluster scaled linearly as they tested the loading of 25m to 1bn records.
Low Latency Access
Using MySQL Cluster's in-memory tables, Big Fish are able to serve up personalized recommendations to their gamers with sub-millisecond responsiveness.
On-Line Scalability
Adding nodes to a running cluster, without downtime, will enable Big Fish to scale the recommendations database to support the higher capacity and performance demanded by the MMS roadmap. MySQL Cluster's use of horizontal scalability across low-cost commodity nodes also reduces TCO of the project.
Continuous Availability
The shared-nothing, distributed design of MySQL Cluster coupled with integrated replication and self-healing recovery ensures high availability of the recommendations platform, all without DevOps intervention.
SQL and NoSQL APIs
Big Fish can select the best access method to meet their specific requirements. Data is inserted into the cluster using the NoSQL Java ClusterJ API, and accessed by the MMS recommendations engine using the full power of SQL.
Project Implementation
As illustrated in the figure below:
- User data is replicated from the MySQL databases powering the gaming storefront to the Big Fish BI platform;
- User data is analyzed and segmented within the BI platform;
- Recommendations are loaded as user records into MySQL Cluster using the NoSQL Cluster_J (Java) API;
- The SQL API from the MySQL Servers then delivers personalized content to gamers in real-time, initially serving over 15m sessions per day.
"Gaming is a highly dynamic environment. It can be very difficult to predict performance demands. MySQL Cluster¹s on-line scalability provides the assurances we need to meet future requirements and we can use MySQL Cluster Manager to automate scaling and cluster administration - which makes DevOps very happy!"
Isaac Hawley, Software Developer, Big Fish
MySQL Cluster is distributed across commodity x86 hardware running the Linux operating system, in the following configuration:
- 3 x Application (Access) nodes running the native Java NoSQL ClusterJ API and MySQL Server
- 2 x Data Nodes with a hot-spare, automatically provisioned by MySQL Cluster Manager, providing a self-healing backup in the event of a node outage.
Big Fish runs MySQL Cluster on Virtual Machines in their Development & Testing environment, and uses physical hardware in production. MySQL Cluster's flexibility enables them to move seamlessly between the virtual and physical environments.
Big Fish has subscribed to MySQL Cluster CGE providing the Engineering team with access to 24x7 Oracle Premier Support and MySQL Cluster Manager, which reduces operational overhead by providing:
- Automated configuration and reconfiguration of MySQL Cluster;
- Automated on-line node addition for on-demand scaling.
The Future with Oracle's MySQL Cluster
It is expected that the initial deployment of MMS will be expanded to include all new web site developments, and to additional channels and gaming platforms. In addition, data volumes and loading frequencies are expected to increase, with the possibility of streaming real-time updates from the BI system to the recommendations platform. The on-line scalability of MySQL Cluster will enable Big Fish to meet these new requirements.
Big Fish also has the flexibility to support future projects that include complex queries on live, web-based data. Using MySQL Cluster's Adaptive Query Localization, JOIN operations are pushed down to the data nodes, where they execute on local copies of the data before aggregating results to the application - enabling real-time analytics.
In summary, MySQL Cluster has the performance, availability and operational ease-of-use to support Big Fish' requirements today, while also providing a future platform for scale and new application development in the future.
Additional Resources
- MySQL Cluster On-Line Demonstration
- Guide to Scaling Web Databases with MySQL Cluster
- MySQL Cluster Manager Whitepaper
- MySQL Cluster NoSQL Java API Whitepaper
About MySQL Cluster
MySQL Cluster is a highly scalable, real-time, ACID-compliant transactional database, combining 99.999% availability with the low TCO of open source. Designed around a distributed, multi-master architecture with no single point of failure, MySQL Cluster scales horizontally on commodity hardware with auto-sharding to serve read and write intensive workloads, accessed via SQL and NoSQL interfaces.
1 http://www.forbes.com/sites/johngaudiosi/2012/07/18/new-reports-forecasts-global-video-game-industry-will-reach-82-billion-by-2017/