• No results found

ICN content store design

5.3 H2C design

5.5.2 ICN content store design

Another stream of work related to our contribution concerns the design of content stores specifically targeting ICN routers.

Perino and Varvello [137] made seminal contributions by carrying out a systematic review of design options, evaluating feasibility and cost-effectiveness, without however providing a complete design.

The first design of a line-speed content store was provided by So et al. [155]. They presented a complete router design running on a service card for high-end IP routers, albeit supporting only DRAM memory. In their design they propose an optimised hash table jointly supporting PIT and CS operations. The same authors, later presented a high level design for supporting SSD-based caching as a separate module [154]. However, their contribution only consists in general architectural considerations with a performance evaluation limited to SSD I/O.

Rossini et al. [148] presented a design, without implementation, of a two-layer DRAM/SSD ICN router. However, their design focuses on the specific use case of video traffic and assumes proactive caching (i.e., caches are prepopulated during off-peak periods). As such their design disregards all the complexity of concurrent read/write operations that are crucial for high throughput performance. H2C design uses some concepts proposed in [148], such as batched SSD I/O operations. However our contribution widely extends this work by providing a complete practical design supporting any type of traffic with concurrent reads and writes.

Finally, Thomas et al. [164] also investigated design issues of two-layer ICN routers, although they focused on the specific case of SRAM and DRAM memories. Their design employs techniques to reduce the impact of large and unpopular content objects on cache hit performance. These issues are also implicitly addressed by our design by caching at a segment granularity (as opposed to a content object granularity) and selectively inserting items in SSD.

To the best of our knowledge, H2C is the first implementation of a complete content router with a DRAM/SSD cache operating at line speed.

5.6

Conclusion

Read-through caching nodes are a fundamental building block of a variety of networked systems such as CDNs, ICNs [89], [183] and redundancy elimination applications [6]. Despite their importance, their design and implementation have not received adequate attention from the research community.

In this chapter we improve the state of the art with two main contributions. First, we present a set of general design principles applicable to a wide variety of applications. Second, we apply these principles and complement them with more specific optimisation techniques to design H2C, a packet-level cache that we evaluate, as use case, as content store of an ICN router.

Overall, we proposed a number of techniques substantially departing from previous work. These include:

• A lightweight cache insertion filtering technique improving cache hit ratio and SSD read throughput • Organisation of consecutive chunks into segment to improve SSD read/write throughput and reduce

data structure memory overhead.

• System-wide performance optimisation such as batching, prefetching, zero-copy operations and exploitation of hardware parallelism.

Experimental results with realistic traffic traces show H2C sustains multi-Gbps throughput on inexpensive commodity hardware.

Conclusions and future work

6.1

Summary

Content distribution is the use case currently accounting for the majority of Internet traffic and is forecast to constantly increase over the coming years. This trend is challenging the scalability and reliability of the global Internet, partly owing to the fact that the latter was designed having in mind host-to-host communications as its main use case rather than user-to-content access.

It is generally accepted that the most effective solution to this problem is through the deployment of globally distributed caching systems as the way to localise content distribution traffic and preserve stability. This solution has already been deployed in practice with the advent of Content Delivery Networks. In addition, ubiquitous caching is also a fundamental feature of many future Internet architectures. However, with the growing amount of content distribution traffic, caching systems are expected to grow accordingly in terms of both footprint and traffic carried. As a result, their cost and complexity are also expected to grow.

This thesis addressed the problem of scalability and cost-effectiveness of distributed caching systems. It achieved this objective by making two main contributions tackling complementary issues in distributed caching systems. These are the design of efficient, load-balanced and predictable systems of caches and the design of efficient and cost-effective caching nodes that are part of a network of caches.

The first contribution, presented in Chapter 4, is the design of a caching framework specifically targeting the case of caches controlled by a network operator. This framework provides a set of key advantages over state-of-the-art techniques. It provides a 2x improvement in cache hit ratio and a 19-33% reduction in load imbalance while still yielding comparable latency. It also provides important qualitative advantages, such as robustness against traffic peaks and flash crowds, predictable performance and availability of knobs to fine-tune the performance.

The second contribution, presented in Chapter 5, is the design and implementation of a high-speed caching node that can achieve good cache hit ratio and 20 Gbps line-speed operations based on inexpensive commodity hardware. To the best of our knowledge, this is the first complete implementation of a content router operating at line speed with a DRAM/SSD cache. In addition, many design principles devised here are more generally applicable to other use cases.

These results shed light on the performance of sharded caching systems particularly regarding load balancing and caching efficiency. Given the ubiquitous adoption of sharding techniques in computer systems, the findings presented here have wider applicability than the scope of this thesis.

In summary, this thesis provided a well rounded set of contributions addressing the problem of building scalable and cost-effective caching systems at two different levels, i.e., the design of specific nodes and their interconnection. These contributions are rooted in solid theoretical foundations that motivated their design. We think that the contributions of this thesis advance significantly the state of the art in distributed caching system.