|
|
|
|
|
by quantumf
3230 days ago
|
|
I think you're understating how tough it can be. There are applications that * are mature and complex
* with 100s of tables
* serving millions of users
* have to be broken into multiple micro-services
* have developer resource constraints
So you're easily looking at a 1-2 year project, not 1-8 weeks.You've also ignored some of the complexities, such as resharding (moving data between shards), which may significantly add to the cost of the project. |
|
Having several shards can lower the availability of your application if it cannot handle the absence of a shard.
For example if you have 99.9% availability on your individual DBs, and if you split it up into 10 shards, availability will drop to 99% (8 hours VS 3 days of downtime a year).
To handle that, you need to add replication and automatic fail-overs, adding even more complexity.