It sounds like you either need a substantial rethink of how your application works and does its work or you need some database optimization foo.
The former is hard to guess at without more information on the system, but the latter is easy enough to take a few shot at.
- Are you using MyISAM tables? Consider switching the tables that are getting "congested" to InnoDB.
- Is it the caching table that's getting congested with reads and writes? Maybe you can do your caching more effectively? (Maybe use memcached?)
- Maybe you can partition your data? Have "cat reservations" on one database server and "dog reservations" on another.
- Also be sure to do all the "usual" MySQL optimization tricks (is it using the proper amount of memory? Do you have proper indexes on all tables? Enable the slow query log and check with EXPLAIN SELECT ... that all your queries are using indexes when possible. If it's not possible, rethink your table schema.
You might find the slides from my ApacheCon/MySQL UC/OSCON talk
- ask (available for short contracts working on that sort of problems)