Life of a Vitess Cluster
vitess.io
vitess.io
But for it to be titled life of a vitess cluster and talk only about setting up a vitess cluster. I don’t really think it follows. For instance, I might expect how reparents happen to be included as well. Or what it takes to reshard a key space, etc.
But then as I started taking a closer look at it, I realized it was more likely to introduce a host of new, hidden issues, than really solve any of our problems, or make things simpler. For example, it doesn't magically give your cross-shard transactions. And there are situations where it can cause straight up deadlocks, if you're not careful about how you structure your queries.
So basically your devs can see the DB as "one gigantic instance"... but they also have to be (painfully) aware of what Vitess is doing under the covers to avoid poor interactions with it.
Doesn't sound like a win to me.
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.