The current forum module is very slow when the amount of messages reaches a certain treshold ( 50000 across 10 forum topics , line on www.bebe.ch )
It takes too long to display list of forums or of topics and this makes it unusable for some of my users.
There should be ways of optimizing how database access is done ( a single query for all forums instead of one per forum etc ) but I am not sure how fast this can ever be given the current model.
There is a problem tracking what is really new since last visit. Because users will typically arrive on a forum where there are already posts, it doesnt make much sense to mark them all as new first time. It only makes sense to track (1) new subjects since last visit and (2) new comments of partly read subjets.
1 is achievable by comparing last visit timestamp and node created field, fast . The last visit timestamp is then reused to display new comments on each of the nodes with comments newer that last visit time . The last visit timestamp is stored as a cookie , one cookie per forum. This cookie is reset whenever the user enters a forum and reads any of the contents in it.
2 is achievable using cookies (!) in a very elegant and efficient manner. This is what an old forum system I used (wwwthreads) does. It stores a cookie with a list of the comments that the user has read . When going through the list of forums and only for those comments posted after last user visit, the forum module should check each post against the cookie and count new posts if it is not found there.