Fuel injection for Wisweb

Saturday 06.03.2010

For little over a month ago I did some rather large changes to how Wisweb works. I rewrote the whole engine for page templates from ground up with a strong focus on performance and reliability. At the same time, the operations department changed the webserver. What did we gain by these changes?


The methods for fetching data from the database was completely rewritten. This rewrite resulted in an average reduction of database pressure by two thirds. In addition the techniques for building the pages were changed so much that the server generates the pages with minimal CPU usage. On top of this, we've added an internal cache for the generated pages which results in most pages does not get processed by the server at all. The sum of all these changes results in a lot more idle time for our servers, and we are ready to receive a lot more users.


All these performance improvements resulted in a way better user experience for our users. Startup time for the intranet pages loads almost instantly. Both pages on the internet and the intranet are loaded way faster as a result of all this.


This improvement is mostly for us who work with the system. With the changes I've made to the server we will always get the result we expect. This was also the case partially earlier too, but we now have no known weirdness factors.


The system will now give us better feedback when something does not go according to the plan. Some customers has lately experienced us calling them to tell them that the feature they couldn't get to work was finally working again. This without them taking contact with us to inform us about a problem. Their problem was found from the updated logs, and we knew from that which customer had problems. In addition I found a setting for our application server that let the users be logged in even though the servers has been down. Some customers has probably seen that they've been logged out of during the night if they left the computer logged into the system. Thse customers will not see this anymore unless they are working in the moment that we take down the application.


With the changes I've done to the systems lately, the system is in better shape than it has ever been. I've still got a lot of ideas on how it could be done better to give an even better performance, but that will have to wait for an another time. What we currently have will give us a lot more room as we start on the next version of the system.