Invision Community 4: SEO, prepare for v5 and dormant account notifications Matt November 11, 2024Nov 11
May 9, 201410 yr Matt, Does IPS4 support query type routing? IE: MySQL master server(s) for writes and MySQL slave(s) for reads? This feature is highly important, as of now, a high concurrency site/forum/database is best managed with inteligent partitioning or replication to manage disk load and concurrent connections. Should we expect this feature?
May 12, 201410 yr The way the database driver is architected would make this far easier to implement in 4. We have actually done this sort of separation in 3.x in the past, but found it a little finnicky. For instance, say your update gets pushed to the master but doesn't replicate to a slave for 1 second, but your selects are hitting that slave. During the process of posting a new topic for instance, select queries are being run to help rebuild cached statistics, and this sort of data gets out of sync when there are delays. Little things like this would need to be accounted for. Anyways, I tend to doubt we will offer out of the box MySQL read/write separation, however I can't say for sure just yet - and I can say that if we don't, it would be possible to do it yourself by overriding our database driver class.
May 15, 201410 yr As good an answer as any I suppose. I look forward to extending these classes in 4 :) The way the database driver is architected would make this far easier to implement in 4. We have actually done this sort of separation in 3.x in the past, but found it a little finnicky. For instance, say your update gets pushed to the master but doesn't replicate to a slave for 1 second, but your selects are hitting that slave. During the process of posting a new topic for instance, select queries are being run to help rebuild cached statistics, and this sort of data gets out of sync when there are delays. Little things like this would need to be accounted for. Anyways, I tend to doubt we will offer out of the box MySQL read/write separation, however I can't say for sure just yet - and I can say that if we don't, it would be possible to do it yourself by overriding our database driver class.
Archived
This topic is now archived and is closed to further replies.