Mitosis: A High Performance, Scalable Virtual Memory System
Many modern applications use virtual memory APIs introduced in the 1980's in unforeseen ways, stressing the underlying data structures and exposing the old designs to a variety of performance and scalability problems. The two-decade-old data structures show their age when, for instance, a Web server maps thousands of files or a garbage collector plays memory protection tricks. Observing how today's applications use the VM facilities, we came up with a set of requirements that any VM implementation should follow in order to efficiently support modern workloads. Current VM systems completely neglect one of these requirements, and only partially fulfill a second one. In this paper we propose a design that meet all of the requirements, and present preliminary performance results. We also describe the future second stage of this project: the use of persistent data structures, that is, structures that are shared on a copy-on-write way. Current VM systems use copy-on-write techniques on physical memory to reduce the overhead of forking, but the semantics of fork suggest amore aggressive approach: use copy-on-write to share the data structures as well. Persistence presents a number of advantages and solves in a uniform way additional problems that current systems have solved only partially and in an ad-hoc manner. We describe how we plan to extend our implementation to include persistence.