Virtual memory alternatives for transaction buffer management in a single-level store
McNamee, Dylan James, 1966-
MetadataShow full item record
This dissertation addresses a key issue in the efficient execution of transaction systems in shared environments. Until recently, transaction systems typically ran on dedicated database server machines. Transaction systems are increasingly popular beyond the database domain, and thus are often run outside of the dedicated server environment: on client machines, personal computers on user desktops, or multi-use enterprise servers. The key difference between these environments is that server machines are dedicated to running one application (e.g., a database server) in isolation, while in the other environments the machine is shared by multiple applications (e.g., word processors, email programs, web browsers, and applications that use transactions). In these latter environments, the transaction system needs to cooperate with the operating system to effectively share the resources of the machine with all of the applications on the machine.In this dissertation, we first describe a space of trade-offs between transaction performance in a multiprogrammed environment and the required degree of customized operating system support. We argue that the current alternatives represent the two possible extremes: poor performance with no additional support required, and excellent performance with extensive operating system support required.Second, we present a new point in the space of trade-offs that is between these extremes. This technique improves performance over current practice by utilizing existing operating system facilities to integrate transaction buffer management with operating system virtual memory management.Third, we describe an implementation of the new approach in a commercial operating system, Digital Unix, running on AlphaStation 250 workstations. We also present two more systems, built on the same platform, that are representative of the two existing alternatives. The implementation of the three systems on an identical platform enables, for the first time, a fair evaluation of the full spectrum of degrees of virtual memory support for transaction buffer management.We conclude that current transaction buffer management designs perform poorly in the increasingly common memory-competitive environments. We argue that this poor performance is the result of fundamental structural decisions. We lend evidence to this argument by demonstrating significant performance improvements in a restructured transaction buffer management system that uses existing operating systems facilities. Finally, we demonstrate prototype implementations of transaction support that will be available in future extensible operating systems that provide further performance improvements.