Design and Implementation of High Performance and Availability Java RMI Server Group

Tianjing Xu University of Auckland, Auckland, New Zealand [email protected]

1. Introduction Nowadays, providing high performance and availability in a distributed system becomes increasingly important.[1] Normally, when the clients get a relatively big and challenging problem and then perform the Remote Method Invocation on the compute engine object that is exported by one JAVA RMI (JRMI) server, it will take a long time for the client to wait for the final result return from the JRMI server. Moreover, during the client’s waiting time, the only JRMI server may crash or perform very slowly, so the server is a single point failure and represents a potential bottleneck. In this scenario, this kind of distributed system often provides low performance and limited availability. In order to attain higher performance and availability, it may be possible to use a JRMI server group that can cooperate to fulfill the complex computation. The remainder of this proposal will examine motivation for the project, the project architecture and associated details.

2. Relevant Work In the Aroma System[2], the system implements several server replicas that execute the same invocation from the client and do the same computation and return a response. The client accepts the first response it receives, and discards the remaining identical response. Thus, the occurrence of a fault at one replica server is masked by the continued operation of other replicas. The Aroma system has different objectives to this project, but the theory enlightens me to focus on distributed computation. In addition, to build such a system, reliable multicast communication, grid computing such as seti@home and P2P computing should be researched.

3. Proposed Work The aim of this project is to design and implement a high performance and availability JRMI server group to solve the problems that were mentioned before. To do this, the RMI interceptor on the client machine should intercept the RMI invocation and then do a UDP reliable multicast, send the RMI invocation to every “Splitter” server group member. Every server group can keep the RMI invocation and divide the big computation task into several small parts, but the MASTER split server can do more work than those slave splitter servers. When there are too many invocations that come from different client machine, the MASTER server can schedule the division task to another slave splitter server according to the current load balancing in the server group. After the big computation task has been divided, the 1

splitter server will send those small computation partial tasks to several compute engine servants who holds only a compute engine object to compute a task. After the compute servants have finished their job, they will send the partial result back to the splitter server who sends the task to them. Finally, the splitter server will gather those part results and send the final result to the client machine. This server group can work concurrently to solve different parts of a problem, which can improve the efficiency of the whole system. In addition, to achieve high availability and scalability, the splitter server group should provide a muti-machine error detection mechanism [1] to monitor every member inside the group. Thus, when error happens, the server group can actively configure themselves to continue the computation without being detected by client machine. Let me take a scenario for example, in the splitter server group, there is a master node who coordinates incoming invocations and distributes them to several other splitter servers, when this master node fails, another splitter server can take over the task on the faulty server and coordinate the splitter server group. Architecture and Environment This project will entail developing a JRMI server group. The client-side software, generating JRMI invocations, will run in a machine running a Windows XP professional operating system. The server-side software, processing JRMI invocations from client side, will run in several machines running Windows XP professional as well. Java language is selected to design client-side and server-side software. The high performance and availability JRMI server group is a group-based middleware, which can cooperate together to fulfill a heavy workload efficiently. Figure 1 displays the architecture of this environment. Splitter server group Client Object 1

Return final result

JVM

Compute Servants Master Splitter Server

W1 JVM

Stub

W3

Slave Splitter Server

JRMI Interceptor

W2

W4 JVM

W5 Client Object 2

W6

JVM

Return final result

Slave Splitter Server

W7 JVM

W8

Figure 1: The basic architecture of JRMI server group

2

Implementation Issues and Challenges To implement such a JRMI server group, several interesting and challenging issues need to be addressed. The first issue is to intercept the RMI invocation in client side, and then multicast the invocation to every splitter server. Challenges of this issue are: 1. How to intercept a RMI invocation in client side? 2. How to create a reliable multicast? The second issue is to divide the computation in the splitter server. To achieve the division for the whole computation, every compute servant group member has a unique group ID; the splitter server will divide the problem into several parts according to the group ID and send the partial computation task to those selected servants. Those compute servants can execute same compute code but with different parameters. The third issue, which is the most challenging issue in this project, is to avoid bottleneck and single point failure of a single server. There are several challenges related to this issue. First of all, how does the system avoid the bottleneck when the number of clients is growing? A possible solution to this problem is that the master splitter server receives RMI invocations from every server, but it will redirect these invocations to some other slave splitter servers. The client can interact with that slave splitter server directly. Second of all, how does the splitter server group member detect a very slow or dead splitter server? A possible solution to this problem is to implement a heartbeat technique in multi-machine environment.[2] Finally, when the master splitter server is down, how do those remaining servers configure the server group? To avoid this problem, an election algorithm should be implemented to select a new master server when the original master server is down. The peer-to-peer technique might be considered to solve this problem as well.[3] The fourth issue is to do enough experiments to test this system after the system has been developed. Deliverables This project will produce a JRMI server group middleware and the client-side software to achieve high performance and availability. In addition, a detailed research report and thesis will be generated.

Please check the Msc Project Time Line Gantt Chart (Figure 2).

3

Figure 2 Msc Project Time Line Task 1. Related topics are: 1. JAVA RMI specification. 2. JAVA RMI interceptors. 3. Reliable multicast communication. 4. Election algorithms. 5. Distributed computation. 6. Peer-to-Peer computation. Task 2. Related works are: 1. Design and test the interceptor on the client side. 2. Design reliable multicast from client side to server side. 3. Manipulate the remote invocation. Task 3. Related works are: 1. Design the splitter algorithm. 2. Design the algorithm for the master node to schedule the task to other nodes. 3. Design the error detection algorithm to detect errors in the splitter server group. 4. Design the election algorithm to handle the problem when the master node does not work. Task 4. Related works are: 1. Deploy the compute engine object onto the ALLOY system. 2. Design the interaction between splitter server and these compute engine. Task 5. Related works are: 1. Test an application, such as a huge computation on this system. 2. Test the schedule algorithm on the master splitter server. 3. Test the error detection mechanism. 4. Test the election mechanism. 5. Evaluate the system performance.

4

Important dates are: ID 1 2 3 4 5 6

Date (dd/mm/yyyy) 31/05/2006 01/06/2006 15/09/2006 30/09/2006 01/10/2006 10/02/2007

Task Literature review complete. Begin to design and implement the system. The end of the design and implementation of the system. The end of the test and evaluation of the system. Begin to write the research report and Msc thesis. Submit the final thesis.

Conclusion When the computation is too heavy and some errors happens, the single JRMI server will perform very poor and the client can detect these errors, which violate the transparency and availability of the distributed system. In this project, a high performance and availability JRMI server group is designed and implemented in this project to fulfill the computation in parallel and solve the single point failure problem in server side automatically. The main contribution of this project is to implement a distributed system to perform parallel computation to promote the efficiency and fault-tolerance of a distributed system.

References [1] Z.Hou, Y.Huang, S.Zheng, X.Dong and B.Wang. “Design and Implementation of Heartbeat in Multi-machine Environment.” Advanced Information Networking and Applications, 2003. AINA 2003. 17th International Conference on 27-29 March 2003, Pages: 583-586. [2] Narasimhan, N., Moser, L.E. and Melliar-Smith, P.M. “Transparent consistent replication of Java RMI objects.” Distributed Objects and Applications, 2000. Proceedings. DOA '00. International Symposium on 21-23 Sept. 2000, Pages: 17-26 [3] Tianying Chang;Aharnad,M.; "GT-P2PRMI:improving middleware performance using peer-to-peer service replication." Distributed Computing Systems, 2004. FTDCS 2004. Proceedings. 10th IEEE International Workshop on Future Trends of 26-28 May 2004,Pages: 172-177.

5

Design and Implementation of High Performance and Availability Java ...

compute engine object that is exported by one JAVA RMI (JRMI) server, it will take .... Test an application, such as a huge computation on this system. 2. Test the ...

51KB Sizes 2 Downloads 354 Views

Recommend Documents

Design and Implementation of High Performance and Availability Java ...
compute engine object that is exported by one JAVA RMI (JRMI) server, it will take ... addition, to build such a system, reliable multicast communication, grid ...

design and implementation of a high spatial resolution remote sensing ...
Therefore, the object-oriented image analysis for extraction of information from remote sensing ... Data Science Journal, Volume 6, Supplement, 4 August 2007.

design and implementation of a high spatial resolution remote sensing ...
Aug 4, 2007 - 3College of Resources Science and Technology, Beijing Normal University, Xinjiekou Outer St. 19th, Haidian ..... 02JJBY005), and the Research Foundation of the Education ... Photogrammetric Record 20(110): 162-171.

design and implementation of a high spatial resolution remote sensing ...
Aug 4, 2007 - 3College of Resources Science and Technology, Beijing Normal University, ..... 02JJBY005), and the Research Foundation of the Education.

Design and implementation of Interactive ...
Processing can be deployed within the development environment, in Java projects, as well as in HTML/JSP pages in tags. For web pages integration, processing.js extension is needed. Its main purpose is to translate the whole sketch into the Javascrip

Resource Availability Based Performance Benchmarking of Virtual ...
Download. Connect more apps... Try one of the apps below to open or edit this item. Resource Availability Based Performance Benchmarking of Virtual Machine Migrations.pdf. Resource Availability Based Performance Benchmarking of ...

Implementation and Performance Evaluation Issues of Privacy Policies ...
In this paper we study about social network theory and privacy challenges which affects a secure range of ... In recent years online social networking has moved from niche phenomenon to mass adoption. The rapid .... OSN users are leveraged by governm

Implementation and Performance Evaluation Issues of Privacy Policies ...
In this paper we study about social network theory and privacy challenges which affects ... applications, such as recommender systems, email filtering, defending ...

Design, Construction and Performance Test of ...
Table 2 Data for single effect Li-Br/water cooling system. Point h. (kJ/kg) m ..... condition. From the above graphical representation it can be seen that the amount ...

Implementation and performance evaluation of TeleMIP - IEEE Xplore
Implementation and Performance Evaluation of. TeleMIP. Kaushik Chakraborty, kauchaks @ glue.umd.edu. Department of Electrical and Computer Engineering,.

A High-availability and Fault-tolerant Distributed Data Management ...
reliable properties. HDFS is a special distributed file system ... the SQL style commands to perform map-reduce jobs. With. this tool ... A High-availability and Fault-tolerant Distributed Data Management Platform for Smart Grid Applications.pdf.

High Performance RDMA-Based MPI Implementation ...
we improve performance by reducing the time for transfer- ring control .... Data. Finish. Rendezvous. Eager Protocol. Send. Receive. Eager Data. Figure 2: MPI Eager and Rendezvous Protocols. When we are transferring large data buffers, it is bene- ..

The microstructure, high performance magnetic hardness and ...
Electron diffraction analysis also indicates that the Co atoms together with Fe atoms form the ..... [7] Lee D, Hilton J S, Liu S, Zhang Y, Hadjipanayis G C and.

DESIGNING HIGH PERFORMANCE AND SCALABLE ...
high performance computing environments by clustering , which combines the ... multiple transport services, hardware multicast, communication management ...

Page 1 Programming Languages Design and Implementation ...
Include. C. ) software simulation. : (. ) .... software simulation. (. ). 24 я я я ...... SiP j i. C. SB. SA. S end i output y output xx j begin integer j char y integer. xP ... Global param begin param integer param. SuB procedure. List array. In

Design and Implementation Statewide Pandemic Triage Line.pdf ...
Page 3 of 9. Design and Implementation Statewide Pandemic Triage Line.pdf. Design and Implementation Statewide Pandemic Triage Line.pdf. Open. Extract.

Design and implementation of Interactive visualization of GHSOM ...
presented the GHSOM (Growing Hierarchical Self Organizing Map) algorithm, which is an extension of the standard ... frequently labeled as text mining) is in comparison with classic methods of knowledge discovery in .... Portal provides a coherent sys