• No results found

Closer is better. Caches are widely deployed in today’s internet infrastructure to reduce load on web servers and the backbone network. Caching replacement policies have been widely investigated in context of web content[101, 23, 54, 105, 81]. Caching techniques for streaming media have different characteristics. Streams have important real-time and time synchronization requirements. Therefore, caching polices need to be amended with respect to these requirements. The full scope of this research is too broad. However, this section describes the basic concepts of today’s solutions and ongoing research in caching adaptive streaming videos. Several selected techniques are described in detail because of their practical importance and positioning regarding our contribution.

2.3.1 Replacement strategies in context of HAS

Storing the entire content would quickly exhaust the storage capacity of a cache. The segmen- tation nature of HAS videos has opened new perspectives to revisit the content replacement policies and amend them with respect to the content properties.

Once the cache is full, deciding to store a recently requested chunk requires a decision to remove and replace an object that is already stored. In the following, we overview a set of replacement algorithms that have been introduced and evaluated in context of adaptive 20

2.3. Caching

streaming:

FIFO [55]

Replace the oldest chunk based on when it was stored. Eventually, the cache will be filled with the recently requested chunk.

LRU [82]

Replace the chunk that has not been requested for the longest time. The most recently re- quested chunk will be placed at the top of the list of the cached chunks. LRU is the most popular and used algorithm. However, LRU does not consider the temporal locality of seg- ments in the HAS content. In the next chapter, we show that this adversely affects the cache performance.

LFU [61]

Replace the chunk with the fewest request-rate. Eventually, the chunk with the highest fre- quency will remain longer in the cache. LFU is not widely adopted because of its log complexity and the necessity for a periodic check and eviction of the stale chunks.

MIN [100]

The MIN algorithm is considered to be near-optimal replacement policy. Chunks with no more requests are subject to replacement. Yet this requires a knowledge about the future which is hard to predict. This makes MIN unrealistic for real implementation.

CC [49]

The Chunk-based Caching (CC) algorithm takes into account the time structure of the video content. CC associates a score for each chunk, then chunks with lowest scores are subject to eviction. The rationale behind is as the following: Assuming that a content C has M chunks. If a user is requesting chunk i , where i ∈ [0..M], then all chunks with indexes ranging from i + 1 to M increment their scores. This gives priority to the chunks that will be requested shortly given the latest clients’ requests.

Chapter 2. Traffic measurements, caching and prefetching: A review of the literature

RT [103]

The Reuse Time-based (RT) algorithm is a step forward towards enhancing CC. RT has many common points with CC strategy except that RT takes in addition the distance between chunk indexes of clients requesting the same content. This case is particularly suitable for long movies since it might be that one user is requesting the first chunk of the stream while the user ahead is at the end of the same stream. Therefore, it is worth weighting the scores of chunks in-between rather than simply incrementing all the scores.

WAVE [33]

Wave was designed for collaborative in-network caching such as content oriented networks. The number of chunks to be cached is adjusted based on the popularity of the content. As the request count increases, WAVE exponentially increases the number of chunks to be cached per file. WAVE aims at decreasing the overhead of cache management and improving caching efficiency.

2.3.2 Positioning

CC and RT algorithms are first algorithms to leverage the temporal locality of chunks in HAS to improve caching efficiency. However, these algorithms assumed that users watch the content entirely which is not always true[46, 47]. Subsequently, this introduces a bias into the real performance CC and RT could achieve. These replacement algorithms might be adopted to pay-per-view video services as the end user is motivated to watch the video she paid entirely. Furthermore, these algorithms are tunable, i.e. selecting the appropriate parameters depends primarily on traffic properties. In this thesis, we propose a workload aware LRU (WA-LRU) a cache replacement strategy to decide which chunk to replace and how to update the list of cached chunks. To do so, WA-LRU relies on 3 information: First, number of users requesting the same content simultaneously. Second, the workload on the cache. Third, the cache capacity.

WA-LRU adopts a dynamic behavior across the day. It evicts aggressively the video segments when the cache is under a heavy load and behaves less aggressive during the off-peak times. WA-LRU gives more priority to the first chunks to be cached since they are much more requested than the latest chunks of the same content. We demonstrate that WA-LRU improves 22