Thanks for this excellent post. I enjoyed reading it a lot. Just have a few question.
1. With dynamic sharding, you must need to know how many range interval your application needs beforehand, correct?
2. I am wondering can an autogenerated id be used in dynamic sharding range query to find out its corresponding database?
3. Can consistent hashing technique be applied to determine which data goes to which machine?