Load balancing in distributed object computing systems

Title Load balancing in distributed object computing systems Advisor(s) Kwok, YK Author(s) Cheung, Lap-sun.; 張立新 Citation Issued Date URL Rig...
7 downloads 2 Views 8MB Size
Title

Load balancing in distributed object computing systems

Advisor(s)

Kwok, YK

Author(s)

Cheung, Lap-sun.; 張立新

Citation

Issued Date

URL

Rights

Cheung, L. [張立新]. (2001). Load balancing in distributed object computing systems. (Thesis). University of Hong Kong, Pokfulam, Hong Kong SAR. Retrieved from http://dx.doi.org/10.5353/th_b3122417 2001

http://hdl.handle.net/10722/33627

The author retains all proprietary rights, (such as patent rights) and the right to use in future works.

Load Balancing in Distributed Object Computing Systems

Lap-Sun C H E U N G

A Thesis Presented to The University of Hong Kong in Partial Fulfillment of the Requirements for the Degree o f Master of Philosophy in Electrical and Electronic Engineering

Hong Kong, A u g 2001

Copyright © by L a p - S u n C H E U N G 2001

/ 声

Declaration I declare that this thesis represents m\ own work, except where due acknowledgement is made, and that it has not been previously included in a thesis, dissertation or report submitted to this University or to any other institution for a degree, diploma or other qualification.

Lap-Sun Cheung

Acknowledgments I would like to thank my supervisor Dr. Y. K. Kwok. for his patience, guidance and invaluable advice on my research work. I would like to acknowledge the Hong Kong Research Grants Council for supporting this work (under contract number H K U 7124/99E). The completion of this thesis would not have been possible without the help and encouragement of my family and colleagues. I would like to thank all the people who have helped me in one way or another to complete my research work.

:'VTE REC'3

m

f 關 V 1001

]: ;

1

;31.;.33 hC .

Load Balancing in Distributed Object Computing Systems

Lap-Sun C H E U N G A Thesis Presented to Department o f Electrical and Electronic Engineering, The University of Hong Kong Aug 2001

Abstract Distributed object computing systems are widely envisioned to be the desired distributed software development paradigm due to the higher modularity and the capability o f handling machine and operating system heterogeneity. Indeed, enabled by the tremendous advancements in processor and networking technologies, complex operations such as object serialization and data marshalling become very efficient, and thus, distributed object systems are being built for many different applications. As the system scales up (e.g., with larger number of server and client objects, and more machines), a judicious load balancing system is required to efficiently distributed the workload (e.g., the queries, messages/objects passing) among the different servers in the system. However, in existing distributed object middleware systems, such a load balancing facility is lacking. In this thesis, the design and implementation of a dynamic fuzzydecision based load balancing system incorporated in a distributed object computing environment is described. The proposed approach works by using a fuzzy logic controller which informs a client object to use the most appropriate service such that load balancing among servers is achieved. We have chosen Jini to build our experimental middleware platform, on which our proposed approach as well as other approaches are implemented and compared. Extensive experiments are conducted to investigate the effectiveness of our fuzzy-decision based approach, which is found to be consistently better than other approaches.

Load Balancing in Distributed Object Computing Systems

Lap-SunC H E U N G

APPROVED:

Dr. Y . K . K w o k , S U P E R V I S O R

Prof. T. S . Ng,HEAD O F D E P A R T M E N T

Department of Electrical and Electronic Engineering, H K U A u g 2001

Table of Contents

Declaration Acknowledgments Table of Contents List of Figures List of Tables List of Symbols

Chapter 1 Introduction 1.1

Overview

1.2

General Overview of Distributed Computing Systems

1.3

Distributed Object Computing

1.4

Middleware Survey 1.4.1 Common Object Request Broker Architecture ( C O R B A ) 1.4.2 Distributed Component Object Model ( D C O M ) 1.4.3 Java Remote Method Invocation (RMI) 1.4.4 Comparison between C O R B A , DOOM, and Java RMI...,

1.5

The Load Balancing Problem

1.6

Common Techniques Used in Load Balancing 1.6.1 Components of a Load Balancing Algorithm 1.6.2 Load Indices 1.6.3 Heuristics 1.6.4 Partition into subdomains 1.6.5 Queuing theory

1.7

Drawbacks o f Existing Approaches

1.8

Some New Possible Approaches

1.9

Research Objectives

1.10 Contributions 1.10.1 Organization o f the Thesis 1.11 Summary and Concluding Remarks

vii

Chapter 2 Background and Literature Survey

16

2.1

Introduction

16

2.2

Problem Statement and The Models Used

16

2.2.1 Server/Client Model

19

2.2.2 Network Model

19

2.2.3 Load Balancer Model

19

A Partial Taxonomy of Recent Load Balancing Algorithms

20

2.3.1 Static vs. Dynamic Strategies

20

2.3.2 Centralized vs. Distributed

21

23.3 Preemptive vs. non-preemptive algorithms

21

2.3

2.4

Level o f Load Balancing in Distributed Object Computing Environment

22

2.5

Brief Descriptions of Selected Dynamic Load Balancing Algorithms

23

2.5.1 Symmetrically-Initiated Adaptive Algorithm

23

2.5.2 Flexible Load Sharing Algorithm

23

2.5.3 Bidding Algorithm

24

Brief Descriptions of Selected Distributed Object Load Balancing Systems

25

2.6.1 Load Management based on Extensions of C O R B A Standard

25

2.6.2 Load Distribution based on C O R B A Naming Service

26

2.6.3 Load Distribution based on the Exporter/Importer/Trader Model

27

2.6.4 Comparison with Our Proposed Approach

28

Summary and Concluding Remarks

30

2.6

2.7

Chapter 3 Fuzzy-Decision Based Load Balancing

31

3.1

Introduction

31

3.2

Background

32

3.2.1 Overview of Java RMI and Jini

32

3.2.2 Load Balancing Service in a Distributed Object Computing System

34

3.2.3 Integrating a Load Balancing System in a Jini Environment

35

The Proposed Fuzzy-Decision Based Load Balancing Scheme

36

3.3.1 Fuzzy Logic Controller

36

33.2 Server Load

38

3.3.3 Remote Method Invocation Time

.38

3.3.4 Service Rank

39

3.3.5 Components Residing in the Server Host...

41

3.3

3.4

3.5

3.3.6 Components Residing in the Client Host

42

3.3.7 Components Residing in the Fuzzy Logic Load Balancing Service Host

43

3.3.8 Deployment Scenario of the Fuzzy Logic Load Balancing Service

44

3.3.8.1

Load Monitor

44

3.3.8.2

Load Monitor Proxy

45

3.3.8.3

Service Proxy

45

3.3.8.4

Fuzzy Logic Load Balancing Service Proxy

45

3.3.8.5

The Dynamic Interactions in Fuzzy Logic Load Balancing System

46

Performance Results

46

3.4.1 Hardware/Software Platform

47

3.4.2 Average Client Response Time and Throughput Comparison

47

3.4.3 Load Distribution

49

3.4.3.1

Round-Robin Load Distribution

50

3.4.3.2

Random Load Distribution

50

3.4.3.3

Fuzzy-based Load Distribution

51

Summary and Concluding Remarks

64

Chapter 4 Quantitative Comparison with Other Contemporary Approaches.66 4.1

Introduction

66

4.2

JavaSpaces Based Approach

66

4.2.1 Background

66

4.2.2 Load Balancing Based on JavaSpaces

68

4.2.3 Compute Server

68

4.2.4 Design and Implementation o f an Experimental Compute Server

70

Request Redirection Approach

71

4.3.1 Static Scheduling Based on Round-robin

71

4.3.2 Request Redirection

72

4.3.3 Design and Implementation of Request Redirection Approach

72

Fuzzy Logic Based Request Redirection Approach

74

4.4.1 Fuzzy Logic Controller

75

4.3

4.4

4.4.2 Design and Implementation o f Fuzzy Logic Based Request Redirection Approach "…76

4.5

4.4.2.1

Server Load

76

4.4.2.2

Server Load Mean Deviation

77

4.4.2.3

Service Rank

77

Performance Results

80

4.5.1 Hardware/Software Platform

80

4.5.2 Load Distribution Results of the JavaSpaces Approach

81

4.5.3 Load Distribution Results of the Request Redirection Approach

84

4.5.4 Load Distribution Results o f the Fuzzy Logic Based Request Redirection Approach …88

4.6

4.5.5 Average Client Response Time and Throughput Comparison

92

Conclusions

94

Chapter 5 Conclusions and Future Research

95

5.1

Summary

95

5.2

Future Research Directions

96

References

99

Vita

102

-vii -

List of Figures

Figure 1.1: : A shared memory architecture

J

Figure 1.2: : Client/server model

4

Figure 1.3: : C O R B A Architecture

6

Figure 1.4: : Task scheduling

c

)

Figure 2.5: : The queuing model

10

Figure 1.6: : The M/M/K queuing model

12

Figure 2.1: : Herd Behaviour

18

Figure 2.2: : The structure o f network model

19

Figure 2.3: : Casavant's hierarchical partial taxonomy

20

Figure 2.4: : The load managed C O R B A environment proposed by M . Lindermeier

26

Figure 2.5: : Schema for the integration of load distribution in a naming service

27

Figure 2.6: ; The Exporter/Importer/Trader Model

28

Figure 3.1: : The Java R M I system architecture

33

Figure 3.2: : The structure of service items in the lookup service

34

Figure 3.3: : The architecture o f the fuzzy logic controller

37

Figure 3.4: : The membership graph for server load (SL)

38

Figure 3.5: : The membership graph for remote method invocation time (RMIT)

39

Figure 3.6: ; The membership graph for service rank (SR)

40

Figure 3.7: : The state pattern

4}

Figure 3.8: : Structure of the server host

42

Figure 3.9: : Structure of the client host

43

-viii -

Figure 3.10:: Structure of the fuzzy logic based load balancing service host

43

Figure 3.11:: Component structure of the load balancing system

44

Figure 3.12:: Interactions between the fuzzy logic based load balancing service and the load monitor

45

Figure 3.13:: The fuzzy-decision based load balancing mechanism

