It's often an unpopular opinion around here, but this is why I prefer simple hosted databases with limited query flexibility for high volume and high availability services (Firestore, DynamoDB, etc.). It's harder to be surprised by expensive queries, and you won't have to fiddle with failovers, auto scaling, caching, etc. Design your system around their constraints and it will have predictable performance and can more easily scale under unexpected load.
Coinbase Incident Post Mortem: June 25–26, 2019
11–20 of 30 posts
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#12> We have ensured that failovers for this cluster may only be initiated during rare, scheduled downtime, when there will be no impact on customers. I 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…
2. Loadtesting? Accurate end-to-end loadtests are painful to bootstrap from nothing and requires an environment that can be expensive, worth their weight in gold depending on how critical downtime is or if everything in your platform is pulling from the same resource pool(ie appliance based deployment).
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#13So basically price alerts lagged the system.
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#14> We take uptime very seriously, and we’re working hard to support the millions of customers that choose Coinbase to manage their cryptocurrency No 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 b…
Coinbase isn't dedicated to one timezone. They fully support tons of countries and have customers all over the place.
Things like this have to happen at some point, and there are benefits to doing stuff like this during "work" hours (like having all of your staff online and available)
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#15Earlier quoted context omitted.
Sounds like a maintenance error and an application design error that led to a flood of traffic. Doesn't sound MongoDB specific.
I don't think there is enough information to come to a conclusion here, but I doubt your proposed failure mode. 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…
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#16> We take uptime very seriously, and we’re working hard to support the millions of customers that choose Coinbase to manage their cryptocurrency No 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 b…
>you wouldn't be doing major database (or other production) changes at 3 pm in the afternoon. Coinbase isn't dedicated to one timezone. They fully support tons of countries and have customers all over the place. Things like this have to happen at some point, and there are benefits to doing stuff like this during "work" hours (like having all of your staff online and available)
That sounds like a benefit to Coinbase and not to any of their customers.
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#17> We take uptime very seriously, and we’re working hard to support the millions of customers that choose Coinbase to manage their cryptocurrency No 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 b…
Wow, I'm not from any "SF startup" but I find that side jab quite cunning.
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#18I thought this was interesting. I think that caches can be so dangerous in an incident - suddenly operations that are almost always constant time are executing in a much different complexity, and worst is that this tends to happen when you get backups (since old, uncached data is suddenly pushing recent data out).
I think chaos engineering may be a good solution here, in lieu of better architectures - see what happens when you clear your cache every once in a while, how much your load changes, how your systems scale to deal with it.
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#19Earlier quoted context omitted.
>you wouldn't be doing major database (or other production) changes at 3 pm in the afternoon. Coinbase isn't dedicated to one timezone. They fully support tons of countries and have customers all over the place. Things like this have to happen at some point, and there are benefits to doing stuff like this during "work" hours (like having all of your staff online and available)
> Things like this have to happen at some point, and there are benefits to doing stuff like this during "work" hours (like having all of your staff online and available) That sounds like a benefit to Coinbase and not to any of their customers.
Re: Coinbase Incident Post Mortem: June 25–26, 2019
#20Earlier quoted context omitted.
> Things like this have to happen at some point, and there are benefits to doing stuff like this during "work" hours (like having all of your staff online and available) That sounds like a benefit to Coinbase and not to any of their customers.
If it shortens MTTR it's worth it. It has to be 3 PM for someone.