August 23, 1999
|
Print this story |
continued...page 2 of 3
While sites typically would store session information in a database or an LDAP-accessible directory from which an application server could request information, Dell tries to cache on the app server when- ever possible.
Dell's comparatively easy access to the latest fast hardware has given the company an obvious edge in deploying its site; still, the mere size of its Web pages is a problem. Dell uses Keynote Systems to monitor its Web site performance. Keynote downloads Dell Online's Web pages from locations throughout the world and reports the results. Dell also uses Windows NT's performance logging system and NetIQ AppManager to keep tabs on the performance of the components of Dell Online. Cisco's Distributed Director balances loads between data centers and Microsoft's Windows Load Balancing System.
Other sites have gone with the proven reliability and scalability of Unix systems, sometimes crafting all of the application server pieces themselves. "One hundred percent of our site is custom-built," says Martin of Garden.com, a site based on Sun's Solaris operating system and Oracle's database technology. Martin, who holds nine software patents in object technology, designed Sage, the application server for Garden. com. Sage is built on C, not C++, and is compiled, not interpreted, which greatly increases its performance over interpreted approaches such as Microsoft's Active Server Pages.
Sage was designed to let programmers quickly write Web applications. In Sage, everything is CGI-based and uses six levels of caching for improving database performance. "The whole world runs around the database, yet databases are incredibly slow," Martin says. "Fundamentally, the database is going to be a lot slower than local file access or a local RAM database."
At the lowest level, Sage builds snapshots of database table views for data that don't change much, such as prices and product information. This hastens user queries. By adding indexes to table views and loading full tables into Oracle's database buffers so the tables themselves are already in RAM, performance improves. Since Sage is based on compiled C, another level of caching is to compile frequently used data directly into shared libraries for in-RAM retrieval.
Sage also uses time-based caches that refresh cache data automatically on demand. Trigger-based caches are flushed based on actions rather than time expiration, such as when an item is added to a shopping cart. Sage also implements the common caching mechanisms of session object caches and database connection pooling.
While more sites use commercial application servers rather than designing their own, custom programming is still a necessity for many large sites. With 500,000 registered users and anywhere from 60,000 to 100,000 visitors each day, Sage is scaling nicely.
Illustration by Jane Marinsky/SIS
When customers enter Dell Online, they usually hit several servers, and the connection information needs to be shared from server to server. Dell's front-end servers store this information in a SQL database and periodically populate the cache of all of the servers with the information. "The way we're pre-populating our cache on our application servers is 99% homegrown and proprietary," says Brian Alexander, Dell Online site manager. "It's custom Visual Basic and C++ components."
Related links:
And from our sister publications:
continued...page 3
return to page 1
Back to This Week's Issue