Electrical computers and digital processing systems: multicomput – Remote data accessing – Accessing a remote server
Reexamination Certificate
1999-05-18
2003-04-22
Chin, Wellington (Department: 2664)
Electrical computers and digital processing systems: multicomput
Remote data accessing
Accessing a remote server
C709S203000, C711S003000, C711S119000
Reexamination Certificate
active
06553411
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to caching information in computer systems, and more particularly to a method and system for accelerating cache memory in these computer systems.
2. Description of the Related Art
Computer systems may include caches for retaining information in a more accessible location to reduce fetch time and forego the need for recalculation of objects. Caching is commonly used for improving performance on many computer systems. By caching an object, the cost for fetching or creating the object is only incurred once. Subsequent requests for a cached object can be satisfied from the cache, a process which incurs significantly less overhead than recalculating the object or fetching it from a remote location.
Proxy caching is a technique used in conventional systems for storing data remotely from a Web site where the data permanently reside (see “Caching Proxies: Limitations and Potentials” by M. Abrams et al., “Fourth International World Wide Web Conference Proceedings,” December 1996, pp. 119-133; and “World Wide Web Proxies” by A. Luotonen and K. Altis in “Computer Networks and ISDN Systems,” vol. 27 (1994), pp. 147-154 , both incorporated herein by reference). Proxy caches for major Internet Service Providers (ISP's) can receive huge volumes of requests. Consequently, performance is of critical importance for proxy caching.
One technique for improving performance of Web servers and proxy caches is to use a Web server accelerator (see, is e.g., “Design and Performance of a Web Server Accelerator,” by E. Levy, A. Iyengar, J. Song, and D. Dias, Proceedings of INFOCOM'99, March 1999, incorporated herein by reference). For example, described therein is a Web server accelerator which runs under an embedded operating system optimized for communication. When used as a front end for one or more Web servers, the accelerator can dramatically increase the throughput of the Web site.
Another technique for improving proxy caching is to introduce large scale distributed caches, as described by R. Tewari, et al. in “Beyond Hierarchies: Design Considerations for Distributed Caching on the Internet”, Technical Report TR98-04, Department of Computer Sciences, University of Texas at Austin, February 1998. The techniques developed therein are for improving the performance of a set of distributed caches by sharing information among the caches. However, these techniques do not improve the performance of individual proxy cache nodes.
A Web server accelerator can also be placed in front of a proxy cache to improve the performance of the proxy cache. Using this approach, requests to the site would initially go to the accelerator. If the requested document were contained in the accelerator cache, it would be returned without contacting the proxy server on which the proxy cache runs. If the requested document were not contained in the accelerator cache, however, the request would then go to the proxy server.
The Web server accelerator will improve performance a moderate amount using this configuration. The improvement in throughput will likely be less than a factor of two, however, because most requests will result in misses at both the accelerator and proxy cache. One reason for this may be that various studies have shown that in general, less than 50% of documents on the Web can be cached at proxies (see “Web Proxy Caching: The Devil is in the Details” by Caceres, Douglis, Feldman, Glass, and Rabinovich, Proceedings of WISP '99). Requests for uncacheable documents will result in cache misses at both the accelerator and proxy caches.
Therefore, a need exists for a system and method for accelerating cache throughputs for computer systems. A further need exists for providing a method for significantly improving performance at proxy servers.
SUMMARY OF THE INVENTION
A method, which may be implemented by a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for satisfying requests between a client and a server including the steps of providing a first entity with a directory of information about contents of a cache of a second entity, the first entity for receiving a request from a client, determining whether the directory of information indicates that the request is satisfied by the cache of the second entity by querying the directory of information on the first entity, sending the request to the second entity, if the directory indicates that the request is satisfied by the cache of the second entity, and otherwise, sending the request to be satisfied by another entity. In other methods, which may be implemented by a program storage device, the first entity is preferably an accelerator. The accelerator may include at least one cache and the method may include the step of attempting to satisfy requests from a client by employing the at least one cache. In response to the at least one cache on the accelerator including insufficient space, the step of storing data in the cache of the second entity may be included. The second entity may include a proxy server. The step of compressing information included in the directory of information for referencing data in the cache may be included. The step of compressing information may include compressing at least some of the information using a hash function. The directory of information may include hints of information included in the cache of the second entity.
In accordance with the present invention, a system for accelerating interactions between a client and a server includes an accelerator communicating directly with the at least one client for receiving requests. A proxy server is coupled to the accelerator and includes a first cache. The proxy server can satisfy client requests for objects. The accelerator includes a proxy directory for storing information about objects included in the first cache such that the accelerator has access to information about objects stored in the first cache thereby preventing the need to access the proxy server for objects not included in the first cache.
In alternate embodiments, the system may include a plurality of accelerators. The system may include a plurality of proxy servers. The proxy server may include a Web server. The accelerator may include a second cache, the accelerator being adapted for satisfying client requests for objects by employing the second cache. Remote servers may be included for providing requested objects unavailable from the first cache and second cache. The system may include additional caches on the proxy server for storing an object when insufficient space is available on the first cache and/or second cache. The proxy directory may include compressed information for referencing objects in the first cache. At least a portion of the compressed information may be compressed using a hash function. The proxy directory may include hints of information included in the first cache.
These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.
REFERENCES:
patent: 6014667 (2000-01-01), Jenkins et al.
patent: 6112279 (2000-08-01), Wang
patent: 6144996 (2000-11-01), Starnes et al.
patent: 6289333 (2001-09-01), Jawahar et al.
patent: 6298356 (2001-10-01), Jawahar et al.
patent: 6360273 (2002-03-01), Beurket et al.
patent: 6405252 (2002-06-01), Gupta et al.
Tewari et al., “Beyond Hierarchies: Design Considerations for Distributed Caching on the Internet,” Technical Report TR98-04, Department of Computer Sciences, University of Texas at Austin, pp. 1-22, Feb. 1998.
Abegnoli et al., “Design and Performance of a Web Server Accelerator,” IBM Research, T.J. Watson Research Center.
Luotonen et al., “World-Wide Web Proxies,” Computer Networks and ISDN Systems 27 (1994), 147-154.
Abrams et al., “Caching Proxies,” Fourth International World Wide Web Conference Proceedings, Worl
Dias Daniel M.
Iyengar Arun K.
Rosu Daniela
Tewari Renu
Chin Wellington
F. Chau & Associates LLP
Ho Chuong
International Business Machines - Corporation
LandOfFree
System and method for cache acceleration does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with System and method for cache acceleration, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for cache acceleration will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3073315