Efficient communication support for distributed transaction processing

Luis Enrique Mafla-Gallegos, Purdue University

Abstract

In this thesis, we prove that well designed communication support can make the use of address spaces and high-level interfaces a practical solution to the structuring problems of complex distributed transaction processing systems. Such support includes efficient local interprocess communication, transaction-oriented multicasting and naming schemes, and specialized scheduling and synchronization policies. We take the implementation and experimental approach to prove our thesis. First, we identify the communication needs in a distributed transaction processing system. Second, we design a new communication facility that addresses those needs. Finally, we implement a prototype of the new communication facility and measure its impact on transaction processing. The new communication facility features shared-memory ports, a simple naming scheme, and a transaction-oriented multicasting mechanism. Local and remote communication is through ports. Ports can be accessed directly by the kernel and by user-level processes. The naming schemes used for the application and network levels avoids the use of name-resolution protocols. The multicasting mechanism is CPU and network efficient. The new communication facility reduces kernel overhead during transaction processing by up to 70%. To conduct some of the experiments in this thesis, we developed a system called Push. It allows the modification of operating system services at run time. Push is based on an extension language interpreted within the kernel. It enables experimentation that would be difficult and time-consuming in current-environments. The overhead of the Push implementation can be factored out to give a good estimate of the performance of a a native kernel implementation. We have used Push to implement kernel-resident communication services. A multicasting implementation in Push has an inherent overhead of 0.32 milliseconds per additional site. The corresponding overhead for a direct kernel-level implementation is 0.15 milliseconds and for a user-level implementation 0.57 milliseconds.

Degree

Ph.D.

Advisors

Bhargava, Purdue University.

Subject Area

Computer science

Off-Campus Purdue Users:
To access this dissertation, please log in to our
proxy server
.

Share

COinS