Many widely used, latency sensitive, data-parallel distributed systems, such as HDFS, Hive, and Spark choose to use the Java Virtual Machine (JVM), despite debate on the overhead of doing so. This thesis analyzes the extent and causes of the JVM performance overhead in the above mentioned systems. Surprisingly, we find that the warm-up overhead is frequently the bottleneck, taking 33% of execution time for a 1GB HDFS read, and an average of 21 seconds for Spark queries. The findings on JVM warm-up overhead reveal a contradiction between the principle of parallelization, i.e., speeding up long running jobs by parallelizing them into short tasks, and amortizing JVM warm-up overhead through long tasks. We solve this problem by designing HotTu...
Virtual machines (VMs) are software systems that provide execution environments for applications. Be...
Today, a vast majority of big data processing platforms are implemented in JVM-based languages such ...
Safe languages provide programming abstractions, like type and memory safety, to improve programmer ...
Many widely used, latency sensitive, data-parallel distributed systems, such as HDFS, Hive, and Spar...
In this paper, we show the energy efficiency of Java applications can be improved by applying Dynami...
Embedded systems can be found everywhere in our daily lives. Due to the great variety of embedded de...
Given the popularity of Java, extending the standard Java virtual machine (JVM) to become cluster-aw...
A *memory consistency model* (or simply *memory model*) defines the possible values that a shared-me...
A *memory consistency model* (or simply *memory model*) defines the possible values that a shared-me...
International audienceBackground. The Java Virtual Machine (JVM) platforms have known multiple evolu...
International audienceBackground. The Java Virtual Machine (JVM) platforms have known multiple evolu...
cJVM is a Java Virtual Machine (JVM) which provides a single system image of a traditional JVM while...
Just-in-Time (JIT) compilation is a key technique for programs written in managed languages, such as...
Virtual Machines (VMs) with Just-In-Time (JIT) compilers are traditionally thought to execute progra...
Virtual machines (VMs) are software systems that provide execution environments for applications. Be...
Virtual machines (VMs) are software systems that provide execution environments for applications. Be...
Today, a vast majority of big data processing platforms are implemented in JVM-based languages such ...
Safe languages provide programming abstractions, like type and memory safety, to improve programmer ...
Many widely used, latency sensitive, data-parallel distributed systems, such as HDFS, Hive, and Spar...
In this paper, we show the energy efficiency of Java applications can be improved by applying Dynami...
Embedded systems can be found everywhere in our daily lives. Due to the great variety of embedded de...
Given the popularity of Java, extending the standard Java virtual machine (JVM) to become cluster-aw...
A *memory consistency model* (or simply *memory model*) defines the possible values that a shared-me...
A *memory consistency model* (or simply *memory model*) defines the possible values that a shared-me...
International audienceBackground. The Java Virtual Machine (JVM) platforms have known multiple evolu...
International audienceBackground. The Java Virtual Machine (JVM) platforms have known multiple evolu...
cJVM is a Java Virtual Machine (JVM) which provides a single system image of a traditional JVM while...
Just-in-Time (JIT) compilation is a key technique for programs written in managed languages, such as...
Virtual Machines (VMs) with Just-In-Time (JIT) compilers are traditionally thought to execute progra...
Virtual machines (VMs) are software systems that provide execution environments for applications. Be...
Virtual machines (VMs) are software systems that provide execution environments for applications. Be...
Today, a vast majority of big data processing platforms are implemented in JVM-based languages such ...
Safe languages provide programming abstractions, like type and memory safety, to improve programmer ...