|
|
2003-04-18 05:40:16 ET
A strong, flexible, abstract architecture is what makes for a good dynamic web site; the backend implementation almost isn't important so long as the architecture can support scalable load levels.
sk.net is broken up into very small modules that do only as much as they need to. Even though php is an interpreted language, the execution time required for a particular module is virtually unnoticable. A highly tuned backend database ensures that access is also not a bottleneck. Most queries complete in milliseconds, even on tables that are quickly approaching 1 million rows.
As I said earlier, abstraction is key. If php were to become a bottleneck, it would be trivial for me to rewrite speed sensitive modules in another language such as python or even a compiled executable. This could be extended even further to use something like FastCGI, where requests would be handled by prespawned processes. Additionally, there is a fair amount of caching that could be added to the page display routines that would significantly reduce database calls. As you can see, there are many, many ways that sk.net can scale. I believe this scalability component is missing in "other" online communities. ;)
PHP and MySQL are often looked down apon because, like virtually all tools, there's a wrong way and a right way to use them. It's very simple to write a simple php script with a simple database backend and have it function without any problems under light to moderate load. However, it takes more experience and know-how in order to build something that can realistically scale. A table scan on 10 rows will complete significantly faster than a table scan on 1,000,000 rows. ;)
(And yes, I realize I'm preaching to the choir here..) |
|