zFS is a research project aimed at building a decentralized file system that distributes all aspects of file and storage management over a set of cooperating machines interconnected by a high-speed network. zFS is designed to be a file system that scales from a few networked computers to several thousand machines and to be built from commodity off-the-shelf components.The two most prominent features of zFS are its cooperative cache and distributed transactions. zFS integrates the memory of all participating machines into one coherent cache. Thus, instead of going to the disk for a block of data already in one of the machine memories, zFS retrieves the data block from the remote machine. zFS also uses distributed transactions and leases, instead of groupcommunication and clustering software.This article describes the zFS high-level architecture and how its goals are achieved.
cJVM is a Java Virtual Machine (JVM) which provides a single system image of a traditional JVM while executing in a distributed fashion on the nodes of a cluster, cJVM virtualizes the cluster, transparently distributing the objects and threads of any pure Java application. The aim of cJVM is to obtain improved scalability for Java Server Applications by distributing the application's work among the cluster's computing resources.cJVM's architecture, its unique object model, thread and memory models were described in [6]. In this article we focus on the optimization techniques employed in cJVM to achieve high scalability. In particular, we focus on the techniques used to enhance locality thereby reducing the amount of communication generated by cJVM. In addition, we describe how communication overhead can be reduced by taking advantage of Java semantics. Our optimization techniques are based on three principles. First, we employ a large number of mostly simple optimizations which address caching, locality of execution and object migration. Second, we take advantage of the Java semantics and of common usage patterns in implementing the optimizations. Third, we use speculative optimizations, taking advantage of the fact that the cJVM run-time environment can correct false speculations.We have demonstrated the usefulness of these techniques on a large (10Kloc) Java application, achieving 80% efficiency on a four-node cluster. This paper discusses the various techniques used and reports our results.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.