46

Figure 3.14:: The distributed object computing testbed

47

Figure 3.15:: Average response times of the clients

48

Figure 3.16:: Average throughput of the clients

49

Figure 3.17:: Load distribution of round-robin with 20 clients

50

Figure 3.18:: Load distribution of random with 20 clients

51

Figure 3.19:: Load distribution of fuzzy approach with 20 clients

51

Figure 3.20:: Load distribution of round-robin using 3 servers

53

Figure 3.21:: Load distribution of round-robin using 4 servers

54

Figure 3.22:: Load distribution of round-robin using 5 servers

55

Figure 3.23:: Load distribution of round-robin using 6 servers

56

Figure 3.24:: Load distribution of random using 3 servers

57

Figure 3.25:: Load distribution of random using 4 servers

58

Figure 3.26:: Load distribution of random using 5 servers

59

Figure 3.27:: Load distribution of random using 6 servers

60

Figure 3.28:: Load distribution of fuzzy approach using 3 servers

61

Figure 3.29:: Load distribution of fuzzy approach using 4 servers

62

Figure 3.30:: Load distribution of fuzzy approach using 5 servers

63

Figure 3.31:: Load distribution of fuzzy approach using 6 servers

64

Figure 4.1: : Tuple space

67

Figure 4.2: : The JavaSpaces interface showing the basic operations Figure 4.3: : The structure of the Compute Server Figure 4.4: : The structure of the experimental Compute Server Figure 4.5: : The Design of Request Redirection Approach Figure 4.6: ; The multicast packet format Figure 4.7: : The architecture of the fuzzy logic controller Figure 4.8: : The membership graph for server load (SL) Figure 4.9: : The membership graph for server load mean deviation (SLMD) Figure 4.10:: The membership graph for service rank (SR) Figure 4.11:: Fuzzy logic request redirection Figure 4.12:: The distributed object computing testbed Figure 4.13:: Load distribution of the JavaSpaces approach Figure 4.14:: Load distribution of the Request Redirection approach Figure 4.15:: Load distribution of the Fuzzy Logic Based Request Redirection approach Figure 4.16:: Average response times of the clients Figure 4.17:: Average throughput of the clients

List of Tables

Table 1:

: Difference between tightly and loosely coupled systems

3

Table 2:

: Comparison on CORBA,DCOM,JavaRMI

7

Table 3.1:

: Fuzzy inference rules

39

Table 4.1:

: Fuzzy inference rules

78

List of Symbols

Notation

Definition



average number o f tasks arriving per second

w

average number o f tasks waiting to be served average time that a task must wait

Ts T

q

P

average service time for a task average queuing time for a task processor utilization

SL

Server Load

RMIT

Remote Method Invocation Time

SR

Service Rank



The overlapped area from the triangles or trapeziums obtained in the / -th rule The centroid from the triangles or trapeziums obtained in the / -th rule

X

The overall centroid of

BS

The best server with the highest service rank

NS

The server next to BS in the round-robin queue

PS

The previous server to which last client request is sent

SLMD

Server Load Mean Deviation

IS

Task

-xii -

Chapter 1 Introduction

1.1 Overview Distributed computing technologies has evolved immensely in the past few decades owing to the availability of low-cost microcomputers and the advances in distributed software technologies over a far-flung network. Today, the architecture of distributed enterprise system basically consists of client/ server and multitier models in which multiple server machines cooperate to provide services for clients. In such computing architecture, there exists a heterogeneity that client and server may be o f different machine types and operating systems produced by different vendors. To successfully integrate different computing platforms, a lot of distributed computing technologies arise which help hiding the burden imposed by the heterogeneity of existing distributed computing architecture. Examples for such distributed computing technologies are the Object Management Group's Common Object Request Broker Architecture (CORBA), the Microsoft's Distributed Component Object Model (DCOM), and the Sun Microsystems's Jini. These distributed network technologies hide the complexity of underlying computing platform by providing a middleware layer based on which different legacy systems can interact with each other. However, although these middleware layers provide a wide range of functionalities for managing distributed application, there exists a load imbalance inherited from the very nature of distributed computing. The objective of load balancing in a distributed client and server environment is to minimize the client response time and maximize the server throughput by properly distributing client work load to the processors. The load balancing problem in a distributed computing system has been addressed extensively by researchers for many years [3],[7],[11],[12], [17], [30], [32],[49]. Because the load balancing problem is a NP-hard [7], [19], heuristics are sought to tackle the problem. Researchers have proposed many different kinds of load balancing algorithms which can be mainly divided into two categories: static and dynamic [7], [30]. Dynamic load balancing algorithms use system state information (the load levels at different machines) to improve the quality of load balancing decision, while static algorithms make no use of such Information. In static algorithms, decisions are hardwired using a priori knowledge of the system. Since static approaches usually cannot cope with the

dynamically changing system conditions, dynamic algorithms are used in practical situations. However, dynamic algorithms must collect, store, and analyze state information, and thus,they incur more overhead than their static counterparts. In our study, we focus on dynamic approaches only. Besides, due t o the nondeterministic nature of distributed environment it is difficult to model a complex system such as a high speed computer network where a lot of uncertain parameters exist. In view of this, w e investigate the use of fuzzy logic technique in handling incomplete and ambiguous inputs of load balancing problem. This chapter is organized as follows: Section 1.2 provides a general overview of distributed computing systems. Section 1.3 gives a description on distributed object computing. Section 1.4 presents a survey of middleware. Section 1.5 describes the load balancing problem. Some common techniques used in load balancing are described in Section 1.6. Section 1.7 discusses the drawback of these load balancing techniques. Section 1.8 presents some possible new approaches and finally the research objective and contribution are presented in Section 1.9 and Section 1.10 respectively.

1.2 General Overview of Distributed Computing Systems The most dramatic change in information systems in the last two decades is the rise of client/server computing. To clearly define a distributed system,we first consider what a centralized system is. In a centralized system,at most one autonomous activity is carried on at any single moment. On the other hand, there may be more than one autonomous processors active in a system at any moment in a distributed system. These processors may need to communicate with each other to achieve a reasonable level of cooperation. Another characteristic of a distributed system is that the processors participating in it may be physically distributed in different geographic locations. The processors may be different in architecture and computing power. A distributed computing system can be classified based on the coupling level of differem processors in the system. In a tightly coupled system, there is a share memory through which different processors can cooperate to work on a task. The communication mechanisms between the processors are very fast and reliable. Some examples of tightly coupled multiprocessors include the Encore

Multimax,BBN Butterfly, and Sequent Balance. Figure 1.1 shows a shared memory architecture. It is

LM

LM

LM

Figure 1.1: A shared memory architecture.

commonly used in parallel computing for solving a large and complex problem. In contrast, in a loosely coupled system the processors are more independent and the communication between them are less frequent and synchronous. Each processor has its own memory for operation and processors communicate with each other through message passing. One example of a loosely coupled system is a wide-area communication network. In such communication network, processors are interested in their own private activities instead of working cooperatively. For instance, a user may wish to access an electronic banking system located at a different site. In such scenario,the user may only concern his/ her own transaction activities between the user's processor and the electronic banking system. The user does not want to be disturbed by other activities caused by other users. Thus, processors in a loosely coupled system work on their own goals. Table 1 summarizes the main differences between tightly and loosely coupled systems. Table 1: Difference between tightly and loosely coupled systems Tightly Coupled System

Loosely Coupled System

Memory

Shared memory architecture

Each processor has its own memory

Communication

Relatively fast and reliable based on share memory

Relatively slow and less frequent based on message passing

Mode of working

Processors cooperate to handle a complex problem

Each processor work for their own goal

Example system

The Encore Multimax, BBN Butterfly, and Sequent Balance

Wide-area communication network

Common architecture used in loosely coupled distributed computing system is based on a client/ server architecture. A client/server network is an architecture that involves client processes that request

service from server processes. Figure 1.2 shows a generic client/server architectuie.

LAN

flDDOBD!) UQDUUOO

OOi lfU lfi OQ nilUD

Server Workstation (Olient)

Figure 1.2: Client/server model.

A s shown in the figure, client and server machines are connect via a Local Area Network ( L A N ) or a Wide Area Network (WAN). Client and server machines communicate over a network using a given protocol which must be specified on both client and server machines. The configuration of a client/ server network can be implemented as an N-tier architecture which introduces one or more servers between a client and a server. In an N-tier architecture, the middle-tier machine can provide different types of services, such as translation and scalability. To provide a translation service, a middle-tier machine can act as a bridge when different protocols is used in client and server machines. To provide scalability service,a middle-tier machine can monitor the system load so as to balance the load of requests between servers. In our study, we will mainly focus on a distributed computing system which is based on client/server architecture.

1 3 Distributed Object Computing Nowadays, computing and network hardware get smaller, faster, and cheaper, distributed software gets larger, slower, and more expensive to develop and maintain. According to [41], Schmidt points out that the challenge of distributed software stems from two types of complexity: • Inherent complexities: Inherent complexities arise from fundamental problems of distribution. Chief among these are detecting and recovering from network and host failures, minimizing the impact of communication latency, and determining an optimal partitioning of service components and workload onto computers throughout a network. • Accidental complexities: Accidental complexities arise from limitations with tools and techniques used to build distributed software. A common source of accidental complexity is the

widespread use of functional design, which results in nonextensible and non-reusable systems. In view of these complexities, some special techniques are required in order to minimize the difficulty in writing distributed software. One o f the solution is to apply distributed object computing (DOC) techniques in designing and maintaining software. Distributed object computing (DOC) is the outcome of two major areas of software technology: distributed computing systems and objectoriented ( 0 0 ) techniques. Distribute computing systems focuses on integrating multiple computers to act as a scalable computational resource whereas object-oriented techniques focuses on the design of reusable components so as to reduce software complexity. B y using0 0 techniques, designers can reuse object classes that have been written by others so that development, testing, and maintenance time can be reduced. Moreover, changes to the implementation of a class can be made with little impact on the rest o f the system since object-based software is modular in nature and the number o f potential interactions o f different parts o f the software is limited. Thus,object-oriented technique is useful in developing software application. To develop distributed applications, designers can rely on some contemporary distributed object computing models which are known as middlewares. For instance, object request brokers (ORBs) facilitate communication between local and remote objects. ORBs eliminate many tedious, errorprone, and non-portable aspects of designing and implementing distributed applications. In the next section, three main competing technologies in the D O C market are described.

