Magic Pocket: Dropbox’s Exabyte-Scale Blob Storage System

QCon San Francisco 2022

Session Architecture

Magic Pocket: Dropbox’s Exabyte-Scale Blob Storage System

Wednesday Oct 26 / 04:10PM PDT, Ballroom A

Abstract

Magic Pocket is used to store all of Dropbox’s data. It is a horizontally scalable exabyte-scale blob storage system which operates out of multiple regions, is able to maintain 99.99% availability and has extremely high durability guarantees, while being more cost efficient than operating in the cloud.

This system is able to facilitate new drive technology, handle millions of queries per second, and automatically identify and repair hundreds of hardware failures per day. We are constantly innovating in this space and work closely with hard drive vendors to adopt the latest drive technology (https://techcrunch.com/2020/10/26/dropbox-begins-shift-to-high-efficiency-western-digital-shingled-magnetic-recording-disks/). Each storage device contains 100+ drives and is multiple petabytes in size. Given the blast radius of single device failures, it is critical that our erasure codes and traffic are all built with this in mind.

In this talk we will deep dive into the architecture of Magic Pocket, some early key design patterns that we still live by to this day, and the challenges of operating such a system at this scale in order to be cost efficient and support many critical requirements.

The key takeaways for this talk are:

  • Provide an overview of the architecture of Magic Pocket. This includes key services, databases, how multi-region replication works, repairs, and a discussion on the storage devices.
  • Key architecture lessons, which had the most impact on Magic Pocket.
  • How we are able to operate such a system, while being extremely cost efficient.

Our system is much cheaper than operating in the cloud, but it operates with a high bar. We discuss these challenges in more detail for others looking to make this transition and what these trade-offs look like.

Interview

I'm currently leading the team that manages Magic Pocket. Magic Pocket is Dropbox's exabyte scale blob storage system. It’s the storage system for Dropbox and internal use-cases. Our focus right now is continuing to scale Magic Pocket for continued growth, work with hardware vendors to adopt the latest technology that will drive efficiencies, and improve the reliability of the system. Due to its size there's always something interesting going on.

The motivation of my talk is to provide an overview of the architecture behind Magic Pocket and how we're able to efficiently manage such a system. Also, lessons we learned along the way as the system has gone through several iterations. For example, we've built a cold storage tier, we've adopted SMR technology, performed very large migrations, and so on. I hope that people find all of these different projects as interesting as our team has.

I would say anyone that is interested in larger distributed systems, storage at scale or anyone curious on how to run such a system, perhaps your team is thinking about building something like this and you're trying to assess these tradeoffs, or just looking for some inspiration about building an on-premise storage solution like this.

I hope that folks out there walk away with some inspiration after learning more about Magic Pocket. I also hope that the lessons learned and tradeoffs we have made along the way resonate in projects people are working on at any scale and in any project outside of storage systems.

Topics

Architecture Storage Serverless System at this Scale Multi-Region Replication
76% senior dev or higher
1:11 speaker ratio
60+ practitioners

QCon San Francisco 2022 is a three day conference for senior software engineers, architects and team leads. An international program committee of working engineers selects every session. Patterns and practices, not products and pitches.

Share

From the same track

Wednesday 26 October

10:35 Ballroom A Session Architecture Amazon DynamoDB: Evolution of a Hyper-Scale Cloud Database Service Akshat Vig Distinguished Engineer @MongoDB, Previously Senior Principal Engineer NoSQL@AWS 11:50 Ballroom A Session Architecture Honeycomb: How We Used Serverless to Speed Up Our Servers Jessica Kerr Principal Developer Evangelist @honeycombio 13:40 Ballroom A Session Architecture Azure Cosmos DB: Low Latency and High Availability at Planet Scale Mei-Chin Tsai, Vinod Sridharan 14:55 Ballroom A Session Architecture From Zero to A Hundred Billion: Building Scalable Real Time Event Processing At DoorDash Allen Wang Software Engineer @DoorDash, previously Lead for real-time data infrastructure team @Netflix 16:10 Ballroom A Session Architecture Magic Pocket: Dropbox’s Exabyte-Scale Blob Storage System Facundo Agriel Software Engineer / Tech Lead @Dropbox, previously @Amazon