Reading List for Distributed Systems and Cloud Computing

Understanding the literature is usually the first step to do research, which is the same for systems research on cloud computing. A reading list may help a lot to those that just start in cloud computing research.

Prof. Lin Gu, my PhD supervisor, compiled a reading list for system research on cloud computing. The reading list includes a list of papers related to Internet-scale systems and datacenters, techniques in distributed computing like Paxos, execution frameworks like MapReduce, distributed file systems like GFS, and storage systems like Dynamo. These are very good papers which every one in this area should study.

Please find the reading list here: http://tab.d-thinker.org/showthread.php?tid=1151.

A copy of the reading list is as follows.

Reading List for Distributed Systems and Cloud Computing

Datacenters form the backbone of cloud-based systems. Barroso et al. introduced the Google search system, which provides a good starting point for understanding Internet-scale systems and datacenters:
Luiz Barroso, Jeffrey Dean, Urs Hoelzle. Web Search for a Planet: The Google Cluster Architecture. IEEE Micro, Vol. 23, No. 2, pp. 22-28, Mar./Apr. 2003. http://tab.d-thinker.org/showthread.php?tid=133

The MapReduce framework is a pioneer of large-scale data-intensive computing in datacenters:
Dean, J. and Ghemawat, S. 2004. MapReduce: simplified data processing on large clusters. In Proceedings of the 6th Conference on Symposium on Opearting Systems Design & Implementation – Volume 6 (San Francisco, CA, December 06 – 08, 2004). http://tab.d-thinker.org/showthread.php?tid=2

Our recent development, DVM, shows an efficient way to extend instruction-level virtualization to a large number of physical hosts, and can potentially provide an abstraction of a “single computer” for a datacenter:
Zhiqiang Ma, Zhonghua Sheng and Lin Gu. DVM: A Big Virtual Machine for Cloud Computing. IEEE Transactions on Computers (to appear).
http://tab.d-thinker.org/showthread.php?tid=1685

Other instruction-level abstractions for data intensive computing include Layer Zero, X10 and OpenCL. Specifically, Layer Zero is an open platform for data-intensive computing using unified memory and CPU resources on a cluster and provides the “single computer” abstraction. Such emerging technologies emphasize computation in the memory, and take different approaches to manage the sources and model the data and computation. Spark takes a functional approach on an RDD (Resilient Distributed Dataset) model, and a set of technologies (Pregel, Power Graph, etc.) focus on computation in a graph model.

Zhiqiang Ma, Ke Hong and Lin Gu. VOLUME: Enable Large-Scale In-Memory Computation on Commodity Clusters. The 5th IEEE Intl. Conf. on Cloud Computing Technology and Science (CloudCom’13). Bristol, UK. Dec. 2-5, 2013.
http://tab.d-thinker.org/showthread.php?tid=2348

Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, and Ion Stoica. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing. NSDI’12.
http://tab.d-thinker.org/showthread.php?tid=1313

The datacenter software builds on techniques in distributed computing. Among these techniques, Paxos plays an important role in many core services in cloud systems. The following papers describe Paxos and a few systems using it:
Lamport, L. The part-time parliament. ACM Trans. Comput. Syst. 16, 2 (May. 1998), 133-169. http://tab.d-thinker.org/showthread.php?tid=188

L. Lamport. Paxos made simple. ACM SIGACT News, 32(4):18-25, 2001. http://tab.d-thinker.org/showthread.php?tid=414

Burrows, M. The Chubby lock service for loosely-coupled distributed systems. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation (Seattle, Washington, November 06 – 08, 2006). 335-350. http://tab.d-thinker.org/showthread.php?tid=59

The classic design of a large-scale storage system in datacenters is the Google File System (GFS), which provides a systematic solution to scalability, consistency, and software fault tolerance:
Ghemawat, S., Gobioff, H., and Leung, S. The Google file system. In Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles (SOSP’03), Bolton Landing, NY, USA, October 19 – 22, 2003. 29-43.
http://tab.d-thinker.org/showthread.php?tid=1

Above the file system abstraction, researchers have constructed key value stores and databases. Often not supporting the full ACID semantics, the database design is often referred to as a NoSQL database.

DeCandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., and Vogels, W. 2007. Dynamo: amazon’s highly available key-value store. In Proceedings of Twenty-First ACM SIGOPS Symposium on Operating Systems Principles (Stevenson, Washington, USA, October 14 – 17, 2007). SOSP ’07. ACM, New York, NY, 205-220.
http://tab.d-thinker.org/showthread.php?tid=120

Chang, F., Dean, J., Ghemawat, S., Hsieh, W. C., Wallach, D. A., Burrows, M., Chandra, T., Fikes, A., and Gruber, R. E. Bigtable: a distributed storage system for structured data. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation (Seattle, Washington, November 06 – 08, 2006). 205-218.
http://tab.d-thinker.org/showthread.php?tid=4

As the technology evolves, it becomes clear that reasonably strong semantics cannot be entirely ignored. While it is relatively easy to provide atomicity on single records, it is a tremendous technical challenge to support distributed transactions in high throughput, at affordable cost and in a large distributed system. Recent systems have made certain progress in this direction.

Jason Baker, Chris Bond, James C. Corbett, JJ Furman, Andrey Khorlin, James Larson, Jean-Michel Leon, Yawei Li, Alexander Lloyd and Vadim Yushprakh. Megastore: Providing Scalable, Highly Available Storage for Interactive Services. In Proceedings of the Conference on Innovative Data system Research (CIDR), 2011, pp. 223-234. http://tab.d-thinker.org/showthread.php?tid=805

An earlier system, PNUTS, showcases another design with several similar goals.

Cooper, B. F., Ramakrishnan, R., Srivastava, U., Silberstein, A., Bohannon, P., Jacobsen, H., Puz, N., Weaver, D., and Yerneni, R. PNUTS: Yahoo!’s hosted data serving platform. Proc. VLDB Endow. 1, 2 (Aug. 2008), 1277-1288. http://tab.d-thinker.org/showthread.php?tid=126

A more recent development is Spanner:

James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost, JJ Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson Hsieh, Sebastian Kanthak, Eugene Kogan, Hongyi Li, Alexander Lloyd, Sergey Melnik, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Christopher Taylor, Ruth Wang, and Dale Woodford. Spanner: Google’s Globally-Distributed Database. OSDI’12: Tenth Symposium on Operating System Design and Implementation, Hollywood, CA, October, 2012. http://tab.d-thinker.org/showthread.php?tid=1346

Similar Posts

  • | |

    How to Connect to Remote Servers by VNC on Windows

    Software you will need 1, Putty 2, Real VNC viewer 3, twm (lightweight desktop). On fedora (centos, redhat): sudo yum install twm (on other distros, you may need other commands, or download source code and install it). Specific steps 1, Enter your Host name and port in putty. 2, Set port forwarding in putty Tunnels….

  • Any good Java REPL tool/implementation?

    Any good suggestions on a Java REPL implementation like ‘scala’ and ‘python’ or ‘php -a’? The java-repl tool https://github.com/albertlatacz/java-repl/ works nicely for most situations for me. It is released as a .jar. Hence, it is easy to download and run: $ wget –quiet https://github.com/albertlatacz/java-repl/releases/download/428/javarepl-428.jar -O /tmp/javarepo-428.jar && java -jar /tmp/javarepo-428.jar One usage example is as…

  • Several Vim Tips (in Chinese)

    窗口模式操作 CTRL-W CTRL-S 将当前窗口分割为两窗口 CTRL-W CTRL-W 切换窗口 CTRL-W j 切换到下一窗口 CTRL-W k 切换到上一窗口 CTRL-W CTRL-R 将窗口的位置轮换 CTRL-W CTRL-_ 将当前窗口最小化 CTRL-W CTRL-= 将所有窗口变为等大 搜索和替换 /word 搜索word 搜索之后按回车高亮显示,n 下一个 p 上一个 :%s/模式/替换成的内容/gc % 全局选项,如果没有开启则只在当前行进行替换 g 表示 全局替换,如果没有g选项则只替换每行出现的第一个单词 c 表示需要确认 Esc替换按键 ESC键在键盘的左上角,按起来很不方便,而在VIM中ESC经常用到,其实有一个同样作用的组合按键:CTRL-[,这两个按起来手基本不用做大的动作,方便多了。 块操作 使用visual可视模式 v 进入可视模式,移动光标可进行选择 CTRL-Q 或 CTRL-V 进入列式模式,可进行块操作,选定的是一个矩形块。如果使用behave mswin CTRL-V可能映射成为past Read more: How to convert between…

  • How to add a “status bar” to screen on Linux?

    I noticed that some guys’ screen console has a status bar with tab numbers. That will be very useful for 1) know you are using screen rather than a normal terminal. 2) which tab you are working in. Below is my ~/.screenrc: hardstatus alwayslastline hardstatus string ‘%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]’ It…

Leave a Reply

Your email address will not be published. Required fields are marked *