"JAVA Server Reliability in the Presence of Failures" by Rich Coe

Date of Award

Spring 2017

Document Type

Thesis

Degree Name

Master of Science (MS)

Department

Mathematics, Statistics and Computer Science

First Advisor

Kaczmarek, Thomas

Second Advisor

Brylow, Dennis

Third Advisor

Madiraju, Praveen

Abstract

A design for the separation of a server interface and work processing. Numerous sources, Tanenbaum (Tanenbaum Modern Operating Systems, 493), Goscinski (Goscinski Distributed operating systems, 203), and Birman (Birman Reliable distributed systems, 265), all discuss the concept of Two-Phase Commit, where a coordinator directs one or more processes to perform a transaction. If the transaction or any of the processes fail, the coordinator can decide how to proceed by either retrying or aborting the request. The popular web browser Chrome utilizes a separate process for each tab displayed. Should the rendering and display of a web page cause a crash, the Chrome application itself does not. The implementation leads to a search of available Java IPC (Inter-process communication) methods, presenting a review of Java IPC implementations found. The implementation of IPC using JGroups is shown, including a code example. With results showing a 36 percent reduction in memory usage and a four times improvement in receipt and storage of DICOM C-Store images.

COinS