news.volyx.in

Building and operating a pretty big storage system called S3 (allthingsdistributed.com)

804 points by werner · 1126 days ago · 160 comments on HN

Article summary

The article discusses the author's experience working on Amazon's Simple Storage Service (S3) and the lessons learned from building and operating a large-scale storage system. The author highlights the complexity and scale of S3, which is composed of hundreds of microservices and handles millions of requests per second. The article also touches on the importance of considering rare events and improbable failures when designing systems at scale. The author shares their personal journey and how their perspective on software systems has broadened since working on S3.

Main themes

  • scale and complexity
  • rare events and failures
  • system design and architecture
  • data correctness and durability
  • formal verification and testing
  • statistics and probability

What commenters say

  • Operating at scale means that rare events are no longer rare and must be considered in system design.
  • The probability of collisions in UUIDs is higher than expected due to the birthday paradox and implementation errors.
  • Formal verification and property-based testing are essential for ensuring correctness in large-scale systems.
  • Even with robust checksumming and validation, systems can still be vulnerable to corruption and errors.
  • The importance of paranoia and redundancy in ensuring data correctness and durability is emphasized.
  • Some commenters believe that the idea of rare events becoming common at scale is not a profound insight, but rather a basic principle of statistics.
  • Others argue that the difficulty lies not in understanding the principle, but in identifying and mitigating the specific rare events that can occur in complex systems.