Yes, correct. Currently we put all the read requests on higher priority. When you post a message it waits until all the pending reads are done, before putting your post into the database. This makes sense because reads can be done simulatenously, whereas writes have to 'lock' the tables they affect. The problem arises when one of these reads (a long thread read) takes 30 seconds or a minute to complete. Then the forum software has to wait to post, and gets confused and can double/triple post.
The real solution to the problem is to split the long threads, archive the front half, and not allow any thread over 50 pages. However when we last tried this we got general outrage from the community due to the way trust works here at sythe.org. So we need a different solution. I have been looking for a technical solution for a while... We initially just put more resources into the server, but this was only a temp. fix, and it seems to be running out now as the database continues to grow. To put in perspective, sythe.org had 18,000 new posts last week.
Further to the above, I think that, after reading more about other site's problems with migrating and maintaing vb4, it will end up being even slower for us than vb3. Many sites have remained on vb3 and will not be upgrading. It might be worthwhile therefore to continue improving the codebase we have and leave off any upgrades until much later when the new version of the forum software is actually superior in quality and speed to what we have.
I've finished exams. So I'll be putting some time and energy over the next couple of weeks into fixing problems around sythe.org.