Coinbase Incident Post Mortem: June 25–26, 2019
blog.coinbase.com
Coinbase Incident Post Mortem: June 25–26, 2019
1–10 of 30 posts
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#2Re: Coinbase Incident Post Mortem: June 25–26, 2019
#3Re: Coinbase Incident Post Mortem: June 25–26, 2019
#4TLDR: MongoDB
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#5Re: Coinbase Incident Post Mortem: June 25–26, 2019
#6TLDR: MongoDB
Sounds like a maintenance error and an application design error that led to a flood of traffic. Doesn't sound MongoDB specific.
Based on my experience with largish data in mongo, my guess would be that the database size was >> than ram and, due at least in part to mongo's design, when the master failed over the memory state of the new master didn't have the working set present in RAM. This lead to a huge inrush of disk IO resulting in all sorts of bad until the RAM state sorted itself out.
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#7Re: Coinbase Incident Post Mortem: June 25–26, 2019
#8I hope all their hardware crashes are also scheduled when there will be no impact... This seems a bit backwards - unless you constantly exercise the instantaneous failover, how do you know it works?
Edit: Actually it's worse - if you don't test the instant failover under a full load, how do you know it's still instant then?
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#9TLDR: MongoDB
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#10No you don't.
- If you did, you'd hire a DBA team and they would be familiar with the various jobs in your environment. But first your founders would have to have respect for Operations, which will take a dozen more major outages.
The other major Coinbase outages have also been database-related, namely missing indexes.
- If you did, you wouldn't be doing major database (or other production) changes at 3 pm in the afternoon.
So let's cut to the chase. You prioritize features over Operations, and as a result guinea-pig your users. Just like any other SF startup. So just admit that to your end-users.