LinuxWorld
Subscribe to this site with RSS

BoSStats, FlightFeather and the Relative Static Web

There are lots of reasons not to use a database for a web application. Sometimes a server's security profile rules out installing another daemon. Sometimes simplicity of administration is more important than query language. This toolkit gives you database-like features with a reduced software install

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.

Related links

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).

React: Give us your thoughts on the issues here.
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.

Featured Whitepapers
Newsletter sign-up

Sign up for one of Network World's newsletters compliments of Linux World

Linux & Open Source News Alert
Web Applications Alert
Video and Podcast Alert
Security Alert
Virtualization Alert

Email Address: