Published Sep 3, 2019

SE-Radio Episode 285: James Cowling on Dropbox’s Distributed Storage System

James Cowling delves into Dropbox's massive infrastructure shift from Amazon S3 to their proprietary distributed storage system, Magic Pocket, uncovering the architectural innovations, logistical hurdles, and cutting-edge redundancy techniques that enabled seamless data migration and high durability.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Migration Strategy

    James Cowling from Dropbox shares insights into the strategic migration from Amazon S3 to their own storage system, Magic Pocket. He emphasizes the importance of having an "undo button" to ensure a seamless transition, allowing users to migrate without noticing any disruption 1. Cowling explains that the decision to build a new system was initially uncertain but became clear as they gradually increased confidence through extensive testing and validation 2.

    Our job was really to build a very smooth transition trajectory where we ramp the system up very slowly.

    ---

    This approach allowed Dropbox to avoid controversy and ensure a smooth transition 3.

       

    Operational Challenges

    The migration to Magic Pocket presented significant operational challenges, particularly in maintaining seamless operations while transitioning data. Cowling describes the gradual process of storing data in both Magic Pocket and S3, ensuring zero tolerance for errors during the production validation phase 4. He reflects on the lessons learned, highlighting the importance of investing in operational automation early to reduce manual interventions and improve system reliability 5.

    If you had that many boxes, they break in all sorts of weird, wonderful ways, and we had to manually fix them.

    ---

    This experience underscored the need for a strong site reliability engineering team to automate processes and maintain system integrity.

       

    Data Integrity

    Ensuring data integrity was a critical aspect of Dropbox's migration strategy. Cowling discusses the role of invariants in maintaining system reliability and facilitating faster development by quickly identifying issues 6. He emphasizes the importance of rigorous testing and verification to ensure data durability and correctness, which was crucial for the success of Magic Pocket.

    If you're building a large system that has to be durable with, you know, twelve plus nine s of durability, the invariants and the test coverage make you move faster.

    ---

    This meticulous approach to data integrity allowed Dropbox to confidently transition to their new storage system.

Related Episodes