Event image

Abstract:

Many Java applications run over multiple JVMs, letting them scale to use resources across multiple physical machines, and allowing decomposition of software into multiple interacting services. Examples include popular frameworks such as Hadoop and Spark.

In this talk, we illustrate how the performance of GC within individual VMs can have a significant impact on a distributed application as a whole: GC behavior can decrease throughput for batch-style analytics
applications, and can cause high tail-latencies for interactive jobs.

We argue that coordination between VMs can mitigate these problems, enabled by the low communication latency possible on modern interconnects. We provide initial results from a prototype system, illustrating how we can reduce the impact of GC pauses in a batch workload, and suggesting how we will also be able to reduce the extent to which the GC causes “stragglers” in interactive settings.

Bio (from Oracle’s web pages):

I am at Oracle Labs in Cambridge, UK. My research interests span multiple layers of the stack. I am particularly interested in parallel programming, OS / runtime-system interaction, and opportunities for
specialized architecture support for particular workloads.

Right now I am looking at OS and VM support for distributed runtime systems—particularly in the setting of distributed graph algorithms running on clusters. I collaborate with the Scalable Synchronization
group in Burlington, MA, USA, and with the Green-Marl project in CA, USA.

Prior to Oracle, my recent projects have included language support for asynchronous message passing in the Barrelfish research OS, and ideas for architecture support for parts of language runtime systems (e.g.,
synchronization and GC). I have also worked extensively on transactional memory (TM), most recently on applying ideas learnt from STM systems to designing an abstraction for low-cost multi-word atomic updates for use in building shared-memory data structures. I was on the faculty of the University of Cambridge, and completed a PhD on providing application programmers with safe control over low-level features of the JVM
(dynamic complication, object placement, thread scheduling).