The Cache Location Problem
Overview TERCs Vs. Proxies Stability Cache location
Proxy Web Caching is Good Saves network bandwidth Reduces delay Reduces server’s load But it is not perfect: – –not everybody uses it (configuration) – –may become a bottleneck and increase delay – –increases delay for unsatisfied pages
Caches are located along routes from clients to servers, and are transparent to both server and client Requests are intercepted by the TERC on their way to the server, and either answered by the cache if the information exists otherwise, forwarded to the server Advantages: No configuration required! No management! No change required in current network infrastructure Can be deployed independently within an ISP subnetwork Transparent En-Route Caches (TERCs)
TERCs (-) Must be on the route from client to server: – –sensitive to route changes – –hierarchies are much harder to implemen Needs to intercept traffic: – –implementation problem – –more complex – –can TERCs work at line speed? Depends on routing stability, and flow stability Where should TERCs be placed?
Route Stability Published results indicate that routing is stable (Paxon, Labovitz) We need stability only during the connection lifetime (~1 min.): – –[KRS00] measurements to more that destinations show that >93% of connections were stable – –real numbers are probably higher TCP route caching equivalent of IP addresses
Stability of Flows We built the flow tree from servers: Data from Bell-Labs servers ( labs.com, labs.com ) – –Nov Jan. 98 – –~14000 different hosts, 1 Gbytes, ~200k cachable requests (per week) From log files to results: – –extract unique host – –run traceroute for each host – –obtain the routing tree (or is it DAG?)
Stability - Visual
Client return rate between days day
Stability (3) The relative flow in the tree is stable in time, although the client population changes significantly Routing is stable for the lifetime of the connection Placing caches based on past traffic yields good results
How Fixed is the Hit Ratio?
How Fixed is the Hit Ratio?(2)
Where Should the TERCs be Placed?
The Model Wide area network Requests are represented by a set of demands (of client i from server j) Goal: minimize average delay = minimize total flow The hit ratio (P) abstracts cache behavior most hits due to small number of popular pages full dependency - the same pages are cached everywhere But part of the flow can come from Proxies Each flow is associated with a hit ratio P i,j =>
The General k-cache Location Problem Instance: an undirected graph G=(V,E) a set of demands F={f i,j } a set of hit ratios P={p i,j } k - the number of caches Solution: K, a subset of V of size k Objective: minimizing total flow min f i,j [p i,j d(i,v) + (1-p i,j ) (d(i,v)+d(v,j))] i,j v K+{j}
The k-TERC Location Problem v K+{j} on the path from j to i min f i,j [p i,j d(i,v) + (1-p i,j ) (d(i,v)+d(v,j))] i,j Instance: an undirected graph G=(V,E) a set of demands F={f i,j } a set of hit ratios P={p i,j } k - the number of caches Solution: K, a subset of V of size k Objective: minimizing total flow
Remarks A generalization of the p-median problem (in the p-median problem we want to minimize the total cost of serving a set of demands from at most p centers) In the k-TERC location problem: – –it is enough to solve the problem for fixed p (p i,j = p) – –The optimal set K does not depend on p. – –(not true in general) The k-TERC location problem is a special case of the general k-location problem (p=1/n)
The independence of p s,c TERC constant
Hardness Results linetreegeneral graph one server m servers Poly. NP - hard
Topology: a line of n nodes Every node may be a server, a client, or both. FR(i) – The flow demand on the segment (i-1,i) FR can be easily computed from the input. FC(i,l o,l i ) - The flow on the segment (i-1,i) when the closest caches to i are in l o and l i. FC can be computed from the input with p=1. Note: FR(i) = FC(i,n-1,0) Placement on a line 012 n-1
Placement on a line C(j,l o,l i,k) the overall flow in segment [0,j] when k caches are locate optimally inside the segment, and the closest caches to j are in l o and l i.
The dynamic Program Base case (j=1)Base case (j=1) For j>1:For j>1:
The Algorithm 1.Compute C(1,l i,1,1) and C(1,l i,0,0) for 1≤l i ≤n-1 2.For each j>1 compute C(j,l o,l i,k’) for all 0≤k’≤k and 0≤l i ≤j≤l o ≤n-1 Complexity: O(n 3 k)
Optimizing for a single server The routes from the server to all clients form a tree (actually a DAG)The routes from the server to all clients form a tree (actually a DAG) We’ll use dynamic programing to find the optimal cache locationsWe’ll use dynamic programing to find the optimal cache locations
The Greedy Algorithm Optimal algorithm using a bottom up dynamic programming: – not trivial – complexity O(n k 2 h) Greedy: –repeat k times {find the best cache location} – complexity O(n k) How bad can it be? How bad can it be?
Greedy Vs. Optimal
Dynamic Programming for Tree First we convert the tree to a binary tree by adding dummy nodes. Sort all nodes in reverse BFS order: nodes descendents are numbered before the node itself. Children of node i are: i R and i L
Notations C(i,k’,l) is the cost of a subtree rooted at i with k’ optimally located caches, where the next cache up the tree is at distance l from i. F(i,k’,l) is the sum of demands in the subtree i that do not pass thru a cache in the solution C(i,k’,l).
The Dynamic Program
The DP Formula for C(i,k,l) The cost if a cache is not placed at node i: The cost if a cache is placed at node i: Complexity: O(n·h·k) variables O(n·h·k 2 ) time cmplx Finer analysis yields O(n·h·k) time complexity
The Server’s Point of View
Traffic Reduction
TERCs Vs. Edge Caches
The Server’s Point of View (2)
Popularity Stability