Jointly Optimal Routing & Caching for Arbitrary Network - - PowerPoint PPT Presentation
Jointly Optimal Routing & Caching for Arbitrary Network - - PowerPoint PPT Presentation
Jointly Optimal Routing & Caching for Arbitrary Network Topologies Stratis Ioannidis and Edmund Yeh ICN 2017 A Caching Network Webserver User ? User nodes generate requests for content items with certain arrival rates Jointly Optimal
A Caching Network
Jointly Optimal Routing and Caching 1
User nodes generate requests for content items with certain arrival rates
?
λ
User Webserver
A Caching Network
Jointly Optimal Routing and Caching 2
Requests are routed towards a designated server ? User Webserver
?
λ
Jointly Optimal Routing and Caching 3
?
A Caching Network
Nodes have caches with finite capacities User
?
λ
Webserver
Jointly Optimal Routing and Caching 4
?
A Caching Network
User Routers have caches with finite capacities
?
λ
Webserver
Jointly Optimal Routing and Caching 5
Requests terminate early upon a cache hit ?
A Caching Network
User
?
λ
Webserver
Jointly Optimal Routing and Caching 6
Design network so that expected routing costs are minimized.
Goal
User ? Webserver 5 4 6 3 4 3 3 10 10 1 1 2 2 10 6 7
Jointly Optimal Routing and Caching 7
Joint Optimization
User ?
q Both caching and routing decisions are part of
- ptimization
Caching decisions Routing decisions Webserver
?
λ
Jointly Optimal Routing and Caching 8
Additional Challenge
Challenge: Caching and routing algorithm should be q adaptive, and q distributed.
User ? Caching decisions Routing decisions Webserver
Jointly Optimal Routing and Caching 9
Fixed Routing Setting
User ?
q Routes are given, e.g.: q determined by BGP, OSPF, etc. q Route to Nearest Server (RNS) q Only caching decisions are part of optimization
Caching decisions Webserver [Ioannidis, Yeh, SIGMETRICS 2016]
qShould we jointly optimize caching and routing? Is RNS sufficient? qCan we devise algorithms that: 1) have performance guarantees? 2) are distributed and adaptive? Challenges/Questions
Jointly Optimal Routing and Caching 10
q Mathematical model for joint optimization of routing & caching
q Source-routing q Hop-by-hop
q RNS is arbitrarily suboptimal q A distributed, adaptive algorithm within 1-1/e factor from
- ptimal
q Evaluation over 14 network topologies:
q Routing costs reduced by factor 103 compared to RNS.
Our Contributions
Jointly Optimal Routing and Caching 11
qModel qMain Results
qRNS is suboptimal qOffline Algorithm qDistributed, Adaptive Algorithm
qEvaluation Overview
Jointly Optimal Routing and Caching 12
qModel qMain Results
qRNS is suboptimal qOffline Algorithm qDistributed, Adaptive Algorithm
qEvaluation Overview
Jointly Optimal Routing and Caching 13
Model: Network
Jointly Optimal Routing and Caching 14
Network represented as a directed, bi-directional graph G(V, E)
G(V, E)
Model: Edge Costs
Jointly Optimal Routing and Caching 15
Each edge has a cost/weight
G(V, E)
5
Edge costs:
wuv
wuv, (u, v) ∈ E
(u, v) ∈ E
Model: Node Caches
Jointly Optimal Routing and Caching 16
Node has a cache with capacity
G(V, E)
v ∈ V
cv ∈ N
Node capacities: cv, v ∈ V Edge costs:
wuv, (u, v) ∈ E
Model: Cache Contents
Jointly Optimal Routing and Caching 17
G(V, E)
C={
}
Node capacities: cv, v ∈ V Edge costs:
Items stored and requested form the item catalog C
wuv, (u, v) ∈ E
Model: Cache Contents
Jointly Optimal Routing and Caching 18
G(V, E)
C={
}
Node capacities: cv, v ∈ V Edge costs:
For and , let v ∈ V
i ∈ C
xvi = ( 1, 0,
wuv, (u, v) ∈ E
if stores
- .w.
v
i
Then, for all , v ∈ V X
i∈C
xvi ≤ cv Caching Strategy of :
xv = [xvi]i∈C
v ∈ V
Caching strategy: xv = [xvi]i∈C
Model: Designated Sources
Jointly Optimal Routing and Caching 19
G(V, E)
C={
}
Node capacities: cv, v ∈ V Edge costs:
For each and , there exists a set of nodes (the designated servers of ) that permanently store .
i ∈ C
wuv, (u, v) ∈ E
Si ⊂ V i i
I.e., if then
v ∈ Si xvi = 1
Caching strategy: xv = [xvi]i∈C
Model: Requests
Jointly Optimal Routing and Caching 20
G(V, E)
C={
}
Node capacities: cv, v ∈ V Edge costs:
A request is a pair such that:
wuv, (u, v) ∈ E
q is an item in q is the source node of the request.
i
C
?
(i, s)
s ∈ V
s
Caching strategy: xv = [xvi]i∈C
Model: Demand
Jointly Optimal Routing and Caching 21
G(V, E)
C={
}
Node capacities: cv, v ∈ V Edge costs:
wuv, (u, v) ∈ E
? Demand : set of all requests
R
Request arrival process is Poisson with rate
(i, s)
λ(i,s)
s
?
λ
Caching strategy: xv = [xvi]i∈C Demand: λ(i,s), (i, s) ∈ R
Jointly Optimal Routing and Caching 22
Routing Variant I : Source Routing
Source node generating request selects entire path that request should follow.
User ? ? ?
Jointly Optimal Routing and Caching 23
Routing Variant II: Hop-By-Hop Routing
Each node selects only next-hop in the path.
User ? ? ? ?
Source Routing: Routing Strategy
Jointly Optimal Routing and Caching 24
G(V, E)
C={
}
Node capacities: cv, v ∈ V Edge costs:
For each request let be a set of possible paths the request can follow do a node in
wuv, (u, v) ∈ E
?
(i, s)
P(i,s) Si
s
Caching strategy: xv = [xvi]i∈C Demand: λ(i,s), (i, s) ∈ R
P(i,s)
Set of possible paths:
Source Routing: Routing Strategy
Jointly Optimal Routing and Caching 25
G(V, E)
C={
}
Node capacities: cv, v ∈ V Edge costs:
wuv, (u, v) ∈ E
?
P(i,s)
Routing strategy : probability distribution over
r(i,s)
X
p∈P(i,s)
r(i,s),p = 1
r(i,s),p ≥ 0, p ∈ P(i,s)
s
Caching strategy: xv = [xvi]i∈C Demand: λ(i,s), (i, s) ∈ R Routing strategy:
r(i,s) = [r(i,s),p]p∈P(i,s)
P(i,s)
Set of possible paths:
Source Routing: Routing Costs
Jointly Optimal Routing and Caching 26
G(V, E)
C={
}
Node capacities: cv, v ∈ V Edge costs:
wuv, (u, v) ∈ E
?
P
p∈P(i,s) r(i,s),p
P|p|−1
k=1 wpk+1pk
Qk
k0=1(1 − xpk0i)
Expected routing cost: Upper bound:
P
p∈P(i,s)
P|p|−1
k=1 wpk+1pk
Caching Gain: P
p∈P(i,s)
P|p|−1
k=1 wpk+1pk
h 1 − r(i,s),p Qk
k0=1(1 − xpk0i)
i
s
Caching strategy: xv = [xvi]i∈C Demand: λ(i,s), (i, s) ∈ R Routing strategy:
r(i,s) = [r(i,s),p]p∈P(i,s)
P(i,s)
Set of possible paths:
Caching Gain Maximization
Jointly Optimal Routing and Caching 27
G(V, E)
C={
}
Node capacities: cv, v ∈ V Edge costs:
wuv, (u, v) ∈ E
R: demand
5 3 4 6 ?
Maximize:
MaxCG
Subject to:
X
i∈C
xvi = cv for all v ∈ V xvi ∈ {0, 1} for all and v ∈ V
i ∈ C
xvi = 1
for all and
v ∈ Si
i ∈ C
F(r, X) = X
(i,s)∈R
λ(i,s) X
p∈P(i,s) |p|−1
X
k=1
wpk+1pk " 1 − r(i,s),p
k
Y
k0=1
(1 − xpk0i) #
r(i,s),p ∈ [0, 1]
p ∈ P(i,s) (i, s) ∈ R
,
for all
X
p∈P(i,s)
r(i,s),p = 1 for all
(i, s) ∈ R
s
Caching strategy: xv = [xvi]i∈C Demand: λ(i,s), (i, s) ∈ R Routing strategy:
r(i,s) = [r(i,s),p]p∈P(i,s)
P(i,s)
Set of possible paths:
Jointly Optimal Routing and Caching 28
Fixed Routing Setting (e.g., RNS)
User ? Caching decisions Webserver
|P(i,s)| = 1, ∀(i, s) ∈ R
qNP-hard qOffline algorithm achieves 1-1/e approximation qDistributed, adaptive algorithm achieving 1-1/e approximation
[Shanmugam et al. 2013] [Shanmugam et al. 2013] [Ioannidis & Yeh 2016]
qModel qMain Results
qRNS is suboptimal qOffline Algorithm qDistributed, Adaptive Algorithm
qEvaluation Overview
Jointly Optimal Routing and Caching 29
Jointly Optimal Routing and Caching 30
Is Joint Optimization Really Necessary?
User ? Why not just use shortest path routing towards the nearest designated server?
Is Joint Optimization Really Necessary?
Jointly Optimal Routing and Caching 31
Shortest path routing to nearest server is arbitrarily suboptimal.
RNS is Suboptimal
Jointly Optimal Routing and Caching 32
M
1
M
s t 2 c = 1 c = 1
= = 0.5
λ
?
λ
?
requests per sec Shortest path for both
Routing to Nearest Server is Suboptimal
Jointly Optimal Routing and Caching 33
M
1
M
s t 2 c = 1 c = 1
= = 0.5
λ
?
λ
?
requests per sec
Irrespective of caching decision, cost under shortest path routing is Θ(M)
? ?
M
1
M
s t 2 c = 1 c = 1
Routing to Nearest Server is Suboptimal
Jointly Optimal Routing and Caching 34
= = 0.5
λ
?
λ
?
requests per sec
Irrespective of caching decision, cost under shortest path routing is
? ?
Cost under split routing strategy is .
O(1)
Shortest path routing to nearest server is arbitrarily suboptimal. Θ(M)
Key Intuition
Jointly Optimal Routing and Caching 35
Increasing path diversity creates more caching opportunities.
?
Offline Algorithm
Jointly Optimal Routing and Caching 36
Maximize:
MaxCG
Subject to:
X
i∈C
xvi = cv for all v ∈ V
for all and
v ∈ V
i ∈ C
xvi = 1
for all and
v ∈ Si
i ∈ C
F(r, X) = X
(i,s)∈R
λ(i,s) X
p∈P(i,s) |p|−1
X
k=1
wpk+1pk " 1 − r(i,s),p
k
Y
k0=1
(1 − xpk0i) #
r(i,s),p ∈ [0, 1]
p ∈ P(i,s) (i, s) ∈ R
,
for all
X
p∈P(i,s)
r(i,s),p = 1 for all
(i, s) ∈ R
xvi ∈ {0, 1}
Offline Algorithm
Jointly Optimal Routing and Caching 37
Maximize: Subject to:
X
i∈C
xvi = cv for all v ∈ V
for all and
v ∈ V
i ∈ C
xvi = 1
for all and
v ∈ Si
i ∈ C
F(r, X) = X
(i,s)∈R
λ(i,s) X
p∈P(i,s) |p|−1
X
k=1
wpk+1pk " 1 − r(i,s),p
k
Y
k0=1
(1 − xpk0i) #
r(i,s),p ∈ [0, 1]
p ∈ P(i,s) (i, s) ∈ R
,
for all
X
p∈P(i,s)
r(i,s),p = 1 for all
(i, s) ∈ R
xvi ∈ [0, 1]
Offline Algorithm
Jointly Optimal Routing and Caching 38
Maximize: Subject to:
X
i∈C
xvi = cv for all v ∈ V
for all and
v ∈ V
i ∈ C
xvi = 1
for all and
v ∈ Si
i ∈ C
F(r, X) = X
(i,s)∈R
λ(i,s) X
p∈P(i,s) |p|−1
X
k=1
wpk+1pk " 1 − r(i,s),p
k
Y
k0=1
(1 − xpk0i) #
r(i,s),p ∈ [0, 1]
p ∈ P(i,s) (i, s) ∈ R
,
for all
X
p∈P(i,s)
r(i,s),p = 1 for all
(i, s) ∈ R
xvi ∈ [0, 1]
q Key idea: There exists a concave function such that
(1 − 1 e)L(r, X) ≤ F(r, X) ≤ L(r, X)
L(r, X)
Offline Algorithm
Jointly Optimal Routing and Caching 39
Maximize: Subject to:
X
i∈C
xvi = cv for all v ∈ V
for all and
v ∈ V
i ∈ C
xvi = 1
for all and
v ∈ Si
i ∈ C r(i,s),p ∈ [0, 1]
p ∈ P(i,s) (i, s) ∈ R
,
for all
X
p∈P(i,s)
r(i,s),p = 1 for all
(i, s) ∈ R
xvi ∈ [0, 1]
q Key idea: There exists a concave function such that
(1 − 1 e)L(r, X) ≤ F(r, X) ≤ L(r, X)
L(r, X)
L(r, X) = X
(i,s)∈R
λ(i,s) X
p∈P(i,s) |p|−1
X
k=1
wpk+1pk min{1, 1 − r(i,s),p +
k
X
k0=1
xpk0i}
Follows from Goemans-Williamson inequality:
- 1 − 1
e
- max
- 1,
X
i
yi ≤ 1 − Y
i
(1 − yi) ≤ max
- 1,
X
i
yi , for all yi ∈ [0, 1]
Offline Algorithm
Jointly Optimal Routing and Caching 40
Maximize: Subject to:
X
i∈C
xvi = cv for all v ∈ V
for all and
v ∈ V
i ∈ C
xvi = 1
for all and
v ∈ Si
i ∈ C r(i,s),p ∈ [0, 1]
p ∈ P(i,s) (i, s) ∈ R
,
for all
X
p∈P(i,s)
r(i,s),p = 1 for all
(i, s) ∈ R
xvi ∈ [0, 1]
q Offline Algorithm: q Step 1: Solve relaxed convex optimization problem q Step 2: Round caching solution via pipage rounding [Ageev and Sviridenko 2004]
L(r, X) = X
(i,s)∈R
λ(i,s) X
p∈P(i,s) |p|−1
X
k=1
wpk+1pk min{1, 1 − r(i,s),p +
k
X
k0=1
xpk0i}
Theorem: Resulting solution is within 1-1/e from the optimal solution to MaxCG
Distributed, Adaptive Algorithm
Jointly Optimal Routing and Caching 41
Each node maintains the following state information:
C={
}
v
0.5 0.9 0.6
s
r(i,s)
0.1 0.5 0.4
r = [r(i,s)](i,s)∈R X = [xv]v∈V
s
r(i,s)
q Each source maintains routing probabilities
xv
v xv = [xvi]i∈C
q Each cache maintains caching probabilities routing probabilities: caching probabilities:
Distributed, Adaptive Algorithm
Jointly Optimal Routing and Caching 42
Time is slotted.
C={
}
v
0.5 0.9 0.6
s
r(i,s)
0.1 0.5 0.4
xv
v
q Each cache estimates
s
q Each source estimates rr(i,s)L(r, X)
rxvL(r, X)
During each timeslot: via control packets exchanged between nodes during timeslot
r = [r(i,s)](i,s)∈R X = [xv]v∈V
routing probabilities: caching probabilities:
Distributed, Adaptive Algorithm
Jointly Optimal Routing and Caching 43
At the end of a timeslot, all nodes adapt their state:
C={
}
v
0.5 0.9 0.6
s
r(i,s)
0.1 0.5 0.4
xv
v
q Each cache :
s
q Each source :
xv ΠDv(xv + γk\ rxvL(r, X))
Stochastic Projected Gradient Ascent (PGA)
r(i,s) ΠDr(i,s) (r(i,s) + γk \ rr(i,s)L(r, X))
r = [r(i,s)](i,s)∈R X = [xv]v∈V
routing probabilities: caching probabilities:
Distributed, Adaptive Algorithm
Jointly Optimal Routing and Caching 44
At the end of a timeslot:
C={
}
v
0.5 0.9 0.6
s
r(i,s)
0.1 0.5 0.4
xv v
q Each cache reshuffles its contents independently according to
s
q Each source routes packets independently according to
r(i,s)
xv r = [r(i,s)](i,s)∈R X = [xv]v∈V
routing probabilities: caching probabilities:
Theorem: For , under Projected Gradient Ascent, the randomized allocation and the randomized routing strategy at timeslot are such that: where is an optimal solution to the offline problem.
Convergence
Jointly Optimal Routing and Caching 45
γk = 1/ √ k
Xk rk k
lim
k→∞ E[F(r, X)] ≥ (1 − 1
e)F(r∗, X∗)
(r∗, X∗)
qModel qMain Results
qRNS is suboptimal qOffline Algorithm qDistributed, Adaptive Algorithm
qEvaluation Overview
Jointly Optimal Routing and Caching 46
Experiments
Jointly Optimal Routing and Caching 47
Graph |V | |E| |C| |R| cycle 30 60 10 100 grid-2d 100 360 300 1K hypercube 128 896 300 1K expander 100 716 300 1K erdos-renyi 100 1042 300 1K regular 100 300 300 1K watts-strogatz 100 400 300 1K small-world 100 491 300 1K barabasi-albert 100 768 300 1K geant 22 66 10 100 abilene 9 26 10 90 dtelekom 68 546 300 1K | cv |P(i,s)| 2 2 3 30 3 30 3 30 3 30 3 30 3 2 3 30 3 30 2 10 2 10 3 30
Graph Topologies Routing Algorithms q Shortest Path (RNS) q Uniform q Dynamic routing: PGA on L for routes alone q LRU q LFU q FIFO q RR q PGA on L Caching Algorithms
Performance Comparison
Jointly Optimal Routing and Caching 48
Ratio of expected routing cost to routing cost under our algorithm
small-world
100 101 102 103
dtelekom
cost(·) cost(PGA)
Performance Comparison
Jointly Optimal Routing and Caching 49 LRU-S LFU-S FIFO-S RR-S PGA-S LRU-U LFU-U FIFO-U RR-U PGA-U PGA-U LRU-D LFU-D FIFO-D RR-D PGA
small-world
100 101 102 103
dtelekom
shortest path uniform dynamic routing Ratio of expected routing cost to routing cost under our algorithm
cost(·) cost(PGA)
Performance Comparison
Jointly Optimal Routing and Caching 50 LRU-S LFU-S FIFO-S RR-S PGA-S LRU-U LFU-U FIFO-U RR-U PGA-U PGA-U LRU-D LFU-D FIFO-D RR-D PGA
small-world
100 101 102 103
dtelekom
Path diversity Ratio of expected routing cost to routing cost under our algorithm
cost(·) cost(PGA)
Performance Comparison
Jointly Optimal Routing and Caching 51 LRU-S LFU-S FIFO-S RR-S PGA-S LRU-U LFU-U FIFO-U RR-U PGA-U PGA-U LRU-D LFU-D FIFO-D RR-D PGA
small-world
100 101 102 103
dtelekom
Optimizing Routing Ratio of expected routing cost to routing cost under our algorithm
cost(·) cost(PGA)
Performance Comparison
Jointly Optimal Routing and Caching 52 LRU-S LFU-S FIFO-S RR-S PGA-S LRU-U LFU-U FIFO-U RR-U PGA-U PGA-U LRU-D LFU-D FIFO-D RR-D PGA
small-world
100 101 102 103
dtelekom
Jointly Optimizing Caching & Routing
cost(·) cost(PGA)
Performance Comparison
Jointly Optimal Routing and Caching 53
cycle grid-2d hypercube expander erdos-renyi regular
100 101 102 103 LRU-S LFU-S FIFO-S RR-S PGA-S LRU-U LFU-U FIFO-U RR-U PGA-U LRU-D LFU-D FIFO-D RR-D PGA
watts-strogatz small-world barabasi-albert geant abilene dtelekom
100 101 102 103
qRNS is suboptimal qPath diversity caching opportunities qJoint optimization with guarantees over arbitrary topologies Conclusions & Open Problems
Jointly Optimal Routing and Caching 54
Open Problems qOptimize cost rather than gain qSpeed up convergence & reduce state qIntroduce queueing delays
Thank you!
Gradient Estimation
Jointly Optimal Routing and Caching 56
How can nodes estimate gradient in a distributed fashion?
C={
}
yv v
Y = [yv]v∈V
0.5 0.9 0.6
s
r(i,s)
0.1 0.5 0.4
r = [r(i,s)](i,s)∈R
Gradient Estimation
Jointly Optimal Routing and Caching 57
When request is generated, create a new control message
C={
}
?
(i, s)
Y = [yv]v∈V r = [r(i,s)](i,s)∈R
s
Gradient Estimation
Jointly Optimal Routing and Caching 58
Forward it to a path selected u.a.r. from
C={
}
?
Y = [yv]v∈V r = [r(i,s)](i,s)∈R P(i,s)
s
Gradient Estimation
Jointly Optimal Routing and Caching 59
C={
}
? 5 3 4 6
Y = [yv]v∈V r = [r(i,s)](i,s)∈R
r(i,s)
0.1 0.6 0.3 If is chosen, initialize counter in message to
p ∈ P(i,s)
1 − r(i,s),p
0.4
s
Gradient Estimation
Jointly Optimal Routing and Caching 60
Forward control message over path until:
C={
}
yv v
? 5 3 4 6 0.6 0.2 0.7 0.5 0.9 0.6 0.5 0.9 0.6
p Y = [yv]v∈V r = [r(i,s)](i,s)∈R
0.4
1 − r(i,s),p +
k
X
k0=1
ypk0i > 1
s
s
Gradient Estimation
Jointly Optimal Routing and Caching 61
Send control message over reverse path, collecting sum of edge costs.
C={
}
yv v
? 5 3 4 6 0.6 0.2 0.7 0.5 0.9 0.6 0.5 0.9 0.6
+3 +8
Each node on reverse path, sniffs upstream costs, and maintains average per item . Forward until: Average at end of slot is estimate of i ∈ C
∂L(r, Y ) ∂yvi
Upon receipt, source node averages same values to estimate ∂L(r, Y )
∂r(i,s),p
Y = [yv]v∈V r = [r(i,s)](i,s)∈R
1 − r(i,s),p +
k
X
k0=1
ypk0i > 1
qPath to closest cache learned adaptively qOptimization of caches and paths happens jointly
qCaching decisions affect routing and vice-versa qSame control plane for both
Key Insights
Jointly Optimal Routing and Caching 62
Jointly Optimal Routing and Caching 63
Routing Variant I : Source Routing
Source node generating request selects entire path that request should follow.
User ? ? ?
Jointly Optimal Routing and Caching 64
Routing Variant I : Source Routing
Source node generating request selects entire path that request should follow.
User ?
Jointly Optimal Routing and Caching 65
Routing Variant II: Hop-By-Hop Routing
Each node selects only next-hop in the path.
User ? ? ? ?
Jointly Optimal Routing and Caching 66
Routing Variant II: Hop-By-Hop Routing
Each node selects only next-hop in the path.
User ?
Jointly Optimal Routing and Caching 67
Routing Variant II: Hop-By-Hop Routing
Each node selects only next-hop in the path.
User ? ? ? ?
Jointly Optimal Routing and Caching 68
Routing Variant II: Hop-By-Hop Routing
Each node selects only next-hop in the path.
User ?
Jointly Optimal Routing and Caching 69
Routing Variant II: Hop-By-Hop Routing
Each node selects only next-hop in the path.
User ? ? ? ? ?
Same Principles Apply to Hop-By-Hop Routing
Jointly Optimal Routing and Caching 70
0.4 0.1 0.6 0.3
yvi + 1 − r(i,v),e v v
When receives a control message, it forwards it to random edge , adding to it
e
Randomized Placement
Jointly Optimal Routing and Caching 71
How can place exactly items in its cache, so that marginals are satisfied?
C={
}
0.5 0.9 0.6
yv
L(Y ) = X
(i,p)∈R
λ(i,p) P|p|−1
k=1 wpk+1pk min{1, Pk k0=1 yp0
ki}
v
5 3 4 6
v
cv
cv = 2
Y = [yv]v∈V
Randomized Placement
Jointly Optimal Routing and Caching 72
Suppose that I give you a such that .
X
i∈C
yvi = cv
yv ∈ [0, 1]|C|
Is there a way to select exactly items at random, so that the probability that item is selected is ?
cv
i
yvi yv1
yv2 yv3
yv4
= 0.82 = 0.77 = 0.77 = 0.64
X
i∈C
yvi = 3
cv = 3
C = {1, 2, 3, 4}
Randomized Placement: Sketch of Algorithm
Jointly Optimal Routing and Caching 73
µ1 µ2 µ3 µ4
1