| Topic : Designing scalable systems for consumer internet |
|
|
|
|
Activity:
217 views;
last activity : 07 06 2010 20:18:09 +0000
|
|
|
|
1
Inappropriate use of caching
2
Not Updated with technology!!!
3
Bad DB design
4
Excessive round-tripping
5
Bad User Experience
6
Tight Coupling
7
Nailing up resources
8
Crappy Hacks
9
Not required dynamicism
10
Absence of foresight
11
Production Level Configuration of Web Server/Database/App Server
12
Use of features that degrades performance
|
||||||||||||||||||||||
|
|
Inappropriate use of caching... does that logic need to be cached or is its invocation infrequent enough that maybe a plain old CGI is exactly how it should be implemented? |
3
|
|
|
The technology and ways of implementation keeps on changing even as i write this Idea. Lets take a case: earlier we had problems of long loading time of images in the page, but not we use CSS sprites. But the implementation does not necessarily change with the incoming, advanced and better technology. It involves some effort in re-engineering of the web application. No company will like to go for this, unless the are ready to shell out some money. However the new projects which are developed at this point of time, do use updated technologies (if the developers and architects are well updated with the trends.). We generally tend to measure the performance with a similar application hosted as a competitor site. It really does matter, how are we using the technology. The technology has the solution to speed up the web performance, but the key is to have well informed developers to implement it. |
3
|
Agreed.. Its a real pain point if you see it from a developer's perspective. But this is what will make him stronger in development. If he doesn't keep up with the changing technologies, then he is bound to get outdated. But regarding these dynamic changes to be incorporated in the web design. I would suggest once in a cycle. My point is that the web application should evolve with technologies. Not as and when they come, but when they are stable and tested. Probably a few people in the RnD team can do this job and suggest the change methodology for the web application. I am just concentrating on a few people to take up this job. Not the whole bunch of developers.
i hope i make my point a bit clear.
Yes Sumit i agree with you that we have to update technology to improve web performances...but then with technology changing drastically time and again don't you think it will pose problems as by the time it is done with new technology some thing other comes up and then don't you think developers will find it difficult cope with new technology where they need themselves to get updated time and again for new technology...
|
|
Most of the time I have seen the problem mainly lies with poor Db design, basic things like indexing not proper, even queries to fetch record is also poor. If the Db design and the queries are improved then one of the basic reson for poor performance is resolved. Small sites are not much effected with this but sites dealing wirh millions of records will surely have the benefit. |
2
|
|
|
Too many features spoils the application. One first needs to identify the business goal and what are the features it required. Simplicity is the key. Your taret customers should not be puzzled and they should get all information at ease. Giving them the best user experience in terms of colors, navigation, accesibility and information are the keys of success. An attractive site does not sell well but a site where the selling process is easier and secured. |
2
|
|
|
Tight coupling of architectural pieces that have independent scaling and/or stability requirements... |
1
|
|
|
Development shortcuts that are quick-n-dirty that also happen to introduce slow-n-dirty runtime characteristics |
0
|
|
|
Insufficient use of caching or pre-generation of components that are static or have a low change rate |
0
|
|
|
the absence of foresight on how the architecture will smoothly scale with four or ten or a hundred times the use and sure enough, someone will blame the language or a framework |
0
|
|
|
Monitoring the application through jmx of critical parameters over the period time and tune the JVM, Database, Apache (web servers) accordingly.
Long running transactions.(Misuse of Transaction Isolation level)
3rd party integrations without timeouts
Recursions in forwards - A forward to B -B baed on condition forward back to A...
Database Deadlock on increased database size
Update database (mysql) without PK
Wrong pagination - Bring the whole database in jvm and fetch only first 30
Sorting in database on non-index column
...
|
0
|
|
|
Using certain features makes the developers life easier. But they are the main bottleneck when it comes to performance. In a performance sensitive application these features must be diabled.
E.g. In ASP.NET using Viewstate helps the programmer a lot. But it consumes a lot of bandwith that will degrade the performance of the system. |
0
|

|
|
|
|
|
|
We might be concerned with how easy a particular scaling solution is to integrate with the application language and framework, but they all can be made to scale . I prefer to look at how much the prevailing practices with the technology make... |
i agree with ashuthosh on this that both QOS and Firewall are important, where large organization will require Qos mainly and smaller ones can have just firewall stuff |
This is as simple as it gets, where you are periodically checking your competitors Web sites to see if they have borrowed your copyrighted content without permission. Conduct a search on Copyscape , a free, easy-to-use service that searches the Web... |
