In the current era of cloud computing, data stored in the cloud is being generated at a tremendous speed, and thus the cloud storage system has become one of the key components in cloud computing. By storing a substantial amount of data in commodity disks inside the data center that hosts the cloud, the cloud storage system must consider one question very carefully: how do we store data reliably with a high efficiency in terms of both storage overhead and data integrity? Though it is easy to store replicated data to tolerate a certain amount of data losses, it suffers from a very low storage efficiency. Conventional erasure coding techniques, such as Reed-Solomon codes, are able to achieve a much lower storage cost with the same level of tolerance against disk failures. However, it incurs much higher repair costs, not to mention an even higher access latency. In this sense, designing new coding techniques for cloud storage systems has gained a significant amount of attention in both academia and the industry. In this paper, we examine the existing results of coding techniques for cloud storage systems. Specifically, we present these coding techniques into two categories: regenerating codes and locally repairable codes. These two kinds of codes meet the requirements of cloud storage along two different axes: optimizing bandwidth and I/O overhead. We present an overview of recent advances in these two categories of coding techniques. Moreover, we introduce the main ideas of some specific coding techniques at a high level, and discuss their motivations and performance.
- Article type
- Year
- Co-author
Open Access
Issue
Open Access
Issue
Datacenters have become increasingly important to host a diverse range of cloud applications with mixed workloads. Traditional applications hosted by datacenters are throughput-oriented without delay requirements, but newer generations of cloud applications, such as web search, recommendations, and social networking, typically employ a tree-based Partition-Aggregate structure, which may incur bursts of traffic. As a result, flows in these applications have stringent latency requirements, i.e., flow deadlines need to be met in order to achieve a satisfactory user experience. To meet these flow deadlines, research efforts in the recent literature have attempted to redesign flow and congestion control protocols that are specific to datacenter networks. In this paper, we focus on the new array of deadline-sensitive flow control protocols, thoroughly investigate their underlying design principles, analyze the evolution of their designs, and evaluate the tradeoffs involved in their design choices.
Open Access
Issue
The essence of the peer-to-peer design philosophy is to design protocols for end hosts, or "peers", to work in collaboration to achieve a certain design objective, such as the sharing of a large file. From a theoretical perspective, it has been recognized that the peer-to-peer design paradigm resembles gossip protocols, and with appropriate algorithmic design, it maximizes the network flow rates in multicast sessions. Over the past ten years, research on peer-to-peer computing and systems, a unique and intriguing category of distributed systems, has received a tremendous amount of research attention from academia and industry alike. Peer-to-peer computing eventually culminated in a number of successful commercial systems, showing the viability of their design philosophy in the Internet. The peer-to-peer design paradigm has pushed all design choices of innovative protocols to the edge of the Internet, and in most cases to end hosts themselves. It represents one of the best incarnation of the end-to-end argument, one of the frequently disputed design philosophies that guided the design of the Internet. Yet, research on peer-to-peer computing has recently receded from the spotlight, and suffered from a precipitous fall that was as dramatic as its meteoric rise to the culmination of its popularity. This article presents a cursory glimpse of existing results over the past ten years in peer-to-peer computing, with a particular focus on understanding what has stimulated its rise in popularity, what has contributed to its commercial success, and eventually, what has led to its precipitous fall in research attention. Our insights in this article may be beneficial when we develop our thoughts on the design paradigm of cloud computing.
京公网安备11010802044758号