Distributed Cooperative Caching Scheme in CCN
Dariusz Bursztynowski, Mateusz Dzida, Tomasz Janaszka (Telekomunikacja Polska, Orange Labs, Poland), Adam Dubiel (Warsaw University of Technology, Poland), Michal Rowicki (Warsaw University of Technology and Telekomunikacja Polska, Poland)
CCNxCon2012: Session 5: Distributed Cooperative Caching Scheme in CCN
1. CCNx Comm. Meeting, Sophia Antipolis, Sept. 12-13, 2012
distributed scheme for a single-path Interest routing
1. Motivation 4. Experimental network & traffic
Under traffic asymmetry (due to content locality and/or Network topology
network topology asymmetry) uncooperative schemes
like isolated LFU may perform far from optimum
2. Basic idea
Monitor the distance to the nearest copy of each content
object (signalling needed)
Set the weight of the object proportional to the distance
(local operation)
Apply knapsack algorithm to sort content objects in the
cache buffer based on the weights calculated as 9 sets of objects, 100 objects per set, objects of equal size
above (local operation)
Vary the ratio to capture the effects of content
locality asymmetry factor
5. Performance
distance info
Refer to the demo – four types of traces are monitored
3. Signalling and implementation
Signalling scheme based on passing Bloom filters in
order to announce cache contents
distance_list
Bloom(0) objects 0 hops away (own cache)
Bloom(1) objects 1 hop away (predecessor)
„parent” objects 2 hops away
Bloom(2)
… etc.
2 Data(ccnx:/ccnx/cache/aca/sig/parent, distance_list)
(distance list report)
1 Interest(ccnx:/ccnx/cache/aca/sig/parent)
(distance list request)
distance_list
Bloom(0) ← derive from own cache
Bloom(1) ← Bloom(0)
„child” 3
Bloom(2) ← Bloom(1)
Bloom(3) ← Bloom(2)
change index
…
6. Main conclusions
CCNx-based implementation
ACA engine o1
o2
name list for
objects to cache
The scheme
(drives the CCNx
• Promising performance improvement, but
…
ACA algorithm demon cache)
for inter-node …
signalling on for steering the cache of CCNx demon
Data(…)
• Scalability concerns in large networks – prefix
Interest (ccnx:/ccnx/<localCcndID>/cachereg/<name list>)
Interest(ccnx:/ccnx/ cache/aca/sig/<node ID>) Interest (ccnx:/ccnx/<localCcndID>/cacheunreg/<name list>)
cachereg to write-in objects in <name list>
aggregation can help, but some performance
CCNx API
cacheunreg to write-out objects from <name list> degradation
(Java) Interest (ccnx:/%C1.M.S.localhost/<object name>/%C1.aca.stat )
input to ACA for popularity estimation
• Efficient and scalable use of in-network caches still
to be studied
CCNx demon
Forwarding block Inner client Node architecture
outgoing Data(O)
New operations to register (write) /unregister (evict)
objects in CCNx cache with the following name syntax:
• API to node-level functions could facilitate
incoming Data(O)
write-in O
• ccnx:/ccnx/<localCcndID>/cachereg/<name list> experimentation with new schemes; desired
trigger cache update
actual O1
remove O if O nList
o1 nList - name list for
• ccnx:/ccnx/<localCcndID>/cacheunreg/<name list>
functions: cache manipulation, Interest/Data
objects to cache
CCNx
cache
O2
…
o2
…
(mirrors the ACA list) reception notification, …
remove cachereg
… …
cacheunreg
On on Legend
cached object
nList controller
new blocks required by ACA
Orange Labs