I am a maintainer on the project, and Vitess provides native support for sharded query routing, resharding, and cluster management at scale.
22 karma · joined May 18, 2021
I am a maintainer on the project, and Vitess provides native support for sharded query routing, resharding, and cluster management at scale.
I do not know any other reason.
Disclaimer: Vitess Maintainer
Maybe your application has some special logic which is complex enough to unwind. I am just clarifying for the second statement.
Please find my answer inline
1. You can't have single database view of all shards
- Vitess does query planner and routing for the application so application does not have to know about shards. Yes, Vitess gives a view of a single database.
2. No distributed ACID
- This has been talked a lot feature and it is in our roadmap to provide. Currently, we have a twoPC implementation which we do not recommend for production use. Right now the users of vitess either choose their sharding key in such a way that all the queries in a transaction goes to single shard or the application can handle best effort multi shard transaction.
3. No distributed JOINs
- Vitess does support distributed joins, aggregation, subqueries and other complex queries. Vitess thrive to be 100% Mysql compatible. If anyone encouter such query, a github issue helps in knowing and prioritizing.