In order to increase performance on larger boards, we need to add better support for MySQL master-slave setups. Contrary to what vBulletin staff have told me, the MySQL documentation says that it is possible to create a slave implementation that only updates on regularly scheduled intervals. If it couldn't, and always updated simultaneously to the master, it would defeat any avoidance of locks during write actions.
Thus, to avoid conflicts with any combination of synchronicity, certain queries could not be limited to slave (like read queries that are used for integrity checks during edit/save/admin actions). Only queries used solely for display purposes could be served from a slave, so this includes:
- List of contributors under an article
- Template rendering
- Book contents / navigation
- History tab lists and views
- Autolinks
- All Special pages
- Forum header display
So basically, the slowest, most expensive queries in VaultWiki are now fetching from the slave server, if available.