1function model = gallery_cache_routing()
2% GALLERY_CACHE_ROUTING Open cache with hit/miss routed to distinct queues
3model = Network(
'Cache-Routing');
5n = 4; % number of items
7source = Source(model,
'Source');
8cacheNode = Cache(model,
'Cache', n, m, ReplacementStrategy.LRU);
9hitQueue = Queue(model,
'HitQueue', SchedStrategy.FCFS);
10missQueue = Queue(model,
'MissQueue', SchedStrategy.FCFS);
11sink = Sink(model,
'Sink');
13jobClass = OpenClass(model,
'InitClass', 0);
14hitClass = OpenClass(model,
'HitClass', 0);
15missClass = OpenClass(model,
'MissClass', 0);
16source.setArrival(jobClass, Exp(1));
17hitQueue.setService(hitClass, Exp(2.0));
18missQueue.setService(missClass, Exp(1.0));
19pAccess = DiscreteSampler((1/n)*ones(1,n)); % uniform item references
20cacheNode.setRead(jobClass, pAccess);
21cacheNode.setHitClass(jobClass, hitClass);
22cacheNode.setMissClass(jobClass, missClass);
24P = model.initRoutingMatrix();
25P{jobClass, jobClass}(source, cacheNode) = 1.0;
26P{hitClass, hitClass}(cacheNode, hitQueue) = 1.0;
27P{hitClass, hitClass}(hitQueue, sink) = 1.0;
28P{missClass, missClass}(cacheNode, missQueue) = 1.0;
29P{missClass, missClass}(missQueue, sink) = 1.0;