We did a major database upgrade to Amazon Aurora MySQL this morning (with zero downtime!). This upgrade increases performance, improves scalability, improves reliability, availability and positions RunSignUp for continued growth and change. We were one of the Beta test sites for Aurora, and were very impressed with the performance and other gains from this amazing new service.
Aurora delivers up to 5 times the throughput. It can expand up to 500,000 reads per second and 100,000 writes per second (which will support 6 Million registrations per minute in our architecture – plenty for our focus on the endurance market). There is also a lower “latency” – meaning calls to the database are quicker. In addition, we configure “Read Replicas” in our architecture to separate out reporting requirements from registration. This means reports run quickly, and participants never see a slow down because many people are running reports.
We can scale our database implementation to very large scale. We already have 1 database shard, and can introduce others as our platform continues to expand, but it is key that each database can scale so there is never a bottleneck. We can scale a database instance up to 32 CPU’s and 244 GigaBytes of Memory. Today, our database runs basically in memory, and the storage is on SSD. In addition, we can add up to 15 Read Replicas across multiple Availability Zones.
Recovery from physical storage failures is transparent, and instance failover typically requires less than 30 seconds. The way our queuing software works (all database calls go thru a queue), users would just see the Ron jogging in place until the database came back online. Amazon Aurora’s storage is fault-tolerant and self-healing. Six copies of the database is replicated across three Availability Zones and continuously backed up to Amazon S3.
This all results in an optimal service for you and your participants. It is a lot of work and knowledge, and we hope you never notice!