Hi,
I am trying to understand the "maintainance" and "manageability" aspects of wordpress mu database architecture. If I have thousands of database tables/schemas across one or more "databases" to support thousands of users (as done in wordpress.com), and adding more tables/schemas is the only option to scale this solution further, what will be the impact of this architecture on "maintainance" and "manageability" of the database system? i.e.
1) Assume you have 5000 blogs. Thus 5000 X 9 tables in one database. If a data definition change (e.g. column name change in 1 table) is to be rolled out using an automated script, and suppose there is a failure during application of this change to 1000th table (out of 5000), then will the change done earlier to 999 tables be rolled back? Is it not a considerably complex and risky "transaction" to be managed (it can potentially make my blogging platform unstable if not managed meticulously), given the huge volume of tables?
2) How wordpress.com manages this issue?
3) What is the team size that wordpress.com employs to manage such a huge number of tables and databases? What are the challenges they face?
4) What is the total number of databases as well as size & capacity per database that wordpress.com uses to support such a huge numeber of tables?
5) Once the number of tables in one databae grows beyond what the database can handle, the only option is to add one more physical database and manage the 2 databases with middleware like Hyperion. There is a cost implication of this in terms of database licenses (if not using open source database). It also increases number of "breakpoints" in the system.
6) To implement the desired "multitenancy", is maintaining a "user id" in relevant tables a better solution instead of "one table set per user"? "normalizing database model with tenant id in tables (share everything) instead of one schema/table set per tenant" is the approach that is suggested for most high usage SaaS platforms where "multitenancy" is required. Any specific reason to choose "one table set per tenant/user" approach in wordpress mu over "single schema/table set for all tenants with tenant id in tables (logical partitioning)" approach?
I would also like to know your experience with maintainability and manageability QoS requirements when it comes to "multi table" database architecture that wordpress mu implements for multitenancy?
Please help me understand the pros and cons of this database architecture.
Thanks for your time!