BigAdmin System Administration Portal

Solaris

Archived from Sun's Dot-Com Builder Web Site
This content is archived from Sun's Dot-Com Builder Web Site.
These are the Best Practices > How To's archives.

Some of these pages may contain links that are no longer available. If you see these, you can report it through the Suggestions link and we will remove the link and leave the name (for reference).

Back to Dot-Com Builder How-Tos Archive

Finding a Network File-Caching Solution
March 26, 2001

by James Mendelsohn

As enterprises scale up mission-critical applications such as e-mail, messaging, intranets, and e-business transaction processing, the demands placed on their networks increase exponentially. Sophisticated file-caching solutions have become an important means of not only maintaining but also improving the performance of networks while keeping costs down.

File caching allows a system to store frequently used or soon-to-be used data more locally than a source server. In effect, file caching becomes more than part of a network's temporary data storage system. It becomes a sophisticated I/O channel that:

  • Greatly reduces the load on network servers
  • Speeds the arrival of data to a user
  • Conserves bandwidth use

Caching solutions can cut costs, make a network efficient, and reduce latency -- the time it takes for a network to satisfy a users request for data.

Checklists for Finding a Network File-Caching Solution

You may find a combination of file-caching solutions fits your needs according to:

  • The access density of the system (that is, the network's load size)
  • The kind of demand on the network, including the types of files being accessed, and the kinds of users making demands, such as:

    • Employees on a LAN
    • Employees on a WAN
    • Customers or other clients trying to access a Web site

The following checklists will help you determine what your network's demands might be. They are divided into questions relevant to:

  • Client-caching solutions
  • Shared-caching solutions, including specialized solutions for:

    • Web caching
    • Load-intensive applications
    • Multimedia

Client-Caching Solutions

Where you have access to (and control over) your client hardware and software, the following questions may help you attain an important part of a file-caching solution:

Optimizing Performance with the Client

  • Does the caching solution make use of the client's cache resources?

    • For read-only files?
    • For writing?
    • For Web caching (that is, adjusting the cache settings on the Web browsers)?

  • What is the client-cache size? Does the client have a large amount of main memory? (Does it have a local disk that can be used for non-volatile storage?)
  • Can the client-cache size be modified? If it is increased, how does that increase affect not only the cache hit ratio but the miss penalty?
  • If the caching system uses the local disk as a cache, does that slow speed of access to data?
  • Have you considered products that extend or replace the built-in client caches on the hard disk with larger storage?
  • Are those caching products targeted? For example, are they devoted to big (and frequently used) applications, thereby reducing much of the load on the LAN (or WAN)?

    • If yes, does the client cache validate that it has the latest version of the application?
    • Does it integrate with different operating platforms?

  • How does the client-cache size affect data-cache consistency problems -- the difficulty of ensuring a file's cache copy is consistent with the master file on the network server?

Shared-Caching Solutions

  • Have you examined shared-caching solutions -- providing caching at aggregate points for use by multiple clients? (What caching abilities exist on your source servers?)
  • Have you considered proxy-caching solutions -- caches located near network gateways between the client and the server? (In this article, the terms "cache engine" and "proxy cache" are used interchangeably.)
  • Do you need a reverse or inverse cache devoted to different clients but only one server to reduce load? (At its bare minimum, this cache solution receives a single stream and sends it to all clients requesting that data.)
  • Does the network need a cache hierarchy -- a cluster of cache engines in communication with each other, all devoted to fulfilling requests from clients?

Clustering

  • Can the cache engine be clustered to scale for high-traffic loads?
  • If clustered, is the entire cluster disabled if one cache engine fails?
  • How does the cluster address overload?

Performance

Basic Shared-Caching Abilities

  • Does the cache engine store all reads and writes on all secondary media?
  • Does it read ahead in a file in anticipation of a program requesting data?
  • What if the content is not cachable? Does it establish a pass-through connection to the source server to ensure a client is served?
  • Is the cache transparent?
  • Can the operating system change the size of the file cache dynamically?
  • What is the cache/hit ratio?
  • How often is the cache flushed? What criterion is used -- age, last retrieval?
  • How does network performance change as demand increases?

Response to Network Problems

  • How does the cache respond to the following?

    • Device failures
    • Controller failures
    • Lengthy load times
    • Backups

Cache Consistency and Coherency Part I: Validation

  • How does the caching solution modify and update files? (In the case of applications, how does it allow for updates?)
  • How is data consistency maintained?
  • What is the frequency of the validity check?

    • Is it done before every access?
    • At fixed intervals?
    • Only on first access to a file?

  • What is the effect of the checks on performance (since each access that includes a validity check results in some amount of delay compared to immediate access to the cache)?
  • Does the server record the files it caches for each client?
  • How does it react to a client modifying and closing a file? How and when does it notify other clients to consider cached data on that file invalid?

Cache Consistency Part II: Modification

  • How does the cache update a file being modified by a user? How are those modifications transmitted not only to the server but to other clients, who may also be using a file?
  • How quickly does it replace modified, cached data on other clients?
  • How does the server resolve conflicting versions of a file cached by two different clients? That is, how does it maintain the validity and freshness of files in the cache, including files being accessed by multiple clients?

    • Does it use synchronous writes? At what cost to performance?
    • Does it use delayed writing?
    • Does it use asynchronous writing? At what cost to validity and freshness?
    • Does it use non-volatile RAM to accelerate write-throughput?

  • What measurements are there of its write-throughput performance? How are these taken, and who performs them?

Performance Measurements

  • Can the vendor provide measurements of the effect of the cache engine?
  • For example, has the reduction in bandwidth consumption been measured? What is the difference between the number of megabytes per second that come out of the server and go into it? Who has measured it?
  • Has the reduction in server load been measured?
  • Is the reduction in latency -- the time it takes for a response to be fulfilled by the cache rather than by the source server -- measurable?

Scalability

  • How scalable is the shared-caching solution? Can it scale from large to small networks as a business changes?
  • What is the maximum number of concurrent connections the proxy cache can maintain?
  • Does the proxy cache notify the client when its limit has been reached?
  • Can it be easily clustered and load-balanced? If yes, does the server have cloning of system volumes, data, and programs?

Administration and Configuration

Data Management

  • Does the caching solution have centralized data-management tools?
  • Do those tools allow for remote monitoring and administration of the following?

    • Performance
    • Availability
    • Utilization
    • Errors

  • Is the size of the cache configurable?
  • What kind of interface does the administration provide? Can it be remotely administered?

Bandwidth and Content Management

  • How much control does the network administrator have over bandwidth consumption, meeting of on-demand delivery, and internal and external delivery of content?
  • Can the administrator limit the bandwidth between the proxy and the source server?

    • Restrict the bandwidth connection to clients?
    • Limit the number of concurrent connections?

  • If the solution is a cluster of cache engines, can administrators proxy caches and manage bandwidth at lower nodes in the network?
  • Does it allow network administrators to route requests, providing an additional level of control?
  • Can an administrator designate content as non-cachable?

[Page 1]   [Page 2]  


BigAdmin