Today marks the 1 week anniversary of when the source of the main forum performance issue was identified (accessing user profiles causes delays in other forum page loads). The problem still exists today.
Dear davidd
thanks for all your work in trying to identify why the forums are not as fast as they should be. Assuming that the problem is as you suspect, it is endemic to all IP boards.
Fortunately, that is not true. I have tested a handful of other boards and they do not have this issue.
Helpfully, you suggest the following solutions.
1) Create a "Mod" (or a complete module, for that matter) for IP.Board and install it over the top of our installation [...]
2) Hack directly into the software we have installed [...]
We do not have the technical expertise to accomplish this safely.
Do you mean (1) or (2)? If you mean doing it in the production instance, I would agree that is not a safe option, even if the IPB developers were doing it. Here is something I thought I posted in this thread, but it turns out it was in
another thread. I've copied the relevant pieces here.
...
Until we can get a sandbox environment set up, I don't think we'll make much progress on enhancements/bug fixes/performance tuning. One person just isn't enough, no matter how good they are at what they do. There appears to be a bit of political history on this board (I say that as a newcomer and just witnessing various exchanges in posts). To be blunt (and not making any value judgment, but just calling it as I see it), I get the feeling that some people are worried about those who have access to the system reading private messages or accessing leadership-only data and sharing that information with others. To a lot of people, that would seem like a silly obstacle, but I can see where people might get very close to something (like ImmInst) and get caught up in personal differences of opinion, etc. The somewhat anonymous nature of the Internet can often bring out the worst in people.
By having a sandbox environment (that's a non-production environment used for testing), it would be possible to develop a mechanism to restore the production data to this environment, run some SQL to remove sensitive data (but leave the rest there, because real data is often needed for testing and really needed for performance tuning) and then let the developers have access to work on the enhancements. This is the general mechanism that thousands of companies use with their corporate systems. They have truly valid concerns about the data in production systems falling into the wrong hands, because it often contains customer data.
Once a piece of development is done, it can be tested in the sandbox environment and then put into the production environment if it is working well. If it is found that it has some adverse effect on the production environment after being migrated, it can be taken back out and worked on more or (if it isn't causing a huge issue) can be worked on in the sandbox to fix the issue and pushed to production again.
Invision Power Board (and Gallery and Blog, etc.), the software we use, does come with a production license and at least one test license. We may even be able to negotiate for more test licenses, which would make it even easier for multiple developers to work in their own sandboxes and improve the efficiency of development efforts.
This test environment could be set up on the same hardware as the production environment. This may still worry those who worry, because the developers would still have access to the machines (operating system access), even if they didn't have a login to the production database instance. Alternatively, another system could be put together and the test instance(s) could be installed on that system. It would not need to be as powerful as the production system (meaning cheaper). It could even be run from one of the developer's computers, provided they have the required network setup to allow access. Or maybe our hosting company would even allow doing this on some other machine in their arsenal.
...
3) Use a Mod that someone else has already created. I'm assuming that is one of the reasons that IP.Board was chosen, because it has a large installed base, hence there are a lot of Mods that others have created. Someone may want to review the Mods that are available to see if the functionality they provide will fit with some of the feature requests we want to implement. As mentioned in (1), these can be applied/rolled back as needed (assuming the Mod creator followed recommended practices).
Your assumptions on this point are not correct. The software was chosen for its functionality back at the inception of Imminst. Its distinguishing feature is that -because it is a proprietary package- there is not a large 'modding' community as with other forum packages. I have had a brief look, but could not find a publicly available modification that promises to resolve the issue you identify. If anyone finds one and can vouch for its safety, all of ImmInst would be very grateful.
Are you saying that the software was chosen because someone thought there would be security in not having add-ons available? If so, I would disagree with that logic. Software is almost never chosen for this reason.
I was not suggesting that there would be a fix to the performance issue available as a mod. I've made several general recommendations in this thread about how development could be done, whether that is for fixing bugs, making functional enhancements, or performance tuning. The piece you are quoting here was one where I was offering advice on options for how to safely make changes to the website software. It was not specific to the user profile issue.
As for Mods available for IPB, there are many out there, despite the fact that it is pay software. It used to be free software. I'm not sure if that had any effect on the number of Mods, but there are many available. There may be functionality that the Imminst members/users ask for that could be satisfied by one of these Mods, which would be easier than re-inventing the wheel and coding our own enhancement.
4) Create pages that integrate in with the regular IP.Board pages, but use their own mechanisms to provide functionality/user interface/data. This mechanism may still be broken by an upgrade, but the code could be kept modular (if done well) such that pieces that don't work could be removed and others left in place.
I am unsure what you are suggesting here, but it may come back to the answer provided to 2) and 3).
I'll give you an example. Let's say we want to add functionality that shows which topics have had the most posts/minute for a given forum (this is a contrived example..I'm not sure if this functionality would be in high demand). With option 4, this could be satisfied by creating a whole new page that makes use of some custom back-end programming to directly query the database to acquire the data. This would be outside the IPB framework. It wouldn't involve any changes to the IPB software. It would just be making use of the data stored in the IPB database.
As I stated in my post, my preference is option (1), where we create our own Mod. I'd put option (4) next in line, unless there was an existing Mod for the functionality we needed, then that would come next. Lastly would be directly making changes to the IPB code without creating a Mod for it, for the reasons I outlined above.
As you know, we are actively looking for someone who can be employed to upgrade various aspect of software. Until such a person emerges and presents us with a solution, the issue of our forums reacting slowly will not be resolved. If the system is common to all Ip boards as you suggest, that person may even be able to strike a good deal with the owners of the software.
I did not suggest that the problem is common to all IPB installations. It is not. We have some issues that are common to *some* installations and one issue (the 10, 20, 30 second user profile delays) that I have not seen on any of the boards I tested (which doesn't mean that it isn't happening to another board, but I did not see it).
If the plan is to find one person to do all the work, I would respectfully offer up that is a plan that would slow progress. That plan would never be employed in a corporate Information Technology (IT) group at a company. Generally, more people means faster turnaround and more options and more insurance in case people leave (which does happen over time). We are fortunate that there are a number of people with experience who are willing to offer their time for free. I believe it would be a mistake to not take people up on this offer.
The suggestions I am making are based on many years of experience in IT. I got the impression that such experience was lacking, so I'm offering it up so that others may see how things are done and adopt best practices rather than reinventing the wheel and possibly heading down a bad path.
I'm in a rush here, so I don't have a lot of time to read over what I just wrote. Nothing I wrote here was done so with the intent to create bad feelings. My intentions are to show how it is possible to fix our current, biggest issue as well as make other changes going forward, so that we may improve the board. This current performance issue, I am positive, has already lost some potential users/members. Many studies have been done showing how fickle people are when it comes to slow response times on websites. I think we can all agree that more members/users is a good thing and not something we want to prevent.
The current issue could have been fixed a week or two ago. I'm not saying this to be confrontational. I'm staying it to point out that the current method of how things are done is not working. This generally points toward a need to change how things are done.
David
Edited by davidd, 03 March 2009 - 01:26 AM.