• DocumentCode
    3314494
  • Title

    Transactions for Java

  • Author

    Garthwaite, Alex ; Nettles, Scott

  • Author_Institution
    Dept. of Comput. & Inf. Sci., Pennsylvania Univ., Philadelphia, PA, USA
  • fYear
    1998
  • fDate
    14-16 May 1998
  • Firstpage
    16
  • Lastpage
    27
  • Abstract
    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
  • Keywords
    object-oriented languages; object-oriented programming; program compilers; reachability analysis; software tools; transaction processing; Java; Java Virtual Machine; Jest; TPC-B; atomicity; compiler; debit-credit benchmark; general-purpose persistence; machine failure; mark-and-compact collection; object oriented languages; orthogonal persistence; persistence-by-reachability; reliability; run-time support; safety; syntax; transactions; Benchmark testing; Contracts; Electrical capacitance tomography; Information science; Java; Programming profession; Read only memory; Runtime; Safety; Virtual manufacturing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Computer Languages, 1998. Proceedings. 1998 International Conference on
  • Conference_Location
    Chicago, IL
  • ISSN
    1074-8970
  • Print_ISBN
    0-8186-8454-2
  • Type

    conf

  • DOI
    10.1109/ICCL.1998.674153
  • Filename
    674153