This project is read-only.

User Guides


Quick Start - MapReduce: Running WordCount Sample

Quick Start - Iterative MapReduce - Running KMeansClustering Sample

Twister4Azure Application Development Guide

FAQ

Samples

.

About the Project


Publications and Presentations

About Twister4Azure




Twister4Azure is a distributed decentralized iterative MapReduce runtime for Windows Azure Cloud that was developed using Azure cloud infrastructure services. Twister4Azure extends MRRoles4Azure by introducing extensions and optimizations for iterative MapReduce applications. Twister4Azure supports caching of loop-invarient data, adds a new merge step (map->reduce->merge) to the programming model and introduces a novel cache-aware task scheduling mechanism.

Twister4Azure uses Azure Queues for map and reduce task scheduling, Azure Tables for metadata & monitoring data storage, Azure Blob storage for input, output and intermediate data storage and the Window Azure Compute worker roles to perform the computations. The usage of the cloud infrastructure services allows the Twister4Azure implementation to take advantage of the scalability, high availability and the distributed nature of such services guaranteed by the cloud service providers to avoid single point of failures, bandwidth bottlenecks (network as well as storage bottlenecks) and management overheads.

The usage of cloud services usually introduces latencies larger than their optimized non-cloud counterparts and often does not guarantee the time for the data's first availability. These overheads can be conquered, however, by using a sufficiently coarser grained map and reduce tasks. Twister4Azure overcomes the availability issues by retrying and by designing the system so it does not rely on the immediate availability of data to all the workers.

Twister4Azure is designed around a decentralized control model without a master node, thus avoiding the possible single point of failure. Twister4Azure provides users with the capability to dynamically scale up or down the number of computing instances, even in the middle of a MapReduce computation, as and when it is needed.

Last edited Sep 13, 2012 at 5:20 AM by thilina, version 21

Comments

No comments yet.