L4 Middleware Survey Distributed computing consists of a number of autonomous computers which are connected through computer network. The underlying architectures and operating systems of these computers may be different. In order t o mask the underlying differences in distributed computing platform, middleware technologies are introduced. Distributed computing architectures, such a s Common Object Request Broker Architecture (CORBA) introduced by the Object Management Group (OMG), Microsoft's Distributed Component Object Model (DCOM), and Sun Microsystems' Remote Method Invocation (RMI) are dominating in today's middleware technology market. The three technologies are briefly described as follows:

1 A 1 Common Object Request Broker Architecture (CORBA) The CORBA [47] specification is being developed by OMG. The O M G is a consortium which w a s founded in 1989, This consortium consists of members from about 800 companies. These companies include system vendors,academic institutions and users. The goal of O M G is t o create a component based software marketplace. To achieve this goal,the O M G proposes a framework for software

development in heterogeneous environments and across a network. C O R B A software components w i l l work with different types o f computers and operating systems across a network. They can be written in any supported programming language no matter it is object-oriented or not. The most important component o f C O R B A is the Object Request Broker (ORB). O R B allows clients to issue requests for objects providing required services. Figure 1.3 shows a client working with an O R B to contact a server.

Client

iOL. Skeleton

IDL Stub

Object Adapter

ORB

Figure 1.3: CORBA Architecture.

The diagram above shows the communication between client and service. The underlying communication protocol used by C O R B A is called Internet Inter-ORB Protocol (HOP). We can see that the C O R B A client talks through a stub and the method invocation occurs on the server side through a skeleton. The stub and skeleton are generated by Interface Definition Language ( i D L ) compiler based on an I D L file. I D L is programming language independent and the I D L file describes the interface and methods that client and service used to communicate. The stub generated is specific to the interface being invoked and client does not have to aware o f the existence o f the underlying O R B . The O R B is transparent to the client but not to the service because the service may need various support functions provided by O R B . The C O R B A provides an object adapter, a set o f ORB-based APIs, for the service to access functionalities provided by the O R B .

1.4.2 Distributed Component Object Model (DCOM) D C O M [16] is an extension o f the Component Object Model ( C O M ) which is developed by Microsoft Corporation as an object-based programming model for developing and deploying software components. The underlying communication protocol between remote objects i n D C O M Is called Object Remote Procedure Call (ORPC). Similar to C O R B A , D C O M clients execute method calls cm a

remote service through the server object's interfaces. D C O M allows service components to be written in diverse programming languages such as C++,Java, Visual Basic, and COBOL. COM defines a language for specifying interfaces called Microsoft Interface Definition Language (MIDL). Client proxies and service stubs are generated by MIDL compiler from an interface definition. The proxies and stubs generated can be in C,C++,or Java.

1 . 4 3 Java Remote Method Invocation (RMI) Java Remote Method invocation is developed by Sun Microsystems [25]. The communication protocol used in Java middleware is called Java Remote Method Protocol (JRMP). In JRMP, object serialization allows objects to be marshaled and demarshaled during object transfer. Since object serialization is specific to Java, the client and service object has to be written in Java. Similar to other middleware technologies,a client executes remote method call through Java remote interface. The remote interface contains service methods. Clients can obtain service references through RMIRegistry. Java can be used on diverse operating system platforms as long as there is a Java Virtual Machine (JVM) implementation for that platform. Built on top of Java RMI, Jini is a new distributed object computing technology which enables spontaneous networking of clients and services to find themselves on a local network without human intervention. In Jini environment, a set of well constructed libraries written in Java is used to support the creation of dynamic, self-healing networked communities of device and software services. Chapter 3 gives a detailed discussion on Java RMI and Jini. In this research, we have chosen Jini technology as our studying platform since Jini is a new distributed computing technology and Jini's library source codes are opened to the public for research purpose.

1.4.4 Comparison between CORBA, DCOM, and Java RMI In [1], Gopalan pointed out the comparison between CORBA, DCOM, and Java RMI. Table 2 shows the main differences between these middlewares based on Gopalan's discussion. Table 2: Comparison on CORBA, DCOM,JavaRMI CORBA

DCOM

JavaRMI

Object Request Broker ( O R B ) is responsible f o r locating a n object

Service Control M a n a g e r ( S C M ) is responsible for locating a n object

J V M is responsible f o r locating an object

C O R B A will run o n a n y platform a s long a s there is a CORBA ORB implementation f o r that platform

D C O M will run o n any platform a s long a s there is a C O M service implementation f o r that platform

J a v a R M I will run o n a n y platform as long a s there is a J V M implementation f o r that platform

Table 2: Comparison on CORBA, DCOM, JavaRMI CORBA

DCOM

JavaRMI

Uses the Internet InterO R B Protocol (HOP) as its underlying remoting protocol

Uses the Object Remote Procedure Ca l l ( O R P C ) as its underlying remoting protocol

Use the Java Remote Method Protocol ( J R M P ) as its underlying remoting protocol

Implementation Repository is used to handle the mapping o f object name to its Implementation

Registry is used to handle the mapping o f object name to its implementation

RMIRegistry is used to handle the mapping o f object name to its implementation

N o distributed garbage collection is performed

Distributed garbage collec-

Distribute garbage collection is performed bv JVM ^

tion is performed by pinging mechanism

1.5 The Load Balancing Problem In a distributed computing system, it is likely that some processors are heavily loaded while others are lightly loaded. For instance, clients may obtain the same service reference and send requests to the corresponding processor simultaneously. It is desirable that the workload is distributed among all the processors so as to maximize the performance of the whole system. The load balancing problem in a distributed computing system is basically a two-dimensional scheduling problem (time x space) which is different from the one-dimensional scheduling problem as in uni-processor. The problem can be stated as a static mapping problem i f ioad and communication characteristics of a system are known a priori. For instance, a sets of tasks TS = { is mapped onto a set of K processing elements so as to optimize some performance criterion, such as maximization of system throughput, minimization of total process completion time, and maximization of resources utilization. A mapping function must be defined which assigns each task to a processor before run-time. Usually, a task graph represents a set of tasks and their relationships (nodes represent tasks and edges represent communication channels between them) and a processor graph represents a set of processors and their connections (nodes represent processors and edges represent

communication links). Figure 1.4 shows a mapping o f task graph to a processor graph. Processor Graph

Task Graph

P3

P2 P4

P5

TS1 Scheduler

TS2

P8 Figure 1.4: Task scheduling

The optimal solution for the mapping problem is known to be NP-complete and there is no computationally tractable algorithm for evaluating an optimal mapping for the general case. Thus a sub-optimal solution is sought to tackle the problem. Besides the static mapping problem, there exists a large class o f problems in which the communication pattern is irregular and unpredictable. To tackle this kind o f problems, a dynamic load balancing algorithms have to be employed which means that task allocation or workload redistribution have to be done in run-time. In our study, we focus on dynamic load balancing problem.

1.6 Common Techniques Used in Load Balancing 1.6.1 Components of a Load Balancing Algorithm System performance can be improved by relocating tasks from heavily loaded machines to lightly loaded ones. Using this simple principle, in the past two decades, researchers have proposed many techniques to allocate jobs dynamically i n a L A N to improve performance [7],[23]. In general, load balancing algorithm can be analyzed in a framework with four dimensions: selection policy, transfer policy, information policy, and location policy [30]. Specifically,information and location policies have the most important roles. • Location policy: The objective of this policy is t o find a suitable transfer partner for a machine, once the transfer policy has decided that the machine is a heavily-loaded state or lightly-loaded one. Common location policies include: random selection, dynamic selection, and state polling [30]. . • Information policy: This policy determines w h e n the information about the state o f other machines should b e collected,from where it has t o be collected, and what information is t o b e collected. Common approaches are: n o exchange o f states,state probing (or demand-driven) in process of load balancing, periodic exchange (information gather periodically), state-change

broadcasting, and conditional and limited multicasting [30]. • Transfer policy: A transfer policy determines whether a machine is in a suitable state to participate in a task transfer, either as a sender or a receiver. For example, a heavily loaded machine could try to start process migration when its load index exceeds a certain threshold. • Selection policy: This policy determines which task should be transferred. Once the transfer policy decides that a machine is in a heavily-loaded state, the selection policy selects a task for transferring. Selection policies can be categorized into t w o policies: preemptive and nonpreemptive. A preemptive policy selects a partially executed task. As such, a preemptive policy should also transfer the task state which can be very large or complex. Thus, transferring operation is expensive. A non-preemptive policy selects only tasks that have not begun execution and, hence, it does not require transferring the state of task. It should be noted that not all load balancing algorithms can be clearly decomposed into these policies because several policies can be mixed up and it is not possible t o exactly separate them.

1.6.2 Load Indices In dynamic load balancing, system load measured is known as load index. A machine can be classified as overloaded or underloaded by comparing the load index of that machine against some predefined threshold value. A wide variety of load indices has been proposed in the literature 131 ]. Some of the examples are waiting queue length, CPU utilization, and average response time of a task. Figure 2.5 shows an queuing model which illustrates the concept of these load indices. Queue

Departures

Dispatches

Arrivals

Processor

arrival rate = miiing time

Ts - service time

Figure 2.5: The queuing model

The queuing system consists of a queue and a processor. T h e processor is responsible for processing tasks. An newly arriving task arrives at the system and is processed immediately if the processor is idle. Otherwise, the task joins the queue. When the processor has completed processing a task, the task departs. If there is a task waiting in the queue, the task is dispatched t o the processor. In this queuing model, several parameters are defined. X is the average number of tasks arriving per s e c o n d , i s the average number of tasks waiting in the queue,TV is the mean time that a task must

- 1 0 -

wait,

is the mean service time for a task,

