next up previous
Next: Negotiated objects Up: Resource Management Policies Previous: Resource Management Policies

Un-negotiated objects

Resource management for un-negotiated objects is relatively straightforward. To decide whether an object should be cached, the proxy estimates the benefit and the cost of caching, and passes the information to the cache replacement module. A cost-aware cache replacement algorithm can be used to decide whether an active object is cached, for example, the GreedyDual-Size algorithm (2, 2). The benefit of caching is calculated in terms of saved network bandwidth, estimated by the size of the response to each client request. The cost of caching includes the storage cost of the active object, the CPU cost of the applet, and the network communication incurred by the applet in the send_request_to_server calls. When an active object is first loaded, all costs are assigned a default value. The cost estimates are then adjusted every time the applet is invoked.

The proxy always attempts to invoke the cache applet if the object is cached. However, if the CPU or the disk arm is overloaded during the execution of the applet, the proxy terminates the execution of the applet, voids all file changes made by the applet, relinquishes all its locks, and directs the user request to the server.

In general, the upper resource limits for un-negotiated applets should be kept proportional to the size of the responses to client requests, that is, the savings in the network bandwidth. The exact scaling factors still need investigation. As we build more applets on top of Active Cache, we expect to gain more insight into the issue.


next up previous
Next: Negotiated objects Up: Resource Management Policies Previous: Resource Management Policies
Pei Cao
7/22/1998