Hacker News new | ask | show | jobs
by escardin 2011 days ago
My team manages a large scale vitess setup. Nothing is free. Vitess is a much better way of sharding mysql than sharding in app. It is not a silver bullet. No matter how you slice it, sharding a database exposes you to everything you described. For most of our devs, they don't actually have to care all that much about what the DB looks like under the hood. The biggest issue is scatter queries, for which we built a detector so you can find out before your code hits prod.

Cross shard queries are evil.

I count myself lucky that I didn't have to live through the migration and first shard splits, it sounds harrowing. We have a shard split coming up this year, but it's gotten way better now that we have our scale under control.

Vitess is a good solution to 'oh shit we use mysql and our app succeeded beyond our wildest dreams and we now have to migrate without or with minimal downtime ASAP, and can't afford the time to rework everything to use cassandra'. It is not something you should really be thinking about when choosing what storage backend to use for your brand new app. We strongly advise teams to choose other technologies where possible. It's not that it doesn't work, or is bad. It's actually really good at what it does. It's rock solid, and scales really well. It's the tradeoffs that make us not want to use it.