• Controversial Topics
    Several months ago, I added a private sub-forum to allow members to discuss these topics without fear of infractions or banning. It's opt-in, opt-out. Corey Click Here

Update on the boards- Technical and Non Technical versions included

W

WebmasterAlex

Guest
We know there have been some issues with the boards and I wanted to give everyone an update. I've included a non-technical and a technical version. Since the server move we have run into several issues:

1. The code that was supposed to keep people from using the built in search and keep them on the board tracker search wasn't working right. Some people were able to access the built in search which quickly kills the boards.

Technical- Hows this for a query???
Count: 1 Time=1208.00s (1208s) Lock=0.00s (0s) Rows=8744.0 (8744),
SELECT
thread.threadid, thread.forumid, post.userid
FROM thread AS thread
INNER JOIN post AS post ON(thread.threadid = post.threadid )
WHERE post.postid IN(N,,{repeated 146966 times}N) AND thread.forumid IN(N) AND post.visible = N

Yes that is 1208 seconds

That is fixed and by all accounts performance has been better today.

2. The hard drives weren't fast enough- sometimes new isn't as much better as you would think

Technical- the old database server was 4 10k scsi's in a raid 0+1. The new one has 4 15k SAS in a raid 0+1. We are not seeing much difference at all. We are looking at adding 2 15k SAS's for the OS and having a 6 disk raid 0+1 or going with 2 drives for the OS and tying into our hosts fiber channel SAN.

It's going to take a week to sort that out.

3. We are getting a little big for the "stock" version of the software.

Technical- it doesn't scale all that darn well

We are considering bringing in some expert consultants that are specialists in mysql performance to look at the code and see what they can do. We know that long threads are becoming an issue. I'll just copy a quote from the vbulletin board to explain:
vb stores the threadid and dateline in the post table. Whenever a bunch of posts needs to be selected, vb filters the post table by threadid and orders the results by dateline, and takes a few of the posts (of course there is an index involved). In other words the query is similar to

SELECT * FROM post WHERE threadid=$threadid ORDER BY dateline LIMIT 8575,15

which means that mysql will have to throw away the first 8575 results and then return the next 15. If my understanding is correct, this is the reason why large threads are bad. We need only 15 rows, but mysql has to analyse thousands.
With some threads approaching 125,000 posts you can see the issue. We don't want to have to put thread length limits back so we are looking for options.
 
Thanks Alex....I have faith you guys will figure it all out. Meanwhile we will hang in there.
 
Why not just kill every thread after 100 posts. By then, a dead horse is always beaten to death anyway.
 
Thanks for the update Alex! I really appreciate the non-technical explaining of things. :goodvibes:
 


Alex - Thanks for your dedication and the technical explanation. Keep up the good work. :)
 
Alex, the boards are working much better for me tonight so thanks for that.

As for your "non-technical" explainations....I'll have to try re-reading them again. :lmao:

We appreciate all you do here...you are my hero. :worship:
 
Non technical summary

1 thing was broke we fixed it
2 things are still broke we are working on fixing them

Is that better? :surfweb:
 


Thanks Alex, for all your hard work and translating your technical version. :)
 
I like the non-technical versions - but I did hand the computer to my DH who understood every word/number of the technical version :confused3 He muttered something about having to work on the raid...:confused3
 
just a thought, do you store all the posts from the DIS since day one? If you do, then maybe delete some of those? It would free up some database in the computers hard drive. . .
 
Another question. If threads have 1,000+ posts on them, can you clean out everything except the latest 999 posts? (That was mostly a random number.) It seems like storing 184,320 (random number) in any one thread would use a lot of memory.

Or is that what you're saying, and my non-computer mind is not comprehending?;)
 
Hubby is a computer nut and stuff like this is what he does and I showed his this thread. He asked how much RAM are you using? He said board performance has more to do with ram than drive space? He is going to read the thread better when he gets to work.
 
Technical- the old database server was 4 10k scsi's in a raid 0+1. The new one has 4 15k SAS in a raid 0+1. We are not seeing much difference at all. We are looking at adding 2 15k SAS's for the OS and having a 6 disk raid 0+1 or going with 2 drives for the OS and tying into our hosts fiber channel SAN.

Good Lord! For a message board?!? No wonder! We've gotten way too big for our britches.

Thanks for the techie info Alex. I does a Geek's heart good to read SQL and see the word "scsi" in print. Always liked the word "scsi". :)
 
we have 8 gigs of ram in the database server, there no paging and those numbers look good
Galahad- thats the db server, there's also 2 webservers and a load balancer
 
1. The code that was supposed to keep people from using the built in search and keep them on the board tracker search wasn't working right. Some people were able to access the built in search which quickly kills the boards.
Gosh, that DOES explain a lot, and it should provide a very clear, up-to-date, indication to folks who want the old search back precisely why it is infeasible.

Technical- Hows this for a query???
Count: 1 Time=1208.00s (1208s) Lock=0.00s (0s) Rows=8744.0 (8744),
SELECT
thread.threadid, thread.forumid, post.userid
FROM thread AS thread
INNER JOIN post AS post ON(thread.threadid = post.threadid )
WHERE post.postid IN(N,,{repeated 146966 times}N) AND thread.forumid IN(N) AND post.visible = N
Are you folks are looking into creating a new, indexed relation table to serve as a JOIN target for that massive IN clause? (That's not a recommendation: Database design is not my forte. I'm asking solely for personal edification in that regard, i.e., what would people who do know databases do if faced with the problem you're facing.)

Yes that is 1208 seconds
And during that time one of the server worker threads was blocked, right? Get enough of them, and the whole application would freeze up, which is what actually happened.

With some threads approaching 125,000 posts you can see the issue. We don't want to have to put thread length limits back so we are looking for options.
AVS Forums does indeed put thread length limits in place. Quite frankly, I prefer them regardless of the fact that they also provide performance benefits. YMMV.
 
Another question. If threads have 1,000+ posts on them, can you clean out everything except the latest 999 posts?
Unless I'm mistaken, thread limits would LOCK threads after a certain number of posts, not clean threads out. I think cleaning threads out is a bad thing, since important information, that people might want to refer back to, would be lost.
 

GET A DISNEY VACATION QUOTE

Dreams Unlimited Travel is committed to providing you with the very best vacation planning experience possible. Our Vacation Planners are experts and will share their honest advice to help you have a magical vacation.

Let us help you with your next Disney Vacation!











facebook twitter
Top