Treffer: Efficient shared object space support for distributed Java virtual machine

Title:
Efficient shared object space support for distributed Java virtual machine
Contributors:
Wang, CL
Publisher Information:
The University of Hong Kong (Pokfulam, Hong Kong)
Collection:
University of Hong Kong: HKU Scholars Hub
Document Type:
Dissertation doctoral or postdoctoral thesis
Language:
English
Relation:
HKU Theses Online (HKUTO); Lam, K. [林擎天]. (2012). Efficient shared object space support for distributed Java virtual machine. (Thesis). University of Hong Kong, Pokfulam, Hong Kong SAR. Retrieved from http://dx.doi.org/10.5353/th_b4775287; b4775287; http://hdl.handle.net/10722/174467
DOI:
10.5353/th_b4775287
Rights:
The author retains all proprietary rights, (such as patent rights) and the right to use in future works. ; This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Accession Number:
edsbas.B7CBCF70
Database:
BASE

Weitere Informationen

Given the popularity of Java, extending the standard Java virtual machine (JVM) to become cluster-aware effectively brings the vision of transparent horizontal scaling of applications to fruition. With a set of cluster-wide JVMs orchestrated as a virtually single system, thread-level parallelism in Java is no longer confined to one multiprocessor. An unmodified multithreaded Java application running on such a Distributed JVM (DJVM) can scale out transparently, tapping into the vast computing power of the cluster. While this notion creates an easy-to-use and powerful parallel programming paradigm, research on DJVMs has remained largely at the proof-of-concept stage where successes were proven using trivial scientific computing workloads only. Real-life Java applications with commercial server workloads have not been well-studied on DJVMs. Their natures including complex and sometimes huge object graphs, irregular access patterns and frequent synchronizations are key scalability hurdles. To design a scalable DJVM for real-life applications, we identify three major unsolved issues calling for a top-to-bottom overhaul of traditional systems. First, we need a more time- and space-efficient cache coherence protocol to support fine-grained object sharing over the distributed shared heap. The recent prevalence of concurrent data structures with heavy use of volatile fields has added complications to the matter. Second, previous generations of DJVMs lack true support for memory-intensive applications. While the network-wide aggregated physical memory can be huge, mutual sharing of huge object graphs like Java collections may cause nodes to eventually run out of local heap space because the cached copies of remote objects, linked by active references, can’t be arbitrarily discarded. Third, thread affinity, which determines the overall communication cost, is vital to the DJVM performance. Data access locality can be improved by collocating highly-correlated threads, via dynamic thread migration. Tracking inter-thread ...