The Real World Math and Implications of S3's 99.999999999% Advertised Durability SLOConf 2022

Amazon S3 advertises 11 9’s of durability for both Standard and One Zone-IA object storage classes. This is a mind-bogglingly high level of durability. The way AWS puts it, if you’ve stored 10 million objects, you can expect to lose about one object about every 10,000 years - even within a single availability zone!

It’s important to note, though, that this is the designed durability, not the guaranteed durability. There are all kinds of things that can go wrong that could impact durability on AWS’s side, and it’s even more likely that problems with your application can impact the durability of your data in S3, even if AWS does everything right.

In this talk, we’ll talk about some of those things that might go wrong, and explore what S3’s advertised durability actually means to you if you’re someone who builds systems that use it.

Video is on YouTube.

Schema Evolution Patterns Velocity SJ/Texas Scalability Summit 2019

Everybody’s talking about microservices, but nobody seems to agree on how to make them talk to each other. How should you version your APIs, and how does API version deprecation actually work in practice? Do you use plain old JavaScript object notation (JSON), Thrift, protocol buffers, GraphQL? How do teams communicate changes in their services’ interfaces, and how do consumer services respond? Separately, nobody seems to agree on how to handle migrating a service’s structured data without downtime. Do you write to shadow tables? Chain new tables off the old ones? Just run the migration live and hope nothing bad happens? Switch everything over to NoSQL?

Both these problems are instances of issues with schema evolution: what happens when the structure of your structured data changes. Rather than taking a prescriptive approach, Alex Rasmussen distills a lot of institutional knowledge and computer science history into a set of patterns and examines the trade-offs between them.

Unfortunately, I don't have a good recording of this talk. Slides on SlideShare.

EarthBound's almost-Turing-complete text system! !!Con West 2019

EarthBound, a role-playing game released for the Super Nintendo in 1994, is one of the most universally revered games of all time. At the core of EarthBound is a super-complex scripting language that controls text, scripted cutscenes, music, sound effects, window management, and more. In this talk, we’ll explore some of the language’s more interesting or charming features.

Video is on YouTube; slides on SlideShare.

How Do We Solve The World's Spreadsheet Problem? Velocity NY 2018

In the past five years, I have spent a lot of time trying to get high-integrity data out of spreadsheets and into databases. In this talk, I explore common data integrity problems when dealing with spreadsheet data, investigate whether those integrity problems are inescapable, and share ongoing work to mitigate them.

Video is on YouTube; slides on SlideShare.

Unorthodox Paths to High Performance QCon NY 2016

This talk examines some lessons learned while building record-setting sorting systems at UC San Diego, and how understanding your hardware, architecting for experimentation, and re-examining your assumptions can make building high-performance systems easier.

Video and slides are available on InfoQ.

Flat Datacenter Storage Papers We Love January 2015

In January 2015, I gave a talk at Papers We Love, a meetup in San Francisco for engineers who like talking about computer science research. The talk focuses on Flat Datacenter Storage and the example it can set for system designers.

Video is on YouTube; slides on Slideshare.

My talk was preceded by a lightning talk by Sargun Dhillon on VL2. It's useful background; if you'd like to watch that talk, rewind the video to the beginning.