Abstract
We present ByteSTM, a virtual machine-level Java STM implementation that is built by extending the Jikes RVM. We modify Jikes RVM’s optimizing compiler to transparently support implicit transactions. Being implemented at the VM-level, it accesses memory directly, avoids Java garbage collection overhead by manually managing memory for transactional metadata, and provides pluggable support for implementing different STM algorithms to the VM. Our experimental studies reveal throughput improvement over other non-VM STMs by 6–70% on micro-benchmarks and by 7–60% on macro-benchmarks.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Adl-Tabatabai, A.: The StarJIT compiler: A dynamic compiler for managed runtime environments. Intel Technology Journal (2003)
Alpern, B., Augart, S.: The Jikes research virtual machine project: building an open-source research community. IBM Syst. J. 44, 399–417 (2005)
Blackburn, S.M., McKinley, K.S.: Immix: a mark-region garbage collector with space efficiency, fast collection, and mutator performance. In: PLDI (2008)
Bradel, B.J., Abdelrahman, T.S.: The use of hardware transactional memory for the trace-based parallelization of recursive Java programs. In: PPPJ (2009)
Cachopo, J., Rito-Silva, A.: Versioned boxes as the basis for memory transactions. Science of Computer Programming 63(2), 172–185 (2006)
Cao Minh, C., Chung, J., Kozyrakis, C., Olukotun, K.: STAMP: Stanford transactional applications for multi-processing. In: IISWC (September 2008)
Carlstrom, B., McDonald, A., et al.: The Atomos transactional programming language. ACM SIGPLAN Notices 41(6), 1–13 (2006)
Christie, D., Chung, J., et al.: Evaluation of AMD’s advanced synchronization facility within a complete transactional memory stack. In: EuroSys, pp. 27–40 (2010)
Dalessandro, L., Spear, M.F., Scott, M.L.: NOrec: Streamlining STM by Abolishing Ownership Records. In: PPoPP, pp. 67–78. ACM (2010)
Dice, D., Shalev, O., Shavit, N.N.: Transactional locking II. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 194–208. Springer, Heidelberg (2006)
Guerraoui, R., Kapalka, M.: On the correctness of transactional memory. In: PPoPP, pp. 175–184 (2008)
Harris, T., Fraser, K.: Language support for lightweight transactions. ACM SIGPLAN Notices 38(11), 388–402 (2003)
Harris, T., Larus, J., Rajwar, R.: Transactional Memory, 2nd edn. Morgan and Claypool Publishers (2010)
Herlihy, M., Luchangco, V., Moir, M.: A flexible framework for implementing software transactional memory. ACM SIGPLAN Notices 41(10), 253–262 (2006)
Hindman, B., Grossman, D.: Atomicity via source-to-source translation. In: Workshop on Memory System Performance and Correctness, pp. 82–91 (2006)
Intel Corporation. Intel C++ STM Compiler (2009), http://software.intel.com/en-us/articles/intel-c-stm-compiler-prototype-edition/
Korland, G., Shavit, N., Felber, P.: Noninvasive concurrency with Java STM. In: MULTIPROG (2010)
Lie, S.: Hardware support for unbounded transactional memory. Master’s thesis. MIT (2004)
Meawad, F.: Collecting transactional garbage. In: TRANSACT (2011)
Mohamedin, M., Ravindran, B.: ByteSTM: Virtual Machine-level Java Software Transactional Memory. Technical report, Virginia Tech. (2012), http://www.hydravm.org/hydra/chrome/site/pub/ByteSTM_tech.pdf
ObjectFabric Inc. ObjectFabric (2011), http://objectfabric.com
Paleczny, M., Vick, C., Click, C.: The Java HotspotTMServer Compiler. In: JavaTMVirtual Machine Research and Technology Symposium. USENIX (2001)
Riegel, T., Fetzer, C., Felber, P.: Snapshot isolation for software transactional memory. TRANSACT (2006)
Saad, M.M., Mohamedin, M., Ravindran, B.: HydraVM: extracting parallelism from legacy sequential code using STM. In: HotPar. USENIX (2012), hydravm.org
Spear, M.F., et al.: RingSTM: scalable transactions with a single atomic instruction. In: SPAA, pp. 275–284 (2008)
Veentjer, P.: Multiverse (2011), http://multiverse.codehaus.org
Welc, A., Jia, L., Hosking, A.L.: Transactional monitors for concurrent objects. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 518–541. Springer, Heidelberg (2004)
Zilberstein, A.: Java implementation of STAMP (2010), https://github.com/DeuceSTM/DeuceSTM/tree/master/src/test/jstamp
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 IFIP International Federation for Information Processing
About this paper
Cite this paper
Mohamedin, M., Ravindran, B., Palmieri, R. (2013). ByteSTM: Virtual Machine-Level Java Software Transactional Memory. In: De Nicola, R., Julien, C. (eds) Coordination Models and Languages. COORDINATION 2013. Lecture Notes in Computer Science, vol 7890. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38493-6_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-38493-6_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38492-9
Online ISBN: 978-3-642-38493-6
eBook Packages: Computer ScienceComputer Science (R0)