To: carranza2 who wrote (1215 ) 9/26/2004 1:38:48 PM From: SI Bob Read Replies (4) | Respond to of 6035 Okay, I think you're gonna be real happy with this reply.If that is where PMs not placed in folders were typically sent after a response, yes. Yes. That's where they were sent. They were only accessible by going to the "Trash" link or going to the "Outbox" one and clicking one of your messages to that person, and back-tracking your way through the "Who Wrote" links. I'm glad you brought it up. I wasn't sure if I was going to make the Trash folder accessible, but now I know I must. But I'm not planning to do it the same way behind the scenes. A bit of explanation is in order. There a table for public messages and another for private messages. Every message that was in those tables when we acquired the site is still there. There is also a table called Folder_Links. This table was used to store not only links to user-created folders, but to store information about EVERY private message in the system and many public ones. There were 3 folderid's in folder_links that everyone had, whether they created their own folders or not. Folder 1 was (and still is) for messages that the recipient hasn't read yet (if public) or hasn't replied to (if private). Folder 2 was the Outbox. Every message you ever wrote, public or private, was put in your Folder 2. Folder 3 was the Trash folder. If you removed a message, or replied to it (if it was a PM), a Folder 3 entry was made for the message in the Folder_Links table. Some of you may already see the problem I have with this setup. It's largely redundant. Every message, private or public, has a fromid and a toid. So, when I was analyzing the setup, the first thing that occurred to me is that we don't need a Folder 2. If we want to display all the messages you wrote, we need only find those messages in the message tables using their fromid. That part was an easy decision. We didn't bring over Folder 2 links in the Folder_Links table. Folder 3 was a little tougher, but not much. One thing Folder 3 links have in common is that they're all messages in which your account number is the toid of the message. So, my thinking is that what was previously filed away in Folder 3 can be handled this way: If you're the toid of the message and you didn't file the message elsewhere, we'll call it "Trash". Different way to reach the same end result. Folder_Links was a very good idea and I did something similar on iHub. Folder_Links also incorporates another great idea that I'll have to use on iHub. On iHub, if we send a PM to ALL users, we actually add a new message to each person. On SI, the global message exists only once and everyone gets a folder_links record pointing to it. MUCH more efficient than duplicating a large message tens or hundreds of thousands of times. However, even that had a flaw on SI. The user table had something like 460,000 records in it, most of which we later discovered had never even visited SI. Many were records created when someone joined ANY GNET/INSP property. So, if a system message was sent out, 460k rows were created in Folder_Links for it. Very wasteful. The way I'll do it here will be a hybrid of the iHub and old SI methods. Like on iHub, the message will be created and added only when the user has visited the site and hasn't received the message. Like on SI, only a folder_link record will be added, though. Not the message itself. Long story short, if I remember correctly Folder_Links had something like 19 million records in it when we acquired the site. Cumbersome and even with small rows, slow. In my opinion, it was a great idea that got misused to the point of it no longer being a good idea. By getting rid of links to system messages and Folders 2 and 3 (whose functionality we'll be able to replicate another way), we trimmed it down to the 540,000 rows it currently contains. It's another reason this version is so much faster than the old version. So, the messages you're referring to aren't gone. They're just inaccessible to you right now. Making functional "Outbox" and "Trash" links is a relatively high priority, though, so that should be completed within the next couple of weeks.The transition seems to have gone through seamlessly and without a hitch. I'm nothing less than utterly amazed that it did so. The list of features we wanted to have available before throwing the switch kept growing, partly out of a subconscious fear of throwing the switch, I think. I finally had to draw a line and say "Whether we think it's ready or not, this is the day we're doing it." I'm a good programmer when it comes to enhancing and tweaking an existing system. I'm not particularly good when it comes to building things from scratch. So I'm probably the most surprised at how well this went. We said the site would be back up "sometime this weekend". It was up 30-60 minutes after we finally were able to get the old one shut down (I had someone at the ISP physically power down the servers).I can ony imagine the amount of time and energy you've devoted to the project I did it and I can still scarcely imagine it. 16 months on ONE project? Wow! Although a lot of that time doesn't count. I wasn't able to become very productive as a programmer until Dave relieved me of the hall monitor role.Good job. Thank you. As I've said before, subscriptions keep the site running, but the occasional positive feedback keeps the operators running. :)