Data partitioning (sharding) is a technique to break up a big database (DB) into many smaller parts.
Pros: Improve performance:availability, throughput, efficiency
Directory Based Sharding
Previous sharding methods requires us to modify out application code in order to go to different sharding servers. We can use a lookup service which knows your current partitioning scheme and abstracts it away from the DB access code.
Key Based Sharding
Range Based Sharding