Figure 1 - uploaded by Jeannette M. Wing
Content may be subject to copyright.
Similar publications
Persistent periodicity in dynamical billiards in two dimension
Citations
... If we are able to bring the CPU overhead of our system (the no write case) down such that it plus the CPU time involved in actually doing the write is less than a rotational delay, then we should see almost a factor of two improvement, since we will avoid missing a disk revolution. We have observed such a speedups before using similar benchmarks [9]. For clues about how to reduce our overheads, we first note that the overheads without durability are minimal, thus speeding up Java or making write logging faster will have little effect. ...
... Prior to this work, one of the authors participated in the Venari project [5] , of which one goal was to provide transactions for Standard ML (SML). A discussion of the low-level aspects that system (called Sidney) can be found in Net- tles [9]. Not surprisingly, our current work draws strongly on this prior work. ...
Jest is a Java VM extended to support transactions and
general-purpose persistence. Jest allows Java programmers to manipulate
any object using transactions and provides resilience to machine failure
for these objects. Jest extends Java's current emphasis on safety and
reliability to the safe and consistent management of permanent state.
Our additions include syntax for transactions and run-time support for
durability and atomicity. General-purpose persistence-the ability to
make arbitrary kinds of objects persistent-is a key aspect of the
design. We provide orthogonal persistence in which any object can be
made persistent without regard to type. We do this using
persistence-by-reachability, in which an object becomes persistent if it
is reachable from a special persistent root. An important aim of our
implementation is to explore the techniques and tradeoffs that arise
when implementing persistence in a runtime system based on
mark-and-compact collection. Having previously studied designs based on
copying collection, this work allows us to explore additional parts of
the persistence design space. Details of the implementation are provided
in the paper. We have tested Jest on a debit-credit benchmark derived
from TPC-B. Our system achieves a rate of 83 TPS, very close to the
limits allowed by our disk and underlying logging system. Tests of the
Java compiler compiling itself both with and without our extensions,
suggest that, for applications that do not use transactions, our
extensions result in a slowdown of about 7% compared to the original
Java implementation. We suggest several possible ways of improving this
result
... If we are able to bring the CPU overhead of our system (the no write case) down such that it plus the CPU time involved in actually doing the write is less than a rotational delay, then we should see almost a factor of two improvement, since we will avoid missing a disk revolution. We have observed such a speedups before using similar benchmarks [9]. ...
... Prior to this work, one of the authors participated in the Venari project [5], of which one goal was to provide transactions for Standard ML (SML). A discussion of the low-level aspects that system (called Sidney) can be found in Nettles [9]. Not surprisingly, our current work draws strongly on this prior work. ...
We present a design and implementation of transactions and general-purpose persistence for Java. These additions allow Java programmers to manipulate any Java object using transactions and provide resilience from machine failure for these objects. This extends the range of Java applicability into domains where reliability is of paramount concern; for example, network-based banking. Our design and implementation is a significant addition to Java. It extends Java's current emphasis on safety and reliability to the safe and consistent management of permanent state. Our additions take the form of syntactic extensions for transactions and runtime system support for durability and atomicity. Support for general-purpose persistence, the ability to arbitrary kinds of objects persistent, is a key aspect of the design. We provide orthogonal persistence, in which any object can be made persistent, without regard to type. We also provide persistence-by-reachability, in which an object becomes pe...
Comparative experimentation is increasingly important in computer
science, but performing such experiments can be challenging. The paper
presents a set of experiments that compare the performance of two
persistent storage managers, and answer the question of whether the
safer storage manager has performance comparable to the less safe one.
This comparison was difficult for a number of reasons, among them:
relatively few programs using either storage manager existed and no
established benchmarks existed, and the two techniques are incompatible
at the source code level, thus making a direct comparison impossible. In
particular one storage manager used a malloc-and-free style of dynamic
storage allocation, while the other used a high performance concurrent
garbage collector. A number of approaches were used to overcome this
difficulty. The most novel approach involved tracing the memory
management of a production program that used the malloc-and-free based
storage manager and then replaying the trace in an environment that
allowed garbage collection and malloc-and-free to be compared. The study
represents the most extensive study of a garbage collected persistent
storage system to date
Flash memory is a solid-state semiconductor memory technology that has interesting price, performance, and semantic tradeoffs. We've developed Gordon, a generalpurpose persistence system for Standard ML, that uses Flash mapped into the virtual address space as its stable storage medium. Flash supports a write-once/bulk erase interface which makes it difficult to support update-in-place semantics. In addition, Flash chips are only guaranteed to survive a limited number of erase cycles. Gordon has been designed to overcome these difficulties, and our performance analysis demonstrates good performance and reasonable lifetimes for appropriate application domains. 1 Introduction Flash RAM is a semiconductor memory which offers significant new price, performance, and semantic tradeoffs for the "main" memory of computer systems. Flash has read performance and density comparable to DRAM, but unlike DRAM, data stored in Flash is stable and is not lost on power failure. Compared to disk, the m...