One of the more novel differences between Aurora and other relational databases is how it pushes redo processing to a multi-tenant scale-out storage service, purpose-built for Aurora. Doing so reduces networking traffic, avoids checkpoints and crash recovery, enables failovers to replicas without loss of data, and enables fault-tolerant storage that heals without database involvement. Traditional implementations that leverage distributed storage would use distributed consensus algorithms for commits, reads, replication, and membership changes and amplify cost of underlying storage. In this paper, we describe how Aurora avoids distributed consensus under most circumstances by establishing invariants and leveraging local transient state. Doing so improves performance, reduces variability, and lowers costs.
Lies, damn lies, and statistics. ‘if we believe screens are destroying a generation [of kids] that would mean that so are potatoes, having asthma, not drinking milk, going to movies, music, religion, being tall, biking, and wearing glasses’ […] ‘The take home from this new study is the evidence that smart phones are destroying a generation is not any stronger than potatoes and eyeglasses are destroying a generation. The moral panic surrounding the fear of screens is simply not supported by good science.’