For couple of months I have been writing middlewares for database shards, and today I made a presentation covering them. It includes the following.
- Incline - a trigger and queue based distributed materialized view manager
- Pacific - a set of perl scripts to manage MySQL shards, a MySQL shard can be split into two in less than 10 seconds of write blocking (and no read blocks)
- DBIx::ShardManager - a client API for accessing database shards using Incline and Pacific
With these middlewares I think it is no more difficult to write web applications that runs on database shards. In fact IMHO it is as easy as writing a webapp that runs on a standalone database.
The presentation slides are available from slideshare. If you have any question or suggestions, please leave a comment. Thank you.