The World Wide Web started out as a collection of static pages linked to one another. Of course, this was not enough for long. Today (especially with the arrival of Web 2.0) is the era of the Web application. While static pages still abound, the most popular -- and the most exciting -- sites are dynamic.
The BoSStats site where you can discuss what makes a good boss, office politics. Follow the "Platform" link to download the FlightFeather source code.
One Size Fits All? -- Part 2: Benchmarking Results is a paper which talks about the need for alternatives to the traditional RDBMS for certain applications. This includes text processing -- which is what a typical dynamic Web site actually does.
Linux & Scaling: The Essentials describes how an influx of visitors brought down a dynamic site, and how switching to static pages brought it back up.
Inside LiveJournal's Backend (PDF). A very interesting presentation overall. See their remark about static content on page 30.
LAMP: The Open Source Web Platform is a brief description of LAMP. The article also has historic significance, because it dates to the time when LAMP was just recognized as a platform.
Python Context Manager Types, introduced in version 2.5 of the language.
Understanding Network I/O, Part 2 discusses several advanced network I/O concepts, including concurrency. It is written by the author of this article.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The typical dynamic site depends heavily on a relational database backend (although the most visited sites do not necessarily use this approach). The application builds pages by querying the database, and assembling the returned data into HTML documents. This is a complex process, often implemented in several software layers (N-tier architecture). The database, in particular, must be very robust. After all, the system's state lives there. If the database goes down (or worse, becomes corrupted) the entire site can no longer function.
Very often, expensive hardware (frequently coupled with expensive software) and teams of database administrators must nurse the database. This scenario is common -- even in systems where the rest of the application runs on Free/Open Source Software (FOSS) with generic hardware.
There are tools to help developers of dynamic sites deal with the resulting scalability problems. For example, you could use memcached -- a distributed in-memory cache -- as part of your application. This can greatly reduce the strain on the database. Caching proxies such as Squid ease the load on multiple layers of the system. Adding Squid to a live site may even compensate for some errors in design or implementation, allowing the application to perform sufficiently well with little change.
Yet, the standard architecture for dynamic sites may be less effective than its popularity suggests. First of all, the ubiquitous relational database management system (RDBMS) is not the best tool for text processing (see "One Size Fits All? -- Part 2: Benchmarking Results" (PDF)). Programming for the Web, of course, is still primarily about text processing. Google does not use an RDBMS for this purpose, nor did the earlier search engines (such as Lycos and Inktomi).
| Use this form to start a public discussion with other Linux World users on this article. Log In | Register for an account (Why you should) |
Note: Register to have your user name appear; otherwise your comment will show up as "Anonymous."
*Anonymous comments will only appear once they are approved by the moderator.
• Dell puts Linux and Atom in Vostro PCs
• Mozilla names best Firefox 3 add-ons
• Torvalds: Fed up with the 'security circus'
• Dell Latitude ON - big win for Linux
• Open source advocates hail appeals court ruling
LinuxWorld Conference and Expo San Francisco, August 4-7, 2008.
Linux Plumbers Conference Portland, OR, Sept. 16-19, 2008.
FreedomHEC Santa Monica, November 8-9, 2008.