Next: Negotiated objects
Up: Resource Management Policies
Previous: Resource Management Policies
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: Negotiated objects
Up: Resource Management Policies
Previous: Resource Management Policies
Pei Cao
7/22/1998