Skip to main content

Command Palette

Search for a command to run...

Amazon Aurora: MySQL on Steroids

Published
2 min read
Amazon Aurora: MySQL on Steroids
S

Lead Software Engineer at Instabug | Backend team. Passionate about large scale server side applications and distributed systems. Cairo University - Faculty of Engineering grad.

A couple of weeks, I published a series of three articles explaining two papers published by the AWS Aurora team. The papers discussed the internal design of Aurora and the design considerations for building high throughput cloud-native database.

The series which you can find here, discussed the following papers:

Contents

Part 1:

In this part we go over some of the main ideas behind the design of Aurora such as:

  • Decoupling the compute tier from the storage tier.
  • A discussion of what durability in databases mean.
  • A discussion of consistency is usually achieved in distributed systems via quorum protocols.
  • How Aurora leverages a segmented storage model to achieve a constant, expected repair times.
  • How Aurora achieves availability via storage replication.

Part 2:

In this part we go over the following:

  • The amplified writes problems caused by the 6-way replication used in Aurora.
  • An example of a conventional mirrored MySQL setup and its drawbacks.
  • A discussion of what are database redo logs and how they are used to achieve durability.
  • How Aurora leverages redo logs only during replication to solve the burden of amplified writes.
  • A benchmark comparison of the gain Aurora achieves by only depending on redo logs during replication.

Part 3:

In this part we go over the following:

  • How Aurora handles writes by keeping storage consistency points and advancing them.
  • How Aurora improves writes throughput by using redo logs.
  • How Aurora handles replication failures via gossiping protocols.
  • How Aurora achieves almost instant crash recovery.
  • How Aurora makes reads efficient by doing single segment reads instead of quorum reads while keeping consistency.
  • How Aurora scales read throughput via read replicas.
  • How Aurora handles failures in quorum sets and how it handles membership changes.

What will you learn?

This is series should give you:

  • A brief introduction into consistency in distrusted systems.
  • A brief idea on the basic rules of quorum protocols.
  • A good understanding of how MySQL executes and persists queries.
  • A detailed understanding of how Aurora works internally.
  • Important ideas in distributed systems in general.

I hope it will be useful!

C
Clown5y ago

I like your high-performance mysql blog. When will the next chapter be updated?

1
S

I am currently reading chapter 7. Will try to publish it over the weekend.

1
S

Clown There you go: https://sayedalesawy.hashnode.dev/high-performance-mysql-ch7-advanced-mysql-features

C
Clown4y ago

Sayed Alesawy Thank you very much for your reminder, I can’t wait to read it.

A

Love your articles. Thanks for the resources.

1
S

Thank you, glad you like them!

More from this blog

Sayed Alesawy

38 posts

Staff Backend Engineer with 6+ years’ experience in large-scale distributed systems.