Khaled Elmeleegy

Learn More
As organizations start to use data-intensive cluster computing systems like Hadoop and Dryad for more applications, there is a growing need to share clusters between users. However, there is a conflict between <i>fairness</i> in scheduling and <i>data locality</i> (placing tasks on nodes that contain their input data). We illustrate this problem through our(More)
MapReduce is a popular framework for data-intensive distributed computing of batch jobs. To simplify fault tolerance, many implementations of MapReduce materialize the entire output of each map and reduce task before it can be consumed. In this paper, we propose a modified MapReduce architecture that allows data to be pipelined between operators. This(More)
Sharing a MapReduce cluster between users is attractive because it enables statistical multiplexing (lowering costs) and allows users to share a common large data set. However, we find that traditional scheduling algorithms can perform very poorly in MapReduce due to two aspects of the MapReduce setting: the need for data locality (running computation where(More)
MapReduce is a popular framework for data-intensive distributed computing of batch jobs. To simplify fault tolerance, the output of each MapReduce task and job is <i>materialized</i> to disk before it is consumed. In this demonstration, we describe a modified MapReduce architecture that allows data to be <i>pipelined</i> between operators. This extends the(More)
Cluster computing has emerged as a key parallel processing platform for large scale data. All major internet companies use it as their major central processing platform. One of cluster computing’s most popular examples is MapReduce and its open source implementation Hadoop. These systems were originally designed for batch and massive-scale computations.(More)
We introduce Lazy Asynchronous I/O (LAIO), a new asynchronous I/O interface that is well suited to event-driven programming. LAIO is general in the sense that it applies to all blocking I/O operations. Furthermore, it is lazy in the sense that it creates a continuation only when an operation actually blocks, and it notifies the application only when a(More)
Fast-loading web pages are key for a positive user experience. Unfortunately, a large number of users suffer from page load times of many seconds, especially for pages with many embedded objects. Most of this time is spent fetching the page and its objects over the Internet. This paper investigates the impact of optimizations that improve the delivery of(More)
Building and debugging distributed software remains extremely difficult. We conjecture that by adopting a <i>data-centric</i> approach to system design and by employing <i>declarative</i> programming languages, a broad range of distributed software can be recast naturally in a data-parallel programming model. Our hope is that this model can significantly(More)
Ethernet’s high performance, low cost and ubiquity have made it the dominant networking technology for many application domains. Unfortunately, its distributed forwarding topology computation protocol – the Rapid Spanning Tree Protocol (RSTP) – can suffer from a classic “count-to-infinity” problem that may lead to a forwarding loop under certain network(More)