Building and managing large scale distributed services

Klara Nahrstedt, Liang Jin · 2007

Recent research in peer-to-peer and grid computing has made it possible to build Internet scale services such as content distribution, storage service, name service and publish/subscribe. By utilizing large number of service nodes that collaborate in a decentralized fashion, such services can potentially achieve high scalability, availability, reliability and QoS/performance. Despite such potential, building large distributed services and testing them in a real world, widely distributed environment remains a difficult task, due to the scale of the services, and the frequent failures in the target environment. In this dissertation we present our research aimed at simplifying the design, implementation and management of large distributed applications that provide Internet scale services. We first present OCMA, a layered architecture for designing large distributed applications. OCMA divides such applications into three layers: the membership layer, the overlay layer and the application layer. Each layer performs a well defined functionality. Such decomposition not only simplifies the application design, but also facilitates the reuse of components (layers) and the innovation within each component. We have designed two large distributed applications, the DagStream system for locality aware P2P streaming and the Management Overlay Networks (MON) system for distributed management. Both are designed according to the OCMA architecture. Through the implementation of multiple large scale applications, we have extracted a C++ framework called PPF (Protocol Plugin Framework) for application implementation. Using PPF, application developers only need to implement the high level protocol between different application nodes. When the protocol is plugged into PPF, the same code can run in both simulation and real world mode. This minimizes the possibility of introducing bugs when porting simulation code to real world deployment. MON is not just an example application designed according to OCMA. It is a simple, scalable and lightweight tool we have built for managing service applications running in a wide area environment. MON facilitates the management of such applications by building short-term, on-demand overlay networks that can be used to instantly query and control the distributed application status. Such distributed status query and control allows application developers to quickly detect, diagnose and correct potential application problems.

Read the paper · More papers on PaperTik