Robin Hood: An Active Objects Load Balancing Mechanism for Intranet



Similar documents
Load balancing in SOAJA (Service Oriented Java Adaptive Applications)

Design and Implementation of Efficient Load Balancing Algorithm in Grid Environment

STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM

Performance Evaluation of Mobile Agent-based Dynamic Load Balancing Algorithm

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

Comparison on Different Load Balancing Algorithms of Peer to Peer Networks

A Survey on Load Balancing and Scheduling in Cloud Computing

Various Schemes of Load Balancing in Distributed Systems- A Review

Stream Processing on GPUs Using Distributed Multimedia Middleware

A Scheme for Implementing Load Balancing of Web Server

A Comparative Performance Analysis of Load Balancing Algorithms in Distributed System using Qualitative Parameters

Abstract. 1. Introduction

Fair Scheduling Algorithm with Dynamic Load Balancing Using In Grid Computing

Performance Analysis of Load Balancing Algorithms in Distributed System

Keywords Distributed Computing, On Demand Resources, Cloud Computing, Virtualization, Server Consolidation, Load Balancing

DYNAMIC GRAPH ANALYSIS FOR LOAD BALANCING APPLICATIONS

An Empirical Study and Analysis of the Dynamic Load Balancing Techniques Used in Parallel Computing Systems

Scheduling Allowance Adaptability in Load Balancing technique for Distributed Systems

Keywords: Dynamic Load Balancing, Process Migration, Load Indices, Threshold Level, Response Time, Process Age.

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Global Load Balancing and Primary Backup Approach for Fault Tolerant Scheduling in Computational Grid

Peer-VM: A Peer-to-Peer Network of Virtual Machines for Grid Computing

Efficient Scheduling Of On-line Services in Cloud Computing Based on Task Migration

A Study on the Application of Existing Load Balancing Algorithms for Large, Dynamic, Heterogeneous Distributed Systems

Load balancing using Remote Method Invocation (JAVA RMI)

Real Time Network Server Monitoring using Smartphone with Dynamic Load Balancing

Load Balancing of Web Server System Using Service Queue Length

Keywords Load balancing, Dispatcher, Distributed Cluster Server, Static Load balancing, Dynamic Load balancing.

Load Balancing Algorithms for Peer to Peer and Client Server Distributed Environments

RESEARCH PAPER International Journal of Recent Trends in Engineering, Vol 1, No. 1, May 2009

Migration Improved Scheduling Approach In Cloud Environment

Virtual machine interface. Operating system. Physical machine interface

An Effective Dynamic Load Balancing Algorithm for Grid System

System types. Distributed systems

Preserving Message Integrity in Dynamic Process Migration

Load Balancing in Distributed Data Base and Distributed Computing System

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

Proposal of Dynamic Load Balancing Algorithm in Grid System

Operating System Multilevel Load Balancing

IMPROVEMENT OF RESPONSE TIME OF LOAD BALANCING ALGORITHM IN CLOUD ENVIROMENT

Principles and characteristics of distributed systems and environments

LOAD BALANCING TECHNIQUES

Load Balancing in cloud computing

Client/Server Computing Distributed Processing, Client/Server, and Clusters

An Approach to Load Balancing In Cloud Computing

Fault-Tolerant Framework for Load Balancing System

IC2D: Interactive Control and Debugging of Distribution

An approach to grid scheduling by using Condor-G Matchmaking mechanism

Design of an Optimized Virtual Server for Efficient Management of Cloud Load in Multiple Cloud Environments

Kappa: A system for Linux P2P Load Balancing and Transparent Process Migration

A REVIEW PAPER ON THE HADOOP DISTRIBUTED FILE SYSTEM

Effective Virtual Machine Scheduling in Cloud Computing

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Distributed Systems Lecture 1 1

Multilevel Communication Aware Approach for Load Balancing

1. Comments on reviews a. Need to avoid just summarizing web page asks you for:

Public Cloud Partition Balancing and the Game Theory

Implementing Parameterized Dynamic Load Balancing Algorithm Using CPU and Memory

2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts

Comparative Study of Load Balancing Algorithms

How To Understand The Concept Of A Distributed System

Process Migration and Load Balancing in Amoeba

OpenMosix Presented by Dr. Moshe Bar and MAASK [01]

Scheduling and Load Balancing in Parallel and Distributed Systems

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Manjrasoft Market Oriented Cloud Computing Platform

MEASURING PERFORMANCE OF DYNAMIC LOAD BALANCING ALGORITHMS IN DISTRIBUTED COMPUTING APPLICATIONS

Journal of Theoretical and Applied Information Technology 20 th July Vol.77. No JATIT & LLS. All rights reserved.

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

A Novel Load Balancing Algorithms in Grid Computing

Network Attached Storage. Jinfeng Yang Oct/19/2015

Developing Scalable Smart Grid Infrastructure to Enable Secure Transmission System Control

Star System Deitel & Associates, Inc. All rights reserved.

Clustering with Tomcat. Introduction. O'Reilly Network: Clustering with Tomcat. by Shyam Kumar Doddavula 07/17/2002

Middleware Lou Somers

Cloud and Virtualization to Support Grid Infrastructures

S y s t e m A r c h i t e c t u r e

An Introduction to Virtualization and Cloud Technologies to Support Grid Computing

FIPA agent based network distributed control system

STORM. Simulation TOol for Real-time Multiprocessor scheduling. Designer Guide V3.3.1 September 2009

MANAGING OF IMMENSE CLOUD DATA BY LOAD BALANCING STRATEGY. Sara Anjum 1, B.Manasa 2

A Comparison of Dynamic Load Balancing Algorithms

Code and Process Migration! Motivation!

SCALABILITY AND AVAILABILITY

AN EFFICIENT LOAD BALANCING APPROACH IN CLOUD SERVER USING ANT COLONY OPTIMIZATION

Parallel Processing over Mobile Ad Hoc Networks of Handheld Machines

Transcription:

Robin Hood: n ctive Objects Load alancing Mechanism for Intranet Javier ustos Jimenez epartamento de iencias de la omputacion () Universidad de hile. jbustos@dcc.uchile.cl bstract. Scheduling in distributed systems is an important issue, and it has performance impact on parallel processing, load balancing and metacomputing. n optimal load balance in a non-preemptive scheduling enviroment is NPcomplete, but preemptive scheduling is polynomial. This paper presents a heuristic for preemptive load balancing based on a multicast channel to communicate the distributed systems, a totally non-centralized architecture and the migration scheme provided by the Proctive tools. 1 Introduction The scheduling of parallel computations on a set of processors has been an active study area in the fields of paralell computation and load balancing [5]. Theoretical results show that optimal load balance in a non-preemptive scheduling enviroment is NP-complete, but preemptive scheduling is polynomial in time. onald McLaughlin says in [5]: preemptive scheduling in distribuited systems was rare, if not non-existen. Nevertheless, when ctive Objects appeared a new research area was (re)opened, by using those objects to migrate jobs from a machine to another one (Virtual or Real machine). Therefore, now one have the tools to make a preemptive scheduler. 1.1 Fundamentals of Load alance Load balancing in this paper is a technique to enhance resources, utilizing paralellism exploiting, throughput improvisation, and to cut response time through an appropiate distribution of the application [2]. To minimize the decision time is still one of the objective for load balancing. There exist two typical load balancing approaches: Static and ynamic. Static load balancing is characterized by pre-execution task placement based on a prior knlowledge of the application and target system characteristics (figure 1.a). ynamic load balancing can adapt to changes in target systems, according to the protocol provided for manage that changes (figure 1.b).

ynamic pplication Information haracterics bstractor pplication Unit Loader haracterics bstractor pplication Unit Loader a) Pre knowledge ase b) Pre knowledge ase Fig. 1. Static (a) versus ynamic (b) Load alancing. 1.2 ontributions To the best of our knowledge, most of the preemptive scheduling use a centralized architecture (client/server) for the load balancing (see [9, 5, 12, 11]). The contribution of this paper is to present a new totally non-centralized solution: we use a multicast channel to comunicate, and sincronize the processors (following the recomendations of [15]), and using the Proctive [1] tools to migrate jobs between them. 1.3 Related Work There are several works and research in this area: some use static load balancing like Online Real-Time Schedulers ([9]), Pipeline and atch Sharing ([6]); and some uses dynamic load balancing like ondor [12], PLRM [11] and PE [17]. We focus our research in dynamic load balancing. The main differences between our scheme and the related works are: the non-centralized architecture for the load balancer (ondor, PLRM, and others are centralized) and the non-broadcasting of the balance of each node (like PE and ONOR) because that produces an overload of the network. Other systems, like moeba [8] and eluster [16] are complete micro-kernels that provide load balancer. Therefore, that kind of research are out of the scope of this paper. 1.4 Organization of this paper The section 2 shows the Proctive principles [1]. The section 3 presents the design of our algorithm (called Robin Hood ) and finally the conclusions and future of this work in progress are presented. 2 Proctive Proctive is a Java library (Source code under LGPL licence) for parallel, distributed, and concurrent computing. lso, featuring mobility and security in a uniform framework based on an ideas of enis aromel and others [4]. With a reduced set of simple primitives, Proctive provides an PI that simplify the programming of applications that are distributed on a LN, on cluster of workstations, or on Internet Grids [10]. The library is based on an ctive Object pattern that encapsulate:

a remotely accessible object, a thread as an asynchronous activity, an actor with its own script, a server of incoming requests, a mobile and potentially secure agent. Proctive is only made of standard Java classes, and requires no changes to the Java Virtual Machine, no preprocessing or compiler modification. ased on a simple Meta-Object Protocol, the library is itself extensible, making the system open for adaptations and optimizations. Proctive currently uses the RMI Java standard library as a portable transport layer. For more information please visit [1]. 3 asis of the Robin Hood scheme The Robin Hood scheme has two principles: 1. Every node (processor, JVM, etc.) only know its own load. 2. Job from nodes which have high load (the rich ones) are reassigned to nodes with low load (the poor ones). The first principle is easier using java.lang.thread methods to know the PU load of each node, following the recomendations of [13]. For the second principle, we have to use the Migration PI of the Proctive libraries [1]. The algorithm is: If a node note that it is underloaded (less than 60% of the node capacity) then it sends to the multicast channel a message with it owns reference (see figure 2). If a node note that it is overloaded (more than 90% of the node capacity) then read from the multicast channel looking for some node underloaded (see figure 3.c). In case that a message arrives from the multicast channel, the node migrate some of its jobs to the underloaded node (figure 3.d). Otherwise, nothing is done. To not overload the network with multicast packages, the node load has to be checked in time intervals, for example: five or ten seconds. 4 The esign of the Robin Hood Load alancer For the design of the Robin Hood load balancer we use the pattern designs Singleton to mantain only one Robin Hood per node and State to mantain the node states (poor, normal, rich). The UML class diagram is in the figure 4. ut, there was a problem using the Proctive [1] libraries because it use weak migration [7]. Then, only the active thread can make the migration of the active object. For this reason is necesary add to all the objects the method:

a) b) "" load=50% "poor" node Fig. 2. a) Four nodes on equilibrium. b) One node is undeloaded, then sends a Multicast message with its own reference. c) "" d) load=50% "poor" node load=75% "" "" load=95% "rich" node Fig. 3. c) node is overloaded: listen the multicast channel. d) Found an underloaded node, then the Robin Hood use Proctive.migrateTo("") over the job representd by a black circle. RobinHood LoadSpy LoadMonitor self self : RobinHood hannel : Multicast <<create>> LoadSpy() start() : void <<create>> LoadMonitor() getrealload() : double st : State isoverloaded() : boolean setrealload(load: double) : void createrobinhood(processornode: void) : void isunderloaded() : boolean isoverloaded() : boolean getrobinhood() : RobinHood isunderloaded() : boolean <<create>> RobinHood(localLoadSpy: void) update(load: long) : void State init() : void Multicast hannel terminate() : void Multicast onect() : void isconect() : void Rich Poor Normal Read() : String migrate(donde: String) : void Write(s: String) : void Fig. 4. Robin Hood UML diagram.

public void migrate(string URL) { Proctive.MigrateTo(URL); }; Therefore, if one want to migrate an object o the method call is o.migrate("//host/node"). y now, one can use tools like Javassist [3] to made this change automatically. 5 onclusions We present a totally non-centralized load balancer, using the Proctive library for the migration of jobs, and a multicast channel to coordinate the nodes. The next step in our research is to compare Robin Hood against the existent ones in dynamic load balancing, for example ONOR, PLRM and PE. We are currently working on possible solutions for the migration process. Our goal is to make it clear and transparent to the user. Our future work is to determine the optimal parameters for the load checking, and to improve the migration strategy (choose which job has to be migrated) and the migration itself. lso, we have to work in make the Robin Hood a strong fault tolerant [14] tool for load balance in coordination with hristian elbe of INRI Sophia ntipolis, France. References 1. Oasis Group at INRI Sohpia-ntipolis. Proactive, the java library for parallel, distribuited, concurrent computing with security and mobility. http://www-sop.inria.fr/oasis/proactive/, 2002. 2. M. ozyigita. History-driven dynamic load balancing for recurring applications on network of workstations. Systems and Software, 2:61 72, 2000. 3. Shigeru hiba. Load-time structural reflection in java. In In Proc. of EOOP 2000., pages 313 336, 2002. 4. Wilfired Klauser enis aromel and Julien Vayssire. Towards seamless computing and metacomputing in java. oncurrency Practice and Experience, 1998. 5. Shantanu Sardesai onald McLaughlin and Partha asgupta. Preemptive scheduling for distribuited systems. In Proc. of 11th International onference on Paralell and istribuited omputing Systems, 1998. 6. ouglas Thain et al. Pipeline and batch sharing in grid workloads. In Proc. of 12th IEEE Symposium of High Performance istribuited omputing, 2003. 7. F.M.T. razier et al. gent factory: Generative migration of mobile agents in heterogeneous environments. In In Proc. of the 17th M Symposium on pplied omputing, 2002. 8. moeba Group. http://www.cs.vu.nl/pub/amoeba/amoeba.html, 1996. 9. haskar as Gupta and Michael Palis. Online real-time preemptive scheduling of jobs with deadlines on multiple machines. Journal of Scheduling, Vol. 4:297 312, 2001. 10. Francoise aude Laurent aduel and enis aromel. Efficient, flexible, and typed group communications in java. In Proc. Joint M Java Grande - ISOPE 2002 onference, 2002.

11. Yang Xinyu Lu Lina, Liu Longguo. n agent-based load balancing mechanism: Plrm using java. In Proc. of the 37th International onference on Technology of Object.Oriented Languajes and Systems, pages 176 181, 2000. 12. Miron Livny Michael Litzkow and Matt Mutka. ondor - a hunter of idle workstations. In Proc. of 8th International onference on istribuited omputing Systems, pages 104 111, 1998. 13.. Toursel R. Olejnik,. ouchi. n object observation for a java adaptative distributed application platform. In In Proc. of International onference on Parallel omputing in Electrical Engineering (PRLLE02), pages 171 176, 2002. 14. ouglas Thain and Miron Livny. Error scope on a computational grid: Theory and practice. In Proc. of 11th IEEE Symposium of High Performance istribuited omputing, 2002. 15. ouglas Thain and Miron Livny. The ethernet approach to grid computing. In Proc. of 12th IEEE Symposium of High Performance istribuited omputing, 2003. 16. XGForce. http://www.xgforce.com/eluster.html, 2002. 17. Saneyasu Yamaguchi and Katsumi Maruyama. utonomous load balance system for distributed servers using active objects. In In Proc. of 12th International Workshop on atabase and Expert Systems pplications (EX01)., pages 167 171, 2001.