Database partitioning is definitely a hot topic for weblin. Weblin does primarily vertical dataset partitioning where each feature gets its own database.
If that does not help anymore then we will probably add horizontal partitioning on top of vertical partitioning.
So, features have their databases with a primary-secondary setup. If a DB is overloaded by a feature then the cluster is split into multiple clusters which serve disjunct sets of item IDs.