<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Mosharaf Chowdhury</title>
	
	<link>http://www.mosharaf.com</link>
	<description>UC Berkeley</description>
	<lastBuildDate>Fri, 03 Feb 2012 04:49:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mosharaf" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="mosharaf" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>TAing for CS162: Operating Systems and Systems Programming</title>
		<link>http://www.mosharaf.com/blog/2012/01/29/taing-for-cs162-operating-systems-and-systems-programming/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=taing-for-cs162-operating-systems-and-systems-programming</link>
		<comments>http://www.mosharaf.com/blog/2012/01/29/taing-for-cs162-operating-systems-and-systems-programming/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 23:34:01 +0000</pubDate>
		<dc:creator>Mosharaf</dc:creator>
				<category><![CDATA[Recent News]]></category>

		<guid isPermaLink="false">http://www.mosharaf.com/?p=2029</guid>
		<description><![CDATA[This semester I&#8217;m TAing for CS162: Operating Systems and Systems Programming taught by Anthony Joseph and Ion Stoica. Here in Berkeley, we call a TA a GSI (Graduate Student Instructor). This is my first time GSI appointment in Berkeley, and it comes after more than 2 years of break. The last time I TAed, I was in [...]]]></description>
			<content:encoded><![CDATA[<p>This semester I&#8217;m TAing for <a href="http://inst.eecs.berkeley.edu/~cs162/sp12/">CS162: Operating Systems and Systems Programming</a> taught by Anthony Joseph and Ion Stoica. Here in Berkeley, we call a TA a GSI (Graduate Student Instructor). This is my first time GSI appointment in Berkeley, and it comes after more than 2 years of break. The last time I TAed, I was in UWaterloo and received the best TA award. It&#8217;ll be very hard to match that, but I am hoping not to disappoint my students. We&#8217;ll see how it goes.</p>
<p class="error"><strong>PS:</strong> What is the proper verb form of &#8220;TA&#8221;? TAing, TA-ing, TA&#8217;ing or what? Someone must&#8217;ve had solved this problem already :(</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosharaf.com/blog/2012/01/29/taing-for-cs162-operating-systems-and-systems-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spark has been accepted at NSDI’2012</title>
		<link>http://www.mosharaf.com/blog/2011/12/13/spark-has-been-accepted-at-nsdi2012/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=spark-has-been-accepted-at-nsdi2012</link>
		<comments>http://www.mosharaf.com/blog/2011/12/13/spark-has-been-accepted-at-nsdi2012/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 01:09:14 +0000</pubDate>
		<dc:creator>Mosharaf</dc:creator>
				<category><![CDATA[Recent News]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[NSDI]]></category>
		<category><![CDATA[Spark]]></category>

		<guid isPermaLink="false">http://www.mosharaf.com/?p=1991</guid>
		<description><![CDATA[Our paper &#8220;Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing&#8221; has been accepted at NSDI&#8217;2012. This is Matei&#8216;s brainchild and a joint work of a lot of people including, but not limited to, TD, Ankur, Justin, Murphy, and professors Ion Stoica, Scott Shenker, and Michael Franklin. Unlike many other systems papers, Spark is [...]]]></description>
			<content:encoded><![CDATA[<p>Our paper &#8220;Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing&#8221; has been accepted at NSDI&#8217;2012. This is <a href="http://www.cs.berkeley.edu/~matei/">Matei</a>&#8216;s brainchild and a joint work of a lot of people including, but not limited to, <a href="http://www.eecs.berkeley.edu/~tdas/">TD</a>, Ankur, <a href="http://www.cs.berkeley.edu/~jtma/">Justin</a>, Murphy, and professors Ion Stoica, Scott Shenker, and Michael Franklin. Unlike many other systems papers, Spark is actively developed and used by many people. You can also <a href="http://www.spark-project.org/">download</a> and use it in no time to solve all your problems; well, at least the ones that require analyzing big data in little time. We focus on the concept of resilient distributed datasets or RDDs in this paper, and show how we can perform fast, in-memory iterative and interactive jobs with low-overhead fault-tolerance.</p>
<blockquote><p>We present Resilient Distributed Datasets (RDDs), a distributed memory abstraction that lets programmers perform in-memory computations on large clusters in a fault-tolerant manner. RDDs are motivated by two types of applications that current computing frameworks handle inefficiently: iterative algorithms and interactive data mining tools. In both cases, keeping data in memory can improve performance by an order of magnitude. To achieve fault tolerance efficiently, RDDs provide a restricted form of shared memory, based on coarse-grained transformations rather than fine-grained updates to shared state. However, we show that RDDs are expressive enough to capture a wide class of computations, including current specialized programming models for iterative jobs like Pregel. We have implemented RDDs in a system called Spark, which we evaluate through a variety of benchmarks and user applications.</p></blockquote>
<p>The NSDI&#8217;2012 PC accepted 30 out of 169 papers. On other news, this time Berkeley will have a big presence at NSDI with several other papers. Go Bears!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosharaf.com/blog/2011/12/13/spark-has-been-accepted-at-nsdi2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memory Management in the Cloud</title>
		<link>http://www.mosharaf.com/blog/2011/12/05/memory-management-in-the-cloud/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=memory-management-in-the-cloud</link>
		<comments>http://www.mosharaf.com/blog/2011/12/05/memory-management-in-the-cloud/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 18:13:50 +0000</pubDate>
		<dc:creator>Mosharaf</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[PACMan]]></category>
		<category><![CDATA[RAMCloud]]></category>
		<category><![CDATA[UCB Cloud Computing Course F11]]></category>

		<guid isPermaLink="false">http://www.mosharaf.com/?p=1985</guid>
		<description><![CDATA[Stanford, &#8220;The Case for RAMClouds: Scalable High-Performance Storage Entirely in DRAM,&#8221; SIGOPS Operating Systems Review, Vol. 43, No. 4, December 2009, pp. 92-105. [PDF] AMP Lab, &#8220;PACMan: Coordinated Memory Caching for Parallel Jobs,&#8221; Secret Draft. Update: PACMan has been accepted at NSDI&#8217;2012. Secret draft won&#8217;t remain secret anymore :) Summary Cloud applications require storage systems [...]]]></description>
			<content:encoded><![CDATA[<p class="alert">Stanford, &#8220;The Case for RAMClouds: Scalable High-Performance Storage Entirely in DRAM,&#8221; <em>SIGOPS Operating Systems Review</em>, Vol. 43, No. 4, December 2009, pp. 92-105. [<a href="http://www.stanford.edu/~ouster/cgi-bin/papers/ramcloud.pdf">PDF</a>]</p>
<p class="alert">AMP Lab, &#8220;PACMan: Coordinated Memory Caching for Parallel Jobs,&#8221; <em>Secret Draft</em>.</p>
<p class="alert"><strong>Update:</strong> PACMan has been accepted at NSDI&#8217;2012. Secret draft won&#8217;t remain secret anymore :)</p>
<h2>Summary</h2>
<p>Cloud applications require storage systems that provide low latency and high throughput for large amounts of data.  While traditional disks cannot meet such requirements, given the trend in DRAM price and capacity, it is possible to envision a future where most of the storage needs can be fulfilled by DRAM; RAMCloud is such a system. PACMan, on the other hand, suggests that even today, most of the workloads can be kept into DRAM using better caching mechanisms.</p>
<h3>RAMCloud</h3>
<p>The core idea in RAMCloud is to keep everything in DRAM with disks used only as backups. The biggest challenge is to make sure that the storage system can be recovered quickly upon failure. RAMCloud uses buffered logging. The authors claim that replication is not necessary to achieve high performance, rather replicas are used only for parallel recovery. In steady state, there is a single copy of the data present in DRAM. Recovery is performed using a massively parallel read of data from disks.</p>
<h3>PACMan</h3>
<p>PACMan is a caching mechanism and corresponding system for HDFS and similar distributed file systems. The key idea is that current clusters have a large amount of unused memory that can be used to cache frequently-used data blocks, and traditional caching strategies like LRU or LFU do not work well on cluster jobs. The authors propose the concept of all-or-nothing property, i.e., when caching all data blocks for a given job across the cluster should be cached or nothing at all.</p>
<h2>Comments</h2>
<p>RAMCloud is a more general system than PACMan, but clearly, it is more expensive as well. RAMCloud trades off price for speed, but it is likely to be used in many future systems if prices of DRAM and high-speed network equipments keep going down. PACMan, from the high level, may seem to be a more short-term fix for the existing clusters. However, the insight of all-or-nothing is important and will be useful even in the future. Also, PACMan can have a quicker impact because it does not ask for any investment to reap the possible gains.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosharaf.com/blog/2011/12/05/memory-management-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Confidentiality and Security in the Cloud</title>
		<link>http://www.mosharaf.com/blog/2011/11/27/confidentiality-and-security-in-the-cloud/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=confidentiality-and-security-in-the-cloud</link>
		<comments>http://www.mosharaf.com/blog/2011/11/27/confidentiality-and-security-in-the-cloud/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 01:09:33 +0000</pubDate>
		<dc:creator>Mosharaf</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Balakrishnan]]></category>
		<category><![CDATA[CryptDB]]></category>
		<category><![CDATA[Popa]]></category>
		<category><![CDATA[Redfield]]></category>
		<category><![CDATA[Ristenpart]]></category>
		<category><![CDATA[Savage]]></category>
		<category><![CDATA[Shacham]]></category>
		<category><![CDATA[Tromer]]></category>
		<category><![CDATA[UCB Cloud Computing Course F11]]></category>
		<category><![CDATA[Zeldovich]]></category>

		<guid isPermaLink="false">http://www.mosharaf.com/?p=1975</guid>
		<description><![CDATA[Raluca Ada Popa, Catherine M. S. Redﬁeld, Nickolai Zeldovich, Hari Balakrishnan, &#8220;CryptDB: Protecting Conﬁdentiality with Encrypted Query Processing,&#8221; SOSP, 2011. [PDF] Thomas Ristenpart, Eran Tromer, Hovav Shacham, Stefan Savage, &#8220;Hey, You, Get Off of My Cloud: Exploring Information Leakage in Third-Party Compute Clouds,&#8221; CCS, 2009. [PDF] Summary With the increase in popularity of cloud computing [...]]]></description>
			<content:encoded><![CDATA[<p class="alert">Raluca Ada Popa, Catherine M. S. Redﬁeld, Nickolai Zeldovich, Hari Balakrishnan, &#8220;CryptDB: Protecting Conﬁdentiality with Encrypted Query Processing,&#8221; <em>SOSP</em>, 2011. [<a href="http://people.csail.mit.edu/nickolai/papers/raluca-cryptdb.pdf">PDF</a>]</p>
<p class="alert">Thomas Ristenpart, Eran Tromer, Hovav Shacham, Stefan Savage, &#8220;Hey, You, Get Off of My Cloud: Exploring Information Leakage in Third-Party Compute Clouds,&#8221; <em>CCS</em>, 2009. [<a href="http://cseweb.ucsd.edu/~hovav/dist/cloudsec.pdf">PDF</a>]</p>
<h2>Summary</h2>
<p>With the increase in popularity of cloud computing as a scalable, elastic, and cost-effective infrastructure solution, concerns about the security, privacy, and confidentiality of user data hosted on public clouds are also increasing. Curious administrators might breach trust, malicious entities can try to restrict/deny services, and adversaries might gain access to confidential data.</p>
<h3>CryptDB</h3>
<p>CryptDB stores user data in an SQL-aware encrypted form with multi-layered encryption onions. Each layer provides different levels of security and restricts execution of  SQL queries to limited sets. Depending on user queries, layers are dynamically ripped off one after another. Eventually, the database reaches a steady-state that strikes a balance between confidentiality of data and usability of the database. Encryption keys are chained together with user passwords to survive security breaches of both database and application servers.</p>
<h3>Hey You, Get Off of My Cloud!</h3>
<p>This paper discusses the risks of shared public clouds by demonstrating how an attacker can find the network topology of a cloud provider (e.g., Amazon EC2) to get a VM that co-resides with a victim VM and extract information from the victim. The goal is more to show that these risks existed in 2009 (it is questionable how big of a risk they are, and how hard it is avoid them), than how to address them.</p>
<h2>Comments</h2>
<p>CryptDB is undoubtedly the more practical of the two papers with a usable solution to a real problem. However, it has its weaknesses: CryptDB should require N times more space for N layers of the onion, creation/update of new onions with the change of user passwords and corresponding encryption key chains will be expensive, and for databases with mostly long-running and persistent connections, information of most users will be exposed when database and application servers are compromised.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosharaf.com/blog/2011/11/27/confidentiality-and-security-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Graph-parallel frameworks</title>
		<link>http://www.mosharaf.com/blog/2011/11/18/graph-parallel-frameworks/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=graph-parallel-frameworks</link>
		<comments>http://www.mosharaf.com/blog/2011/11/18/graph-parallel-frameworks/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 03:59:29 +0000</pubDate>
		<dc:creator>Mosharaf</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[GraphLab]]></category>
		<category><![CDATA[Pregel]]></category>
		<category><![CDATA[UCB Cloud Computing Course F11]]></category>

		<guid isPermaLink="false">http://www.mosharaf.com/?p=1966</guid>
		<description><![CDATA[Google, &#8220;Pregel: A System for Large-Scale Graph Processing,&#8221; SIGMOD, 2010. [PDF] Carnegie Mellon, &#8220;GraphLab: A New Framework for Parallel Machine Learning,&#8221; arXiv:1006.4990, 2010. [PDF] Summary Data-parallel frameworks such as MapReduce and Dryad are good at performing embarrassingly parallel jobs. These frameworks are not ideal for iterative jobs and for jobs where data-dependencies across stages are [...]]]></description>
			<content:encoded><![CDATA[<p class="alert">Google, &#8220;Pregel: A System for Large-Scale Graph Processing,&#8221; <em>SIGMOD</em>, 2010. [<a href="http://www-bd.lip6.fr/ens/grbd2011/extra/SIGMOD10_pregel.pdf" class="broken_link">PDF</a>]</p>
<p class="alert">Carnegie Mellon, &#8220;GraphLab: A New Framework for Parallel Machine Learning,&#8221; <em>arXiv:1006.4990</em>, 2010. [<a href="http://arxiv.org/pdf/1006.4990v1">PDF</a>]</p>
<h2>Summary</h2>
<p>Data-parallel frameworks such as MapReduce and Dryad are good at performing embarrassingly parallel jobs. These frameworks are not ideal for iterative jobs and for jobs where data-dependencies across stages are sparse (e.g., in MapReduce, each reducer is likely to depend on each mapper). However, there are many problems, specially in machine learning, that can be intuitively expressed using graphs with sparse computational dependencies, require multiple iterations to converge, and have variable convergence rate for different parameters. Pregel and GraphLab are two frameworks optimized for this type of graph-based problems.</p>
<p>A typical graph-parallel problem is expressed using graphs with vertices and edges, where each vertex and edge have associated data with them. In every iteration, vertex and edge data are updated and a bunch messages are exchanged between neighboring entities. This update function is typically the same for every vertex, and it is written by the user. There may or may not be a synchronization step at the end of every iteration. In a distributed setting, the graph is cut and divided across multiple nodes and updates from a collection of vertices in one node is communicated to another using message passing.</p>
<h3>Pregel vs GraphLab</h3>
<p>The key difference between Pregel and GraphLab is that Pregel has a barrier at the end of every iteration, whereas GraphLab is completely asynchronous. Asynchrony in GraphLab allows it to prioritize more complex vertices over others, but it also calls for consistency models to maintain sanity of results. GraphLab proposes three consistency models: full, edge, and vertex consistency, to allow different levels of parallelism. Another difference is that Pregel allows dynamic modifications to the graph structure, whereas GraphLab does not.</p>
<h2>Comments</h2>
<p>Pregel and GraphLab sit at two ends of the &#8220;power of framework&#8221; vs &#8220;ease of use&#8221; tradeoff space. Allowing asynchrony makes GraphLab more general and powerful than Pregel, but it is more complex and requires users to understand which consistency model is suitable for them. Pregel is simpler (common for most frameworks in Google&#8217;s arsenal), but still capable of handling a wide variety of problems. Given its origin at Google, open-source clones like Giraph, Pregel&#8217;s model is more likely to succeed in near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosharaf.com/blog/2011/11/18/graph-parallel-frameworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datacenter transport layer protocols</title>
		<link>http://www.mosharaf.com/blog/2011/11/14/datacenter-transport-layer-protocols/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=datacenter-transport-layer-protocols</link>
		<comments>http://www.mosharaf.com/blog/2011/11/14/datacenter-transport-layer-protocols/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 04:03:15 +0000</pubDate>
		<dc:creator>Mosharaf</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[DCTCP]]></category>
		<category><![CDATA[ICTCP]]></category>
		<category><![CDATA[incast]]></category>
		<category><![CDATA[MPTCP]]></category>
		<category><![CDATA[TCP]]></category>
		<category><![CDATA[UCB Cloud Computing Course F11]]></category>

		<guid isPermaLink="false">http://www.mosharaf.com/?p=1952</guid>
		<description><![CDATA[Stanford and Microsoft, &#8220;DCTCP: Efﬁcient Packet Transport for the Commoditized Data Center,&#8221; SIGCOMM, 2010. [PDF] Raiciu et al, &#8220;Improving Datacenter Performance and Robustness with Multipath TCP,&#8221; SIGCOMM, 2011. [PDF] MSR Asia, ICTCP: Incast Congestion Control for TCP in Data Center Networks,&#8221; CoNEXT, 2010. [PDF] Summary Datacenters pose a different set of challenges than the Internet, [...]]]></description>
			<content:encoded><![CDATA[<p class="alert">Stanford and Microsoft, &#8220;DCTCP: Efﬁcient Packet Transport for the Commoditized Data Center,&#8221; <em>SIGCOMM</em>, 2010. [<a href="http://research.microsoft.com/pubs/121386/dctcp-public.pdf">PDF</a>]</p>
<p class="alert">Raiciu et al, &#8220;Improving Datacenter Performance and Robustness with Multipath TCP,&#8221; <em>SIGCOMM</em>, 2011. [<a href="http://conferences.sigcomm.org/sigcomm/2011/papers/sigcomm/p266.pdf">PDF</a>]</p>
<p class="alert">MSR Asia, ICTCP: Incast Congestion Control for TCP in Data Center Networks,&#8221; <em>CoNEXT</em>, 2010. [<a href="http://conferences.sigcomm.org/co-next/2010/CoNEXT_papers/13-Wu.pdf">PDF</a>]</p>
<h2>Summary</h2>
<p>Datacenters pose a different set of challenges than the Internet, such as microsecond RTTs, synchronized workloads that cause <a href="http://www.mosharaf.com/blog/2009/09/28/safe-and-effective-fine-grained-tcp-retransmissions-for-datacenter-communication/">incast</a>, and decreased level of multiplexing. TCP, as we know it with milliseconds feedback loops and dependence on packet drops for congestion, works mostly alright but leaves one wondering whether we could design a better transport protocol. DCTCP, MPTCP, and ICTCP are three recent proposals that try to address this question. The proliferation of such proposals stems from the unique opportunities that only a datacenter network can provide, e.g., complete knowledge of the topology and workloads, single administrative domain that allows enforcing changes to the network elements, and uniform network behavior almost all over the network. Each of the three protocols summarized below exploits one or more datacenter-specific network characteristics.</p>
<h3>DCTCP</h3>
<p>DCTCP aims for smaller occupancy in switch buffers through explicit rate throttling at end hosts in order to ensure low latency for short flows and high throughput for long flows. Switches set ECN bits to signal the senders to cut back their window sizes, while the senders estimate the level of congestion and reduce their window sizes proportionally (as opposed to multiplicative decrease in TCP).</p>
<h3>ICTCP</h3>
<p>ICTCP is a specialized TCP variation to solve the incast problem in the last hop. The key idea is to adjust the receiving window of each connection by estimating the available bandwidth.</p>
<h3>MPTCP</h3>
<p>MPTCP is kind of orthogonal to DCTCP and ICTCP in that it tries to address the problem of underutilization of bisection bandwidth and relevant unfairness when flows follow only a single path. Their solution is, unsurprisingly, using multiple paths. Transparent to the applications, MPTCP divides each source-destination flow into several sub-flows and employs a congestion control mechanism that pushes toward using up as much available bandwidth as possible.</p>
<h2>Comments</h2>
<p>Out of the three, I found DCTCP and MPTCP more interesting because of the breadth of problems they try to solve. ICTCP is geared toward solving the incast problem only; however, one thing I found interesting about it is that it takes a flow control approach to the problem instead of the more common congestion control approach. In general, all three suffer from the this-may-not-be-not-real syndrome: DCTCP and ICTCP are possibly too biased by Microsoft workloads, while MCTCP has no evaluation on real workloads. It will be nice to see more general evaluation of all three. Also, my personal opinion on the order of long-run impacts of these papers is MPTCP&gt;DCTCP&gt;&gt;ICTCP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosharaf.com/blog/2011/11/14/datacenter-transport-layer-protocols/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cloudy operating systems</title>
		<link>http://www.mosharaf.com/blog/2011/11/07/cloudy-operating-systems/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=cloudy-operating-systems</link>
		<comments>http://www.mosharaf.com/blog/2011/11/07/cloudy-operating-systems/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 08:43:15 +0000</pubDate>
		<dc:creator>Mosharaf</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Akaros]]></category>
		<category><![CDATA[Brewer]]></category>
		<category><![CDATA[FOS]]></category>
		<category><![CDATA[Klues]]></category>
		<category><![CDATA[MCP]]></category>
		<category><![CDATA[Rhoden]]></category>
		<category><![CDATA[Zhu]]></category>

		<guid isPermaLink="false">http://www.mosharaf.com/?p=1940</guid>
		<description><![CDATA[MIT, An Operating System for Multicore and Clouds: Mechanisms and Implementation,&#8221; SOCC, 2010. [PDF] Barret Rhoden, Kevin Klues, David (Yu) Zhu, Eric Brewer, &#8220;Improving Per-Node Efficiency in the Datacenter with New OS Abstractions,&#8221; SOCC, 2011. [PDF] Summary Factored Operating System The Factored Operating System (FOS) proposes an OS architecture where each core runs individual microkernels [...]]]></description>
			<content:encoded><![CDATA[<p class="alert">MIT, An Operating System for Multicore and Clouds: Mechanisms and Implementation,&#8221; <em>SOCC</em>, 2010. [<a href="http://groups.csail.mit.edu/carbon/docs/socc_2010_sub.pdf">PDF</a>]</p>
<p class="alert">Barret Rhoden, Kevin Klues, David (Yu) Zhu, Eric Brewer, &#8220;Improving Per-Node Efficiency in the Datacenter with New OS Abstractions,&#8221; <em>SOCC</em>, 2011. [<a href="http://www.cs.berkeley.edu/~brho/papers/socc11-akaros.pdf">PDF</a>]</p>
<h2>Summary</h2>
<h3>Factored Operating System</h3>
<p>The Factored Operating System (FOS) proposes an OS architecture where each core runs individual microkernels that communicate using message passing. The OS has function-specific services, and each one is implemented as a parallel, distributed service. The authors argue that such an API is feasible enough to simultaneously address many-core and cloud OS requirements. Scheduling in FOS moves from time multiplexing to space multiplexing, where individual functions/programs will occupy their own cores for longer periods of time than they would have in time multiplexing.</p>
<h3>Akaros</h3>
<p>Akaros has a more manageable goal of handling individual many-core machines instead of tackling distributed coordination. It aims for achieving high efficiency by giving bare-metal feel to applications running on top:  applications have more information and greater control over resources they are using. Akaros introduces the concept of a many-core process (MCP), where all cores of an MCP are gang scheduled. MCPs are aware of cores they are running on and are never preempted without warning. Using two-level scheduling, Akaros only assign cores using space multiplexing, and MCPs are allowed to manage their own threads using time multiplexing. Akaros also provides asynchronous IO and MCPs have more information about the devices they interact with.</p>
<h2>Comments</h2>
<p>The need for an operating system for the datacenter is <a href="http://www.mosharaf.com/blog/2011/09/14/the-datacenter-needs-an-operating-system/">real</a>. It is not clear which is the best OS abstraction though. To me FOS seems a long stretch, whereas Akaros is probably doable. However, neither has any reasonable performance benchmark so far.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosharaf.com/blog/2011/11/07/cloudy-operating-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-framework resource managers for datacenters</title>
		<link>http://www.mosharaf.com/blog/2011/11/01/multi-framework-resource-managers-for-datacenters/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=multi-framework-resource-managers-for-datacenters</link>
		<comments>http://www.mosharaf.com/blog/2011/11/01/multi-framework-resource-managers-for-datacenters/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 02:49:41 +0000</pubDate>
		<dc:creator>Mosharaf</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[Hadoop NextGen]]></category>
		<category><![CDATA[Mesos]]></category>
		<category><![CDATA[UCB Cloud Computing Course F11]]></category>

		<guid isPermaLink="false">http://www.mosharaf.com/?p=1933</guid>
		<description><![CDATA[AMPLab, &#8220;Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center,&#8221; NSDI, 2011. [PDF] Apache Software Foundation, &#8220;Hadoop NextGen&#8221;, 2011. [LINK] Summary Traditional cluster resource schedulers fall into two broad categories: some do fine-grained management of resources for individual frameworks (e.g., in Hadoop), but this requires multiple frameworks to run on multiple isolated clusters. [...]]]></description>
			<content:encoded><![CDATA[<p class="alert">AMPLab, &#8220;Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center,&#8221; <em>NSDI</em>, 2011. [<a href="http://www.mesosproject.org/papers/nsdi_mesos.pdf">PDF</a>]</p>
<p class="alert">Apache Software Foundation, &#8220;Hadoop NextGen&#8221;, 2011. [<a href="http://developer.yahoo.com/blogs/hadoop/posts/2011/02/mapreduce-nextgen/">LINK</a>]</p>
<h2>Summary</h2>
<p>Traditional cluster resource schedulers fall into two broad categories: some do fine-grained management of resources for individual frameworks (e.g., in Hadoop), but this requires multiple frameworks to run on multiple isolated clusters. Some others perform course-grained resource management across multiple frameworks at the cost of underutilization (e.g., MPI schedulers). However, fine-grained sharing of cluster resources across multiple, possibly diverse, data- and compute-intensive frameworks is important for several reasons: better utilization and multiplexing of resources, ease of cluster management, and faster innovation without worrying about underlying physical resources. Mesos and Hadoop NextGen aim to achieve just that.</p>
<p>Without subscribing to either approach&#8217;s terminology, a typical resource manager has a central coordinator that keeps track of all the resources in the cluster by periodically communicating with its daemons in individual machines. Instead of interfacing to actual physical resources, frameworks now use a library provided by the resource manager to interact with the coordinator. Once a framework expresses its requirements and later accepts some, it&#8217;s on its own to schedule those resources among its workers.</p>
<h2>Mesos vs Hadoop NextGen</h2>
<p>The primary and possibly the only major difference between Mesos (that came earlier) and Hadoop NextGen (that spun out from the basic Hadoop framework) is the way the coordinator and frameworks interact while expressing and accepting (or rejecting) resources. Mesos provides resource offers to individual frameworks that can then accept or reject them. Consequently, resource allocation becomes a distributed problem, and Mesos itself remains minimal. Hadoop NextGen, on the contrary, requires each framework to explicitly express their requirements and then runs a centralized algorithm to allocate resources.</p>
<h2>Comments</h2>
<p>Both resource managers are pretty much the same. May be I am biased as an AMPLab member, but it seems that Hadoop NextGen design was highly influenced by Mesos. In either case, the central coordinator can become the bottleneck. But with increasing cluster size, Mesos&#8217; approach is likely to scale more than that of Hadoop NextGen due to Mesos&#8217; distributed approach. Given Hadoop&#8217;s popularity, however, Hadoop NextGen is likely to become more widespread than Mesos.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosharaf.com/blog/2011/11/01/multi-framework-resource-managers-for-datacenters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distributed in-memory datasets</title>
		<link>http://www.mosharaf.com/blog/2011/10/30/distributed-in-memory-datasets/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=distributed-in-memory-datasets</link>
		<comments>http://www.mosharaf.com/blog/2011/10/30/distributed-in-memory-datasets/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 03:36:54 +0000</pubDate>
		<dc:creator>Mosharaf</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Li]]></category>
		<category><![CDATA[Piccolo]]></category>
		<category><![CDATA[Power]]></category>
		<category><![CDATA[RDD]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[UCB Cloud Computing Course F11]]></category>

		<guid isPermaLink="false">http://www.mosharaf.com/?p=1915</guid>
		<description><![CDATA[AMPLab, &#8220;Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing,&#8221; UCB/EECS-2011-82, 2011. [PDF] Russell Power, Jinyang Li, &#8220;Piccolo: Building Fast, Distributed Programs with Partitioned Tables,&#8221; OSDI, 2010. [PDF] Summary MapReduce and similar frameworks, while widely applicable, are limited to directed acyclic data flow models, do not expose global states, and generally slow due to [...]]]></description>
			<content:encoded><![CDATA[<p class="alert">AMPLab, &#8220;Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing,&#8221; UCB/EECS-2011-82, 2011. [<a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2011/EECS-2011-82.pdf">PDF</a>]</p>
<p class="alert">Russell Power, Jinyang Li, &#8220;Piccolo: Building Fast, Distributed Programs with Partitioned Tables,&#8221; OSDI, 2010. [<a href="http://www.news.cs.nyu.edu/~jinyang/pub/power-piccolo.pdf">PDF</a>]</p>
<h2>Summary</h2>
<p>MapReduce and similar frameworks, while widely applicable, are limited to directed acyclic data flow models, do not expose global states, and generally slow due to the lack of support for in-memory computations. MPI, while extremely powerful, is hard to use for non-experts. An ideal solution would be a compromise between the two approaches. Spark and Piccolo try to approximate that ideal within the MapReduce-to-MPI spectrum using in-memory data abstractions.</p>
<h3>Piccolo</h3>
<p>Piccolo provides a distributed key-value store-like abstraction, where applications/tasks can read from and write to a shared storage. Users write partition functions to divide the data across multiple machines, control functions to decide the workflow, kernel functions for performing distributed operations on mutable states, and conflict resolution functions to resolve write-write conflicts. Piccolo uses Chandi-Lamport snapshot algorithm for periodic checkpointing and rolls back all tasks of a failed job from the last checkpoint when required.</p>
<h3>Spark</h3>
<p>Spark is a distributed programming model based on a distributed in-memory data abstraction called <em>Resilient Distributed Datasets (RDDs)</em>. RDDs are immutable, support coarse-grained transformations, and keep track of which transformations have been applied to them so far using lineages that can be used for RDD reconstruction. As a result, checkpointing requirements/overheads are low in Spark.</p>
<h2>Spark vs Piccolo</h2>
<p>There are two key differences between Spark and Piccolo.</p>
<ol>
<li>RDDs only support coarse-grained writes (transformations) as opposed to finer-grained writes supported by distributed tables used by Piccolo. This allows efficient storage of lineage information, which reduces checkpointing overhead and fast fault recovery. However, this makes Spark unsuitable for applications that depend on fine-grained updates.</li>
<li>RDDs are immutable, which enables straggler mitigation by speculative execution in Spark.</li>
</ol>
<h2>Comments</h2>
<p>Piccolo is closer to MPI, while Spark is closer to MapReduce on the MapReduce-to-MPI spectrum. The key tradeoff in both cases, however, is between framework usability vs its applicability/power (framework complexity follows power). Both frameworks are much faster than Hadoop (but remember that Hadoop is not the best implementation of MapReduce), a large fraction of which comes from the use of memory. May be I am biased as a member of the Spark project, but Spark should be good enough for most applications unless they absolutely require fine-grained updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosharaf.com/blog/2011/10/30/distributed-in-memory-datasets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cloud databases</title>
		<link>http://www.mosharaf.com/blog/2011/10/25/cloud-databases/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=cloud-databases</link>
		<comments>http://www.mosharaf.com/blog/2011/10/25/cloud-databases/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 04:44:41 +0000</pubDate>
		<dc:creator>Mosharaf</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Abbadi]]></category>
		<category><![CDATA[Agrawal]]></category>
		<category><![CDATA[Das]]></category>
		<category><![CDATA[DBaaS]]></category>
		<category><![CDATA[Elmore]]></category>
		<category><![CDATA[Relational Cloud]]></category>
		<category><![CDATA[UCB Cloud Computing Course F11]]></category>

		<guid isPermaLink="false">http://www.mosharaf.com/?p=1902</guid>
		<description><![CDATA[MIT, &#8220;Relational Cloud: A Database-as-a-Service for the Cloud,&#8221; CIDR, 2011. [PDF] Divyakant Agrawal, Amr El Abbadi, Sudipto Das, Aaron J. Elmore, &#8221;Database Scalability, Elasticity, and Autonomy in the Cloud,&#8221; DASFAA, 2011. [PDF] Relational Cloud The key idea of the Relational Cloud project is to define the concept of transactional Database-as-a-Service (DBaaS), identify the key challenges toward materializing [...]]]></description>
			<content:encoded><![CDATA[<p class="alert">MIT, &#8220;Relational Cloud: A Database-as-a-Service for the Cloud,&#8221; CIDR, 2011. [<a href="http://people.csail.mit.edu/nickolai/papers/curino-relcloud-cidr.pdf">PDF</a>]</p>
<p class="alert">Divyakant Agrawal, Amr El Abbadi, Sudipto Das, Aaron J. Elmore, &#8221;Database Scalability, Elasticity, and Autonomy in the Cloud,&#8221; DASFAA, 2011. [<a href="http://www.cs.ucsb.edu/~sudipto/papers/dasfaa.pdf">PDF</a>]</p>
<h2>Relational Cloud</h2>
<p>The key idea of the Relational Cloud project is to define the concept of transactional <em>Database-as-a-Service (DBaaS)</em>, identify the key challenges toward materializing it, and finally to address each one individually (in separate papers). The authors identify workload awareness as the key ingredient in addressing these challenges. Since this is only an overview paper, they do not go into the details, but they do identify three high-level goals:</p>
<ol>
<li><em>Efficient Multi-tenancy</em>: This deals with packing databases from different tenants in a single machine while maintaining individual SLAs. The paper suggests that just creating VMs for each database is not the ideal solution due to the lack of proper isolation. Instead they <a href="http://db.csail.mit.edu/pubs/sigmod457-curino.pdf">propose</a> using accurate resource models for colocation.</li>
<li><em>Elastic Scalability</em>: The goal here is to dynamically scale up/down databases based on current load from one machine to more and vice versa. The challenge is partitioning the data while avoiding cross-machine dependency as much as possible.</li>
<li><em>Database Privacy</em>: The last key challenge, according to the authors, is adjustable security. <a href="http://people.csail.mit.edu/nickolai/papers/raluca-cryptdb.pdf">This</a> will allow querying encrypted data without decryption on the cloud. Btw, this IS cool!</li>
</ol>
<h2>Database Scalability, Elasticity, and Autonomy in the Cloud</h2>
<p>Instead of rooting for one particular solution, this paper more or less surveys the design space of DBaaS in terms of scalability, elasticity, and autonomy. The authors believe that there can be two different approaches to simultaneously achieve scalability and atomicity in databases: one is to add some level of atomicity to existing key-value stores (<em>Data Fusion</em>) and the other is to scale traditional transactional databases by intelligent partitioning (<em>Data Fission</em>). For elasticity, they argue for live migration of instances during runtime. However, it is not sure how this technique will affect SLAs. The paper also self-cites some of the systems the authors have built at different points of the design space.</p>
<h2>Comments</h2>
<p>I like the proposed techniques presented in both papers, specially the Relational Cloud ones, from a technical perspective. However, I&#8217;m not sure whether DBaaS will be a successful business model. Yes, Amazon and Microsoft have DBaaS or similar products, but who are using them? If they are big enough to care about performance and security isolation, they might not be comfortable in sharing DBs with random entities. If they are not, may be they can do without all the complicated solutions anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosharaf.com/blog/2011/10/25/cloud-databases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.773 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-02-05 19:13:11 --><!-- Compression = gzip -->

