Abstract: In the modern world of internet and web-applications there are a lot of typical solutions for your brand new web-site, but still if you want to have a serious internet business with a great traffic load and huge page views counters, you have to collaborate with a software development team, if it is so and you’ve made the decision, text below is for you and for your team.
It is very important to get together three parts in order to draw a good and fast web-application. Here they are: simple and flexible architecture design, interactive cache system, high-performed database with not complicated queries. My idea is not of any original kind, these three points are spread into a complex project and experience of creating fast and interactive web-application (talking about 100.000 – 1.000.000 unique users generating up to 700.000 – 6.000.000 views, according to our stress tests ).
So first of all we’ve hit the design and choosing right level of abstraction was very important, because at this stage we have to decide how deep our database structure will be “denormalized “, and how much CPU time will be lost forming and counting on an inheritance, object mapping, abstraction and other “perfect” object oriented design features.
Next we have to draw a simple cache system with objects and queries support. It is very important to determine how to cache queries, how to store there an objects and of course how to organize links between objects and queries. OR mapping principals helped us to clarify the situation and had connected our “perfect” object model to a data storage.
The last step was to make fast database architecture. It was simple: well-organized automated archive and consolidated tables (that include data from many others) solved the problem.
The experience of our team gives a key how build a high-performed web system; design production, cache structure and data storage concepts are shown after this small abstract part.