queuing system, and p is the processor utilization. If an load balancing algorithm employs queue length as its load index, w has to be measured. If an average response time of a task is employed as a load index, be used which is the fraction o f time that a processor is busy, measured over some interval of time. It is found that simple load indices yield particularly good performance whereas more complex indices (more dimensional combinations o f simple indices) do not provide further improvement. In addition, C P U queue length appeared to be a more efficient load index than C P U utilization. A s can be seen in the following chapter, our proposed load index is based on the execution time of a benchmark program which consists of several benchmark kernel loops. The benchmark program runs perpetually without stopping in the system as a background process. B y observing the running times of the benchmark program, we can infer the instantaneous load level in the system. The execution time o f the benchmark program will increase i f the number o f simultaneous requests processed increase.

1.6.3 Heuristics One approach to the sub-optimal mapping in load balancing problem is the use o f heuristics. Heuristic schedulers make use of special parameters which affect the system performance in indirect ways. These parameters are usually simple to monitor or calculate. In [20], Goswami et al. proposed a load sharing heuristics based on predicted process resource requirement. The proposed approach works by using a predictor and a scheduler. The predictor predicts the resource requirements o f a new process which arrived at the scheduler. Based on some load sharing polices and the predicted values,the scheduler send the process to the appropriate processor. T h e actual resource usage of the process is then send back to the scheduler periodically and the scheduler uses this information to update the appropriate state transition models of the predictor.

L6.4 Partition into subdomains In a distributed system, a load balancing component need to communicate with other processors to obtain load information and transfer tasks. Some communication mechanisms such as broadcast, global gathering have to be used. However,the collection o f load information may create intolerable overhead in systems with a large number of processors. T h e flexible load-sharing algorithm [29] which will be discussed in chapter 2 achieves scalability by dynamically partitioning a system into domains. Each processor dynamically and adaptively selects other processors to be included in its domain. A processor determines which other processors to include based on their load-state: overloaded, underloaded or medium load. Two processors are candidates for load sharing if one is overloaded while the other is underloaded. Each processors refreshes its domain periodically after a refresh

-11 -

interval or whenever there are state changes. Thus the overhead for a processor in collecting load information from other processors is reduced based on partition into subdomains.

1.6.5 Queuing theory Queuing theory have been studied to analyze the task scheduling problem in [j>7]. The model is a centralized parallel processing system where tasks wait in a central queue betoic being clispatehtd to the waiting processors. Figure 1.6 depicts the M / M / K queuing model. Oueue

Processor

Scheduler

Figure 1.6: The M/M/K queuing model

The assumption o f this model is that new tasks enter this queue is based on the Poisson distribution with a mean arrival rate of X A n arriving task is dispatched by the scheduler to a processors based on a scheduling policy which is inside the scheduler. A processor can only execute one task at a time and other tasks have to wait in a queue. Tasks in queues are executed by the processors with exponential service times. In addition to the above approaches,more ioad balancing examples which make use of other techniques is presented in Chapter 2.

L7 Drawbacks of Existing Approaches Most of the load balancing approaches are heuristic-based. A heuristic is a method for solving a particular problem which works very well under certain strict conditions but may fail under some other conditions. More formally,a heuristic can be viewed as an algorithm that produces a result in less than exponential time but does not guarantee an optimal solution. In [46],Svensson used a resource-based filter t o isolate and execute short processes locally in order t o enhance existing load sharing heuristics. Information about different program types and their average CPU requirements is obtained by measuring running time o f programs on an actual machine. Short processes are identified by using such information. This heuristic-based approach work well in static load balancing scheme. However, it does not consider the changing resource requirements o f a program. The predicted-based dynamic, load sharing heuristics [20] mentioned in the previous section shows improved performance results based on the simulated distributed system which consists o f homogeneous processors with unlimited

-12-

memory. The performance and applicability of such heuristic in real heterogeneous distributed environment are questionable. The load balancing scheme based on domain partitioning [29] achieves scalability by dynamically partitioning a system into domains. However the scheme is network topology dependent and may reduce performance i f the scheme is not suitable to certain topology. Moreover, one of the disadvantages o f using domain partitioning schemes is that it is usually slow in distributing load across domains when a subregion o f the system becomes suddenly overloaded. For load balancing scheme based on queuing theory,the queue length of each processor is used for making load balancing decision. However, a number of simplifying assumptions must be made to derive equations for the parameters of interest. Thus, the algorithms based on queuing theory may be inapplicable in real situation. Moreover, there exists some drawbacks in using C P U queue length as a load index. In [20], Goswami et al. claimed that the CPU queue length of a machine changes rapidly and the measured CPU queue length is almost always obsolete. To obtained an accurate value for C P U queue length, one have to frequently poll the machine. However, it may degrade system performance since rapid polling is an expensive operation and adversely affect the efficiency of the system. One common drawback of the above approaches is that none of these approaches consider the effect of uncertainty in the decision making process. In a distributed system, information obtained by a processor may be out of date due to communication latency. A load balancing algorithm may make wrong decision if the uncertainty in global state is not taken into account. In view of this, one has to resort to other approaches t o handle the uncertainty of a distributed computing system.

L8 Some New Possible Approaches To tackle the uncertainty issue in distributed computing, one has to find some new methods to “intelligently,,response to changes in environment. Many intelligent tools have been emerging since the last f e w decades. Intelligent tools such as fuzzy logic, neural networks, mean-field annealing, simulated annealing, and genetic algorithm are capable in adapting changes in environment. In addition, these tools have been successfully applied f o r solving a wide range o f combinatorial optimization problems. Ho et al. [21] proposed a genetic algorithm in solving traveling salesman problem. Wolfe [50] incoporated fuzzy logic technique t o deal with traveling salesman problem. Encouraging results have been obtained through using these intelligent techniques. Due t o the fact that this kind of optimization problem is very similar in nature to the scheduling or load balancing problem, it arouses researchers' interest in applying these techniques t o handle computationally intractable problems. In [9],Cheong et al. proposed a Generalized Dimension Exchange (GDE) method which combines the fuzzy approach and a genetic algorithm t o equalize workload among servers. Shaout et

- 1 3 -

al. [44] presented a batch job scheduler which schedules jobs in a distributed processing environment based on fuzzy logic. Based on the success o f applying fuzzy logic in load distribution, we proposed a new load balancing approach especially designed for a distributed object computing environment based on fuzzy logic. Fuzzy logic control has been successfully applied in a wide range of applications, ranging from household electronic devices to aeroplane control. Fuzzy set was introduced by Loth A . Zadeh, University of California at Berkeley, in 1965 [28]. The word “fuzzy” means blurred or imprecise. Based on the fuzzy set theory, fuzzy logic was developed to model imprecise or vague descriptions of system behaviour, heuristic human-like reasoning. Unlike classical set theory in which an d e m e n t either belongs to a set or it does not,fuzzy logic theory introduces the notion of a linguistic variable whose values are linguistic terms rather than numbers. For example, "height” is a linguistic variable taking values such as “short”,“medium”,and “tall”. The linguistic variable concept in combination with the basic notion o f a fuzzy IF-THEN rule plays a major role in paving the way for applying the fuzzy logic theory to the real-world problems. Another important part of fiizzy control system is the concept of fuzzy logic controller. The fuzzy logic controller is based on a logical model which represents the thinking processes that a human operator might g o through while controlling the system manually. It is generally made up of four basic components: fiizzifier, fuzzy rule base, inference engine, and defuzzifier. In our study, w e focus on designing a load balancing algorithm based on fiizzy logic. We believe that fuzzy logic is the most promising approach in handling imprecise and incomplete information f o r solving load balancing problem.

1.9 Research Objectives The objective of this research is to design and evaluate a dynamic load balancing algorithm which is suitable for distributed object computing systems. We model the load balancing problem in distributed computing systems as a control problem. Due to a large number of uncertain parameters existed in distributed computing systems,it is difficult to find an optimal solution for load balancing problem by taking all system parameters into account. Thus, the usefulness of Introducing fuzzy logic in load balancing problem is investigated. We compare the performance of several contemporary load balancing strategies with our proposed algorithm. Based on the fuzzy logic control, w e further enhance other approach by adding fuzzy logic component. Both our proposed and enhanced algorithms show encouraging result in load balancing client request in a distributed object computing environment.

1.10 Contributions The contributions o f this thesis are a s follows:

- 1 4 -

• Fuzzy Logic Load Balancing Algorithm.

We have developed a fuzzy logic load balancing

algorithm that models those state variables that cause uncertainty in global states. We have compared the algorithm with a number of contemporary load balancing algorithms. The result shows that our algorithm outperform the other in terms of client response time and throughput because it can intelligently controls the assignment of client requests. • Request Redirection

improved by Fuzzy Logic. We have improved the request redirection

algorithm by introducing fuzzy logic element into the algorithm. The added fuzzy logic controller explicitly informs the server machines about their states such that they can redirect client requests to other machines based on the fuzzy analysis. The algorithm shows improved performance in terms of client response time and throughput as compared with the original one.

1.10.1 Organization of the Thesis The organization of the thesis is as follows. In Chapter 2,a detailed discussion about the load balancing problem is provided. A brief literature survey and a classification of load balancing algorithms is also presented in the same chapter. In Chapter 3,we present the proposed load balancing algorithm based on fuzzy logic. We first describe the related work in the literature, followed by the design and implementation of the algorithm. The performance results of the algorithm are presented in last part of the chapter. In Chapter 4,we present the comparison of the proposed algorithm with other contemporary approaches. The first approach is based on JavaSpaces service and the second approach is based on client request redirection. The third approach is modified client request redirection algorithm equipped with fuzzy logic controller. Finally, w e present t h e comparison results of these approaches. Last in Chapter 5,we conclude with some final remarks and a brief discussion of some future research directions.

1.11 Summary and Concluding Remarks In this chapter, an overview of distributed computing system is presented. Some distributed object computing technologies such as CORBA, DCOM, Java RMI are introduced. Comparison are drawn between these distributed object computing technologies. Moreover,the load balancing problem is defined. Some common techniques and drawbacks of existing load balancing algorithms are discussed. Based on the success of fuzzy logic in solving a wide range of optimization problems,we believe that fuzzy logic control is a promising approach to load balance a computer network.

-15-

Chapter 2 Background and Literature Survey

2.1 Introduction To pave the way for understanding the proposed algorithm and the current research on ioad balancing, the background o f the load balancing problem and a brief literature survey are presented in this chapter. Load balancing problem has been studied in the literature since the past few decades. Many different terminology are suggested in the literature such as task scheduling, load distributing, load sharing,and load balancing. N o matter how these terms are described, their common goal is t o increase system performance by distributing workload among all the computing processors. A load distribution scheme must decide where and when a task should be executed. The decision is m a d e based on the analysis o f different system parameters such as server load and resource availability. Besides taking system parameters into account, the problems encountered during load balancing also need to be considered. To facilitate the understanding of the related problem,the problem statement and the system model used in designing our load balancing algorithm are discussed. This is iblloweci by a discussion about a set of techniques commonly used in load balancing. After introducing the basic techniques, a partial classification of the load balancing algorithms are described. Moreover, the classification of the load balancing algorithm in distributed object computing environment is ilirilier explored. Finally, we end the chapter by describing some representative load balancing schemes. The organization of this chapter is as follows. In Section 2.2 the problem statement and the computing model used in our study are provided. In Section 2.3 w e describe a partial taxonomy o f the load balancing algorithms which is essential in understanding the different characteristics of different algorithms. In Section 2.4,we further classify load balancing algorithm for distributed object computing environment. In Section 2.5 and Section 2.6,several selected load balancing algorithms in the literature are presented.

2.2 Problem Statement and The Models Used In a distributed computing system it is likely that some processors are heavily loaded while others

- 1 6 -

are lightly loaded. The objective of load balancing is to avoid load imbalances in the system so that an improved performance can be reached. However, to efficiently design a load balancing algorithm, several factors have to be considered. They are discussed as follows:

Load Balancing Algorithm Overhead Although load balancing algorithms are used to improve system performance, load balancing algorithms themselves introduce overhead to a system while processing load information. The higher the load produced by an algorithm, the poorer the performance may result. For instance, an overhead can be caused by frequently messages exchanging between a load balancer and a group o f machines to be load balanced. It is desirable that this overhead should be minimized as much as possible. Due to the fact that the load balancing problem is a NP-hard [7], [19] and optimal assignment strategies are NP-complete, the cost introduced in optimal assignment is not suitable for practical use. Thus, heuristic algorithms are used to reach approximately optimal solution.

Out-of-date and Up-to-date load Information In a load balancing system, i f the frequency o f information exchanging is not high enough, the load evaluating component may use out-of-date load information i n analyzing task assignment. Thus, it may lead to wrong decision in choosing target machine. On the other hand, up-to-date load information can be obtained i f system components exchange their information more frequently. Although it is more precise to use up-to-date information during analysis, the overhead introduced by frequent information updating may lead to poor system performance. Therefore,a load balancing algorithm should strike a balance between up-to-date information and overhead caused by frequent information exchange.

Herd Behaviour It is likely that a lightly loaded machine will b e chosen as a transfer target by other heavily loaded machines. It may result that all tasks are transferred t o the lightly loaded machine at a certain instance.

- 1 7 -

This phenomenon is known as herd behavior [36]. Figure 2.1 illustrate the herd behaviour. T i m e : 丁2

T i m e : T1

Busy

Busy

Status:

Sewer A

Sewer B

Status:

Seru'er C

n DDDD r

rg,„.”

Client A

Clients

Busy

Client C

Client D

. .i"1""1?" "L.-iIS" ” ”丨

.111 111 • '

4I0000C

1600»:

wm.

mm

time {mj

(a) 5 servers

(b) 6 servers

Figure 3.17: Load distribution o f round-robin with 20 clients.

performance.

3.4.3,2 Random Load Distribution In random load distribution approach, requests are distributed to server machines by the fuzzy load balancing service randomly. A s can be seen from Figure 3.18, there is an uneven distribution o f load due to thundering herd effect. Some machines are overloaded while the others are only lightly loaded.

Random Approach (5 Servers)

•Pil SOOMHz (Server 1)

Random Approach (6 Servers)

•PHI SOOMHz (Server 2) Pli 667MHz (Server 3) Pil 667MH2 (Sewer 4 ) •PIIUSOMHz (Sen/er 5)

600000

B O Q O

1000000

- P i l l 500MHz (Server 1) - P i l l 500MHz (Server 2) Plil 667MHz (Server 3) - P i l l 667MHz ( S e w - 4 1 - F l i i 450MH2 (Sewer 5i • Pill 4 5 0 M H : (Sewer 6)

2000300

1200003

Time (m^

Time(ms)

(b) 6 servers

(a) 5 servers Figure 3.18: Load distribution of random with 20 clients.

This effect causes the random load balancing algorithm behaves the worse in performance analysis of average client response time and throughput. Figure 3.18(b) shows the random distribution with 6 servers. The situation remains the same even if one extra server is added to the experiment.

3.4.3.3 Fuzzy-based Load Distribution In our approach,requests are distributed to server machine by using the fuzzy logic load balancing algorithm equipped with the prioritized round-robin algorithm. A s shown in Figure 3.19, initially the Fuzzy Approach (5 Servers)

Pill SOOMHz (Sen/er 1)

F u z z y Approach (6 Servers)

一 P i l l SOOMHz (Server 2) ,Pill 667MH2 (Sewer 3) ——PHI 667MHz (Setver 4) 一 P

丨 丨 丨 450MHz (Server 5)

Tin»(ms)

(a) 5 servers

(b) 6 servers

Figure 3.19: L o a d distribution of fuzzy approach with 20 clients.

• P I SOOMHz (Server 1) •Pill 500MHz (Sei\'er 2 ) • Pill 667MH2 (Server 3} •PII!667HM2(Sewer4) -Pill 450MHz (Sewer 5] Pill 450MH2 (Server 6)

benchmark readings o f all servers remain steady,as there is no client request. At point A,we assign a burst of client requests to Server 1 which causes a sudden j u m p in the benchmark reading. T h e effect is remedied as the fuzzy logic load balancing service routes further client requests to other servers. Similarly,a burst of client requests is assigned to Server 2 at point B. The fuzzy logic control ler again successfully balances the workload. It is noted that all the benchmark readings fluctuate within the range from 400 to 1200 ms. Comparing with the round-rob in scheme. Server 5 (450 MHz) can now maintain a load value which is similar to other servers rather than sustain a higher load value. Figure 3.19(b) shows the fuzzy-based load distribution with 6 servers. The six servers can maintain a similar load range because the more powerful machines can serve more client requests. The machines with iess processing power can now serve client requests more efficiently and shorten the overall average client response time.

L o a d Distribution Results Server Load vs Time

Server Load vs Time

>wwkoowi

Set\' , er 1 (Pill SOOMHz)

1600 -

Sen/er 2 (Pill 500MHz)

1400 -

Ser./er2(PIII50QMH2)

£C3W

Server 3 (Pill 687MHz)

IJeoJ

o o o o o o o o



71 6 t-O

o o

Server 3 (Pill 667MHz)

S e r v e d (Pill SOOMHz)

3 0 0 0 0 0 3 5 0 0 0 0 4 0 0 0 0 0 4 5 0 0 0 0 5 0 0 0 0 0 5 5 0 0 0 0 600000 6 5 0 0 0 0 7 0 0 0 0 0

400000

500000

600000

700000

800000

900000

Time (ms)

Time (ms) (a) 5 clients

(b) 1 0 clients

Server Load vsTima

Server Load v s Time • ^ S e r v e r 1 (Pill SOOMHz)

_ « > • « Server 1 (Pill SOOMHz)

Server 2 (PHI SOOMHz:! :::: Sen/er 3 (PHI 6B7MHZ)

PWOJ

< « u n )

3 6 ^ 2 (Pill SOOMHz) : - S e w e r 3 (Pill 667MHz)

J a / u a s

200000

400000

600000

Time(ms)

(c) 15 clients

800000

T

T

T

T

200000 400000 600000 800000 1000000 1200000 1400000

Time(ms)

1000000

(d) 2 0 clients

Figure 3.20: Load distribution of round-robin using 3 servers.

Server Load vs Time

Server L o a d v s T i m e

S e i v e r 1 (Pill 500MHz) ^ u v

’e r 3 (Plli 667MHz) • e r 4 ( P l l l 667MH2'I



I

rv'eQMgOMg7Mn/eg

cCDe§se叨se66se66

M ’HzJr2_

0

’er 2 (Pill SOOMHz)

100000 200000 300000 400000 500000 600000

100000 2 0 0 0 0 0 300000 4 0 0 0 0 0 5 0 0 0 0 0 6 0 0 0 0 0 Time (ms)

Time (ms)

(b) 10 clients

(a) 5 clients "Server 1 (Pill 50 圓 Hz)

Server Load vsTime Seiver 1 (Pi!l SOOMHz)

Server 3 (Pill 667MHz)

Server 3 (Pii! 667MH2j Serve!. 4 (PHI 6 S 7 M H ^

)

Server 4 (P"丨 667MHz)

Server bcn

1816^112108642

oo oo oo oo ooooo oo oo o

-Server 2 (Pill 500MHz) ^

200000

400000

600000

Time (ms) (d) 20 clients Figure 3.21: Load distribution o f round-robin using 4 servers.

,丨.Ji

! !

VSJ J(u>Ja>s

Server Load v s Time

Server Load v s Time

"•—"•"Senferl (PHI SOOMHz)



Server 1 (Pill 5uuMH;)

Server 2 (PHI SOOMHz)

Server 2 (PHI 500MH2)

Senfer3(Plj丨 5 6 7 _ z )

Server 3 (PHI 667MH2)

(PHI 667MHz)

;eiver 4 (Plli 667MH:)

(Pill 450MHz)

丨 erver 5 (Pill 450MH25



200000

厂:111111111 300000

. . J '“‘ . 400000

. I."'.'....—'.'.'.'.'..'....."...."'".......'...".、.'......HI 500000

KKTO

Time ( _

(i) 3 servers and 15

(i) 4 servers and 15

-86 -

".I...Mll.TMIj 70Q00C

6

.Im T

5

o

6

L s v r

6

s

Server Load v s Time

一-"Ser/er 1 (Pill SOOMHz] - — - S e r v e r 2 (Pill SOOMHz)

1400

——Server 4 (Pill 667MHz)

1200

120C

O O iO

^ 1000

|

800

800

fe 600

600

g

tful

^ ~ S e n / e r 1 (Pill 500MHz; Ser/er 2 (Pill 500MHz^ • • 'Seiver 3 (Pill 667MHz; p 3 r / e r 4 ( P I 667MHz: sr/er 5 (Pll 450MHz:

HOC

Servef 3 (Rll 667MHz)

400

400

200

200

300000

srverSPMSOMHz1

300000

400000

Time 1 300

nt

200 100

1520000

1570000

1620000

1670000

1720000

1770000

1820000

1870000

1920000

1970000

iSOOOO

1900000

1960000

2000000

2050000

2100000

2150000

Tine(ms)

Time (ms)

(d) 6 servers and 5

(c) 5 servers and 5

-89-

2200000

2250000

Server Load vs Time

Server Load vs Time

1600 i

- S e i \ ' e r 1 (Pill SOOMHz)

Server 1 (Pill 500MHz)

S e ^ e r 3 (Pill 667MHz)

Server 3 (Pill 667MHz)

1200

1200 •

3

300 •

I

600-

Server 4 (Pill 667MHz)

;1000

l 1000 •

3

- S e r v e r 2 (Pill SOOMHz)

140Q

Server 2 (Pl" 500MHz)

1400 •

I

300

J

i

600



400 • g.

1900000

1700000

1160000

2000000

1210000

1280000

1310000

1360000

1410000

1460000

1510000

1560000

Time (ms)

Time (ms)

(f) 4 servers and 10

(e) 3 servers and 10

Server Load vs Time 1500-.

1300.

-Server 1 (PHI SOOMHz) -Server 2 (Pill SOOMHz) Server 3 (Pill 667MH2) -SePv'er4 (Pll 667MHz) -Seiver 5 (Pill 45QMH2)

Server Load vs Time « S e w e r 1 (PHI 500MHz)

QpnP /r 9 /Pil ^(intiW^i

1100900

700

500

.113010000

1160000

1210000

1 260000

1310000

1360000

1410000

1460000

'18000000

1510000

1450000

1500000

1550000

1600000

1650000

1700000

1750000

1800000

Time _

Time (ms)

(g) 5 servers and 10

(h) 6 servers and 10

Server Load vs Time

Server Load vs Time

{t!un>lanOJ

kr^

(i) 3 servers and 15

A

m Tie (ms)

JaAJ9w

1

Jfn

?.

ir

— S e r v e r 1 {P\\\ SOOMHz) •“—"Sewer 2 (Pill SOOMHz) Sewer 3 (Pill 667MHz) — S e r v e r 4 (Plil 667MH2)

160014001200漏___200

Ser/er 1 (Plil 500MHz) -Sewer 2 (PHI SOOMHz) Sen/er 3 (Pill 667MH2)

700000

750000

800000

350000

900000

950000

1000000 1050000 1100000 1150000

Time (ms)

(j) 4 servers and 15

V

e m s

o

6

1

er

v r

s

Server Load vsTime

Server 1 (Pill SOOMHz) Se^er 2 (Pill SOOMHz) Server 3 (P 丨 丨 丨667MHz)

1400

Sewer 4 (Pill 667MH2)

1200

‘Server5 (Pill 450MHz)

? 1咖

I

>™»SeTCr1 (Pil 5 酬明 —Server 2 卩(丨丨丨 SOOMHz) 一 Sen/er 3 (Pil 657MHz) ——Sewr 4 (Pil 857MHz) Sewr 5 (Pil 450MHz) ——Server 6 (Pil 450MHz)

» 800 )

| 600 咖 200 900000 870000

Time (ms)

970000

1070000

1170000

1270000

1370000

Time (ms)

(k) 5 servers and 15

(I) 6 servers and 15

Server Load v s Time

Server Load vs Time - S e w 1 (Pill SOOMHz)

- S e r v e r 1 (Pill SOOMHz;

-Ser/er 2 (Pill SOOMHz)

Ser/er 2 (Pill SOOMHz:

Server 3 (Pill 667MH2)

•Ser/er 3 (Pill 66?MHz: - S e n / e r 4 (Pill 6S7MHz'

鄭 100000

200000

300000

400000 Time (ms)

500000

600000

700000

100000

800030

200000

300000

400000

Time (ms)

(n) 4 servers and 20

(m) 3 servers and 20

Server Load vs Time — S e t v e r

Server Load vs Time

1 (Pill SOOMHz)

Seiver 1 (PHI SOOMHz] Seiver 2 (Pill SOOMHz] Sewer 3 (PHI 667MHz; Seiver 4 (PHI 667MHz! • S e w 5 (PHI 450MHz; Setver 6 (Pill 450MH2;

—Ssn/Gr 2 (Pill SOOMHz) 1800-

Sewer 3 (Pill 667MHz)

m i n.

— S e r v e r 4 (Pill 667MH2) 一 S e r v e r 5 (Pll! 450MHzl

1400

I 1200

0*

§ 1000

500000 Time (ms)

(o) 5 servers and 20

600000

100000

300000

400000

500000

600000

Time (ms}

(p) 6 servers and 20

Figure 4.15: Load distribution of the Fuzzy Logic Based Request Redirection approach.

controller approach is more flexible than the threshold based redirection approach. It is because the threshold value is set manually based on performance data predetermined i n round-robin algorithm. I f there is a sudden increase i n client requests, the threshold value has to be adjusted accordingly. I n this approach, the fuzzy logic controller w i l l send updated service rank information to servers no matter how the system load varies. Therefore, the f u z z y logic controller approach can adapt itself to the changing o f environment.

4.5.5 Average Client Response Time and Throughput Comparison The average client response times o f six load balancing algorithms (pure f u z z y described i n chapter 3,round-robin, r a n d o m , r e q u e s t redirection, f u z z y based request redirection, a n d J a va S pa c e s) a s a f u n c t i o n o f t h e n u m b e r o f servers a r e s h o w n in F i g u r e 4.16,which illustrates t h a t t h e f u z z y - b a s e d a p p r o a c h o u t p e r f o r m s t h e o t h e r a l g o r i t h m s consistently f o r d i f f e r e n t n u m b e r o f servers. T h e a v e r a g e client r e s p o n s e t i m e o f J a v a S p a c e s - b a s e d a n d r a n d o m load b a l a n c i n g algorithm is c o m p a r a t i v e l y h i g h e r t h a n other a l g o r i t h m s u n d e r all t h e c a s e s b e c a u s e u n e v e n distribution o f load exists in t h e r a n d o m load b a l a n c i n g algorithm a n d t h e s i n g l e t h r e a d e d w o r k e r structure in t h e J a v a S p a c e s a p p r o a c h . In r a n d o m load balancing, a s e r v e r w i t h less c o m p u t i n g p o w e r c a u s e s a h i g h e r r e s p o n s e t i m e w h e n it is s u d d e n l y o v e r l o a d e d . T h i s e f f e c t deteriorates t h e overall p e r f o r m a n c e a n d c a u s e s t h e h i g h e s t r e s p o n s e t i m e . Figure 4.17 shows h o w the average throughput differs between each load balancing strategy. In this m e a s u r e m e n t , 5 t o 2 0 c l i e n t s w e r e used a n d each client generated 5 0 requests. E a c h client r e q u e s t will g e n e r a t e a computational t a s k u s i n g F i b o n a c c i f u n c t i o n . T h e e xpe rim en t is repeated 100 t i m e s f o r d i f f e r e n t n u m b e r o f servers. A s c a n b e s e e n f r o m F i g u r e 4.17,throughput increases a s t h e n u m b e r o f servers increases. A g a i n , t h e t h r o u g h p u t r e a d i n g s o f r a n d o m load balancing a l g o r i t h m a n d J a v a S p a c e s a r e w o r s e t h a n t h e o t h er f o u r a l g o r i t h m s . I n r a n d o m load balancing, it is d u e t o t h e f a c t t h a n a n o v e r l o a d e d c o m p u t i n g m a c h i n e s will lengthen t h e c o m p l e t i o n t i m e o f a t a s k a n d t h u s , r e d u c i n g t h e overall t h r o u g h p u t . In t h e J a v a S p a c e s approach, t h e p o o r t h r o u g h p u t p e r f o r m a n c e is a l s o d u e t o t h e s i n g l e t h r e a d e d design o f service o b j e c t . I f m o r e w o r k e r s a r e started in a machine,the overall t h r o u g h p u t w i l l b e i m p r o v e d . F o r t h r o u g h p u t - se n si t i v e application, r a n d o m load b a l a n c i n g a l g o r i t h m is n o t suitable. O n t h e o t h e r h a n d , t h e t h r o u g h p u t o f f u z z y - b a s e d a p p r o a c h p e r f o r m s t h e b e s t a m o n g t h e six. T h e r e a so n is t h a t o u r a p p r o a c h a s s i g n s m o r e r eq u es t s t o t h e m a c h i n e s w i t h b et t er p e r f o r m a n c e b a se d o n f u z z y a n a l y s i s . T h i s significantly r e d u c e s t h e c o m p l e t i o n t i m e o f a t a s k . S i n c e t h e t w o r e q u e s t redirection a p p r o a c h e s a c h i e v e s i m i l a r t h r o u g h p u t p e r f o r m a n c e results,

-92-

Client Response Time vs Number of Clients (3 Servers)

Client Response Timevs Number of Clients (4 Servers)

5 3 5 2

-•iRound-robin

o 2 5

^ ^

Random

Fuzzy

(uas)

o 3

(

Fuzzy

…务Round-robn i Random



o

Request redirection

Request redirection with fuzzy -•-JavaSpaces

- ^ - R e q u e s t redirection with fuzzy -•-JavaSpaces

5

Request redirection

o

10

15

20

10

Number of Clients

15

20

Number of Clients

Client Response Time vs Number of Clients (6 Servers)

i

3suoas9cr:Juaru

...i.... Round-robin

-• Round-robin

Random

Random

Request redirection

R e q u e s t redirection

Request redirection with fuzzy JavaSpaces

l-UQno

164口08 64 2 0

+Fuzzy

- 4 - Fuzzy

10

15

Number of Clients

Figure 4.16: Average response times of the clients.

20

- R e q u e s t redirection with fuzzy ^-JavaSpaces

UCDS ) 1

Throughput vs Number of Servers (10 Clients)

Throughput vs Number of Servers (5 Clients) 已 n u 7/ n i

-•-Fuzzy

…t...-. Round-robin

4 - Round-robin

Random

Random

Request redirection

Request redirection

nj

n u

(33s

6 5 4 n u n u

j.o

u _

P3qs_uy.

-f-Fuzzy

1

+

Request redirection with fuzzy +JavaSpaces

nu nu

Request redirection with fuzzy JavaSpaces

n u

Throughput vs Number of Servers (20 Clients)

Throughput vs Number of Servers (15 Clients) -•-Fuzzy

J 彳 .

w'J •] I9 U fl) 11 SiS =w n , 1z 4 5^0.8

••••s.....Round-robin z Btro.8

"“_ s

Random

U - .

0.6

Request redirection 0.2

-Fuzzy

4

0

-^--Request redirection with fuzzy -•-JavaSpaces

fo lr

Round-robin Random

0.6 Request redirection

0.4

x a 0.2 H£ 8 0

Number of Servers

- R e q u e s t redirection with fuzzy -JavaSpaces Number of Servers

Figure 4.17: Average throughput of the clients.

o n e can choose a request redirection algorithm based on its complexity and adaptability.

4.6 Conclusions In this chapter, w e h a v e described three contemporary load balancing approaches for distributed object computing systems. T h e first approach uses JavaSpaces service a s a task pool f o r servers t o get tasks f o r execution. The second approach uses a round-robin request redirection mechanism. T h e third approach uses a f u z z y decision based approach t o perform t h e request redirection. W e have implemented t h e three approaches o n a c o m m o n experimental object computing system based on Java using a number o f Pentium P C s . T h e experimental results indicated that the f u z z y based approaches are mor e robust a n d flexible, and outperform other approaches considerably.

-94-

Chapter 5 Conclusions and Future Research

5.1 Summary With the advances in computing technology, low-cost processors are readily available in the market A s the internet becomes more pervasive,, distributed processing with commodity processors becomes the trend o f computing nowadays. The quality o f service provided by a Web site can degrade significantly i f the Web site is not properly hosted. For example, clients may experience a poor quality o f service i f a web site is congested with a volume of client requests. Thus, to solve such problem,load balancing scheme are used so as to distributed client requests to server objects residing in different machine. Load balancing can be deployed at several levels: network, system,and middleware. In network level, load balancing techniques based on D N S is commonly found in the distributed Web-server architecture. DNS translates the symbolic site name (URL) t o the IP address of one server. Based on this principle, client requests can be distributed to machines with different IP addresses but with the same URL. In system level, a Distributed Operating System provides load balancing support through clustering, process migration, scheduling in kernel level. In middleware level,load balancing mechanism can be implemented based on middleware standard features. For example, middlewarebased load balancing can be applied in CORBA using Object Request Brokers. We have proposed an algorithm f o r middleware level load balancing which is based on Jini. We have applied control theory in solving the load balancing problem. Since there exists a wide variety of uncertainties in distributed computing network, fuzzy logic approach is adopted in dealing with the load balancing problem. Our algorithm is based on fuzzy logic that it takes uncertain parameters into account. Based on the fuzzy rules established by observing, experimenting, and tuning, experiment shows that the fuzzy logic controller managed t o balance the load level across servers with different processing capabilities. To evaluate the performance of the proposed load distribution strategies, w e have implemented an

-95-

experimental system in Jini environment. The system consists o f machines with different processing power so as to demonstrate the heterogeneity in real life situation. We have compared our algorithm with other approaches such as random algorithm, round-robin algorithm,JavaSpaces-based algorithm, and request redirection algorithm. The performance results have shown that each load balancing algorithm has its own load distribution characteristic. In random load distribution algorithm, client requests are randomly distributed to servers. Some servers may be idle whereas other may be overloaded. Uneven load distribution may result. In round-robin algorithm, each server accepts the same amount of requests. The performance of round-robin algorithm will be degraded if heterogeneous servers rather than homogeneous servers are used. In JavaSpaces-based approach, the JavaSpaces service can perform natural load balancing such that each server can handle a client request as it become idle. Because the server processes cannot handle all client requests at once, some client requests may be temporary stored in JavaSpaces service pending the processing by server processes. This prolongs the client response time. It is recommended that sufficient server processes must be started to minimize the client response time and maximize server throughput. In request redirection approach, load redirection mechanism can be initiated if load level exceeds certain threshold value. The algorithm efficiently balances server workload if the threshold value is properly chosen. However, it lacks flexibility that the threshold value need to be readjusted if the volume of client request changes. The fuzzy logic load balancing algorithm outperforms other algorithms in terms of client response time and system throughput. The algorithm manages to balance load under different number of clients and servers situation. To evaluate the usefulness of applying fuzzy logic in decision making, we have added a fuzzy logic controller into the request redirection algorithm. The results shows that the redirection approach based on fuzzy analysis outperforms the original one using threshold in terms of quality of service and flexibility.

5.2 Future Research Directions This research focuses on load balancing client request in distributed object computing environment. In particular, we address stateless server machines and centralized load balancer design. The following future works can be taken to enhance the existing load balancing scheme. • Decentralized load balancing approach: The load balancing algorithm addressed in this research is based on a centralized load balancer model. The load balancer is equipped with a fuzzy logic controller. The fuzzy logic controller analyses system parameters and is responsible for making request routing decision. Thus it acts as a single point of entry that it accepts all client requests and routes those requests to the desired servers. The advantage of using this design is that it can ensure no multiple simultaneous requests g o to the same server. However, such a design .may

-96-

also introduces a single point of failure, which can impede system reliability. The solution to this problem is to start up more than one load balancer. Several load balancers can cooperate to handle different amount of client requests. These load balancers should share a consistent global view such that a server machine is not realized as busy by one load balancer while another load balancer considers the server machine as idle. • Stateful server machine: Based on the experience gained by load balancing stateless server machine, one of the future research direction is t o apply load balancing in stateful server machine. One of the challenging issue in load balancing stateful server is to maintain a consistent state between server machines. Maintaining consistent state requires a systematic state consistency protocol which coordinates the update of state information between server machines. However, state consistency protocol may introduce additional load into the system being load balanced and performance will be degraded if the protocol is not properly designed. • Exploring the effectiveness of adopting other system parameters: In our load balancing algorithm, the fuzzy logic load balancing algorithm takes the system parameters such as server load and remote method invocation time so as to analyse the load balancing decision. The choice of the system parameters is based on human intuition and the algorithm performs reasonably well in balancing the system workload. It would be an interesting research issue to explore other system parameters to see their effectiveness in tackling the load balancing problem. • Design of membership graphs: We design our membership graphs based on experimental approach. In our future work, we would like to explore other means such as theoretical and mathematical approaches to optimize our membership graphs. • Exploring the performance of adopting other computing platform: The computing platform used in this research is based on Java RMI. Other platforms such as CORBA and DCOM should be used to evaluate the performance of the proposed algorithm in the future. • Standardized tool to evaluate different load balancing algorithms in Jini: It is essential to establish a performance evaluation tool that is suitable for Jini environment. Such a tool can be used for simulating behaviours which may occur in Jini Environment. For example, the tool may contains load monitoring component and the component that can simulating client requests generation based on the statistics collected in real user environment. If such a tools can be standardized, different load balancing algorithms can be built and evaluated based on the benchmark. • Scalability issue: We implement our load balancing algorithm in a real Jini computing environment. The experimental result shows encouraging results in our experimental test bed which consists o f t e n server and client machines. Due to the resource limitation in this research, the scalability of such a proposed load balancing algorithm for hundreds or thousands of

machines is questionable. Testing the scalability for large number of server machines is a future research direction. However, since more than one load balancers can be started in a Jini domain, the number o f load balancer can be increased as the number of servers machine increases. Thus we believe that our proposed algorithm can scale well as the system grows.

References ]

A Detailed Comparison o f C O R B A , D C O M and Java/RMI, http://www.execpc.com/〜gopalan/ misc/compare.html K . Abini, "Fuzzy Decision Making for Load Balancing in a Distributed System,” Proc. 36th Midwest Sym. Circuits and Systems, pp. 500—502,1993. I. Ahmad and A . Ghafoor,“Semi-Distributed Load Balancing for Massively Parallel Multicomputer Systems," IEEE Trans. Software Engineering, vol. 17,no. 10,pp. 987—1004,Oct. 1991.

4]

S. Ahuja,N. J. Carrier。,and D. H . Gelernter, "Matching Language and Hardware for Parallel Computation in the Linda Machine," IEEE Trans. Computers, vol. 37,no. 8, pp. 921—929,Aug. 1988.

:5]

T. Barth, G . Flender, B. Freisleben, and F. Thilo, “Load Distribution in a C O R B A Environment," Proc. Intl Sym. Distributed Objects and Applications

:6]

V. Cardellini, M. Colajanni,and P. S. Yu, "Dynamic Load Balancing on Web-Server Systems,” Internet Computing, May/June 1999, pp. 28—39.

:7]

T. L. Casavant and J. G. Kuhl, “A Taxonomy o f Scheduling In General-Purpose Distributed Computing Systems, IEEE Trans. Software Engineering, vol. 14,no. 2, pp. 141-154, Feb. 1988.

"8]

L.-S. Cheung, Load Balancing in Distributed Object Computing Systems, M.Phil. Thesis, Department of Electrical and Electronic Engineering, The University of H o n g Kong, May 2001 •

:9]

C. W . Cheong and V . Ramachandran, “Genetic Based W e b Cluster Dynamic Load Balancing in Fuzzy Environment," Proc. 4th Intl Conf. High Performance Computing in the Asia-Pacific Region, vol. 2, pp. 714—719, 2000.

:10]

P. Chulhye and J. G . Kuhl, " A Fuzzy-Based Distributed Load Balancing Algorithm for Large Distributed Systems,” Proc. 2nd Int 7. Sym. Autonomous Decentralized Systems, pp. 266-273, Apr. 1995.

:11]

A. Corradi, L. Leonardi, and F. Zambonelli,“Diffusive Load-Balancing Policies for Dynamic Applications," Concurrency^ pp. 2 2 - 3 1 , Jan.-Mar. 1999.

•12]

G. Cybenko, “Dynamic Load Balancing f o r Distributed Memory Multiprocessors," Journal of Parallel and Distributed Computing, vol. 7,pp. 2 7 9 - 3 0 1 , 1989.

"13]

14]

E. Damiani, “An Intelligent Load Distribution System f o r CORBA-Compliant Distributed Environments," Proc. IEEE Int 7. Conf. Fuzzy Systems, vol. 1,pp. 3 3 1 - 3 3 6 , 1999. M, V. Devarakonda and R . K. Iyer,"Predictability o f Process Resource Usage: A MeasurementBased Study on UNIX,,,IEEE Trans, Software Engineering, vol. 15,no. 12,pp. 1579-1586,Dec. 1989.

.15]

S. Dierkes, “Load Balancing with a Fuzzy-Decision Algorithm,,,Information Sciences, vol. 97, Issue 1-2, Mar. 1997.

[16]

Distributed

Component

Object

Model

(DCOM),

DCOM.asp

-99-

http://www.microsoft.com/com/tech/

[17]

D . L , Eager, E. D . Lazowska, and J. Zahorjan, “A Comparison of Receiver-Initiated and SenderInitiated Adaptive Load Sharing,” Performance Evaluation, vol. 6,pp. 53-68,1986.

[18]

E. Freeman, S. Hupfer, and K . Arnold, JavaSpaces: Principles, Patterns, and Practice, AddisonWesley,1999.

[19]

M. R. Garey and D . S. Johnson, Computers and Intractability:

A Guide to the Theory of NP-

Completeness, W . H . Freeman and Company, 1979. [20]

K. K . Goswami, M . Devarakonda, and R. K. Iyer, “Prediction-Based Dynamic Load-Sharing Heuristics," IEEE Trans. Parallel and Distributed Systems, vol. 4,no. 6, pp. 638—648,June 1993.

[21]

S. Y. Ho and J. H. Chen, " A GA-based Systematic Reasoning Approach for Solving Traveling Salesman Problems Using an Orthogonal Array Crossover,'' Proc. 4th Intl Conf. High Performance Computing in the Asia-Pacific Region, vol. 2,pp.659-663, May. 2000.

[22]

Hosta White Paper, Concept Technologies Ltd., 2000.

[23]

C.-J. Hou and K. G. Shin,"Implementation of Decentralized Load Sharing in Networked Workstations Using the Condor Package,,,Journal of Parallel and Distributed Computing, vol. 40,pp. 173—184, 1997.

[24]

I B M ' s TSpaces, h t t p : / / w w w . a l m a d e n . i b m . c o m / c s / T S p a c e s .

[25]

Jini Connection Technology, Jini Technology Core Platform Specification, h t t p : / / www. s u n . com/ jini / s p e c s / j i n i 1—1s p e c .h t m l .

[26]

Jini Connection Technology,JavaSpaces Service Specification, h t t p : / / w w w . s u n . c o m / j i n i / s p e c s / j i n i 1 — 1 s p e c .h t m l .

[27] W . Keith, Core Jini, Prentice Hall, 1999. [28]

B. Kosko, Neural Networks and Fuzzy Systems: A Dynamical Intelligence, Prentice Hall, N e w Jersey, 1992.

Systems Approach

to Machine

[29]

O. Kremien, J. Kramer, and J,Magee, “ Scalable,Adaptive Load Sharing for Distributed systems," IEEE Parallel & Distributed Technology: Systems & Applications, vol. 1,issue. 3, Aug. 1993.

[30]

P. Krueger and N . G. Shivaratri,"Adaptive Location Policies for Global Scheduling,” IEEE Trans. Software Engineering, vol. 20,no. 6,pp. 432-444, June 1994.

[31]

T. Kunz, "The Influence of Different Workload Descriptions on a Heuristic Load Balancing Scheme," IEEE Trans. Software Engineering

[32] A . Leff and P. S, Yu, " A Performance Study of Robust Distributed Load Sharing Strategies,” IEEE Trans. Parallel and Distributed Systems, vol. 5,no. 12,pp. 1286-1301, Dec. 1994. [33]

ML Lindermeier, “Load Management for Distributed Object-oriented Environments," Proc. Intl Sym. Distrbuted Object and Applications, pp. 59-68, 2000.

[34]

P. Mehra and B. Wah,“Synthetic Workload Generation for Load-Balancing Experiments,” IEEE Parallel and Distributed Technology, pp. 4-19,1995.

[35] R . Mirchandaney, D . Towsley, and JL A . Stankovic, “Analysis of the Effects o f Delays on Load Sharing," IEEE Trans. Computers, vol. 38,no. 11,pp. 1513-1525,Nov. 1989. [36]

M . Mitzenmacher, “Ho w Useful Is Old Information?," IEEE Trans. Parallel and Distributed -100-

Systems, [37]

R. Nelson, D. Towsley, and A . N . Tantawi,“ Performance Analysis o f Parallel Processing Systems,” IEEE Trans. Software Engineering

[38]

OpenSpaces,h t t p : / / o p e n s p a c e s .e x o l a b • o r g / .

[39]

K. Ramamritham, J. Stankovic, and W . Zhao, "Distributed Scheduling of Tasks with Deadlines and Resource Requirements," IEEE Trans. Computers, vol. 38,issue 9,Aug. 1989.

[40]

R. Riedl and L. Richter, “Classification of Load Distribution Algorithms," Proc. 4th Euromicro Workshop, pp. 404-413, 1996

[41]

D. C. Schmidt, "Distributed Object Computing,” IEEE Communications issue. 2, pp. 42-44, Feb. 1997

[42]

T. Schnekenburger, “Load Balancing in C O R B A : A Survey of Concepts, Patterns,and Techniques,” The Journal of Supercomputing, vol. 15, no. 2,pp. 141-161, Feb. 2000.

[43]

T. Schnekenburger and G. Rackl, "Implementing Dynamic Load Distribution Strategies with Orbix," Intl Conf. Parallel and Distributed Processing Techniques and Application (PDPTA '97), Las Vegas, Nevada, vol. 2, pp. 996-1005, 1997

[44]

A. Shaout and P. McAuliffe,“Job Scheduling Using Fuzzy Load Balancing in Distributed System,,,Electronics Letters, vol. 34,no. 20,pp. 1983-1985, Oct. 1998.

Magazine,

vol. 35,

[45] N . G. Shivaratri, P. Krueger,and M . Singhal,“Load Distributing f o r Locally Distributed Systems," Computer, vol. 25, no. 12, pp. 3 3 - 4 4 , Dec. 1992. [46]

A . Svensson, "History, an Intelligent Load Sharing Filter,” Proc. 10th Int. Conf. Distributed Comput. Syst., pp. 546-553, May. 1990.

[47]

The Object Management Group, http://www.omg.org/

[48]

H. Unger and T. Bohme, "A Fuzzy Based Load Sharing Mechanism f o r Distributed Systems,” Technical Report, International Computer Science Institute,Aug. 1998.

[49]

J. Watts and S. Taylor, “A Practical Approach t o Dynamic Load Balancing," IEEE Trans. Parallel and Distributed Systems, vol. 9,no. 3,pp. 2 3 5 - 2 4 8 , Mar. 1998.

[50]

W . J. Wolfe, “Summary of the fuzzy Hopfield-Tank T S P model,,,Intl Joint Conf. Neural Networks, vol. 6,pp. 4228-4231, July. 1999.

[51 ] K , W. Wong, “Fuzzy Routing Control of Service Request Messages in a n Individual Computing Environment," Proc. ACM Sym, Applied Computing, pp. 548-551, 1995. [52]

Y. Zhang, H . Kameda, and K. Shimizu, “Adaptive Bidding L o a d Balancing Algorithms in Heterogeneous Distributed Systems,,,Proc, 2nd Intl. Workshop MASCOTS'94, 1994.

-101 -

pp. 250-254,

Vita ]Q77

.

Born in Hong Kong

1999

B . Sc. (Eng.) in Electrical and Electronic Engineering, The University o f Hong Kong

1999—Present

MPhiL candidate,The University of Hong Kong

Publications Journal Articles: [1]

Y

K

'

乂讀,“A N



^

[2]

e w

Fuzz

? D e c i s i o n Based Load Balancing System for

,,,

Y

:

? S t n b U t e d 〇 b j e C Ct Engineering.

K

. K W O k ' “ A Q u a n t i t a t i v Ce — s o n of Load Balancing Schemes for — g Systems;' submitted to IEEE Transactions on Software

o

Articles in Refereed Conferences Proceedings: C1]

C o t n ^ T 1 ? _ Y : K . K W O k 5叩 ― L O a d 况 就 祂 办 咖 i n ^ Distributed Object fomputmg E n v i r o n m e n t , ' ? ; ^ ^ of the IASTED International Conference on ipnlied I n —

[2]

•H

g

=

, " =

A

/

U Z Z y

l

A p P r 0 a C h t 0 L o a dB a l

s

咖 - i n a Distributed Object Coniputin, ^E/ACM International Symposium on Cluster C

t

dthe Gnd

C3]

“ 八 如 办 L O a d B a l a n c i n g Service forNetwork Computing Based :rocee ings of European Conference on parallel computing (EURO-P4R' W01) Manchester,United Kingdom, pp. 183-190 August 2001. 人

[4]

C h e

" n § 耐,Y,K.

,“丁he— g n

Kwok

0 f t h e

(IC^P^OoTvll ( I L P P 2

[

5

]

=

;

=

^

and Performance of an Intelligent Jini Load Mernational

=

=

Conference on Parallel Processing

=

=

=



置’夠,chieag。,nii喊



*

* /

f:.

-102-



Suggest Documents