Lifting the Barriers – Reducing Latencies with Transparent Transactional Memory
Abstract
Synchronization in distributed systems is expensive because, in general, threads must stall to obtain a lock or to operate on volatile data. Transactional memory, on the other hand, allows speculative execution so that it can hide the latencies that are inherent to distributed systems.
In this paper, we discuss how transactional memory can carry over to code that uses Java’s synchronization means i.e. monitors and volatiles. We show that we can guarantee correct execution according to the Java memory model (JMM) without having to stall at synchronization points. To this end, we use a multi-version software transactional memory system that executes JMM synchronization operations asynchronously. If any such execution has violated the JMM, the transaction rolls back. As a result, only blocking operations require immediate synchronization barriers.
Keywords
Virtual Machine Local Memory Global Memory Execution Trace Transactional MemoryPreview
Unable to display preview. Download preview PDF.
References
- 1.Bieniusa, A., Eickhold, J., Fuhrmann, T.: The architecture of the DecentVM: Towards a decentralized virtual machine for many-core computing. In: VMIL 2010, pp. 5:1–5:10 (2010)Google Scholar
- 2.Bieniusa, A., Fuhrmann, T.: Consistency in hindsight: A fully decentralized STM algorithm. In: IPDPS, pp. 1–12. IEEE (2010)Google Scholar
- 3.Dalessandro, L., Scott, M.L., Spear, M.F.: Transactions as the Foundation of a Memory Consistency Model. In: Lynch, N.A., Shvartsman, A.A. (eds.) DISC 2010. LNCS, vol. 6343, pp. 20–34. Springer, Heidelberg (2010)CrossRefGoogle Scholar
- 4.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)CrossRefGoogle Scholar
- 5.Dragojevic, A., Guerraoui, R., Kapalka, M.: Stretching transactional memory. In: Hind, M., Diwan, A. (eds.) PLDI, pp. 155–165. ACM (2009)Google Scholar
- 6.Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 3rd edn. Addison-Wesley Longman, Amsterdam (2005)MATHGoogle Scholar
- 7.Harris, T., Larus, J.R., Rajwar, R.: Transactional Memory, 2nd edn. Synthesis Lectures on Computer Architecture. Morgan & Claypool Publishers (2010)Google Scholar
- 8.Lea, D.: The cookbook for compiler writers (July 2011), http://gee.cs.oswego.edu/dl/jmm/cookbook.html
- 9.Marathe, V.J., Spear, M.F., Heriot, C., Acharya, A., Eisenstat, D., Scherer III, W.N., Scott, M.L.: Lowering the overhead of software transactional memory. In: ACM SIGPLAN Workshop on Transactional Computing (June 2006)Google Scholar
- 10.Mattson, T.G., der Wijngaart, R.F.V., Riepen, M., Lehnig, T., Brett, P., Haas, W., Kennedy, P., Howard, J., Vangal, S., Borkar, N., Ruhl, G., Dighe, S.: The 48-core scc processor: the programmer’s view. In: Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis (2010)Google Scholar
- 11.Nightingale, E.B., Chen, P.M., Flinn, J.: Speculative execution in a distributed file system. ACM Trans. Comput. Syst. 24(4), 361–392 (2006)CrossRefGoogle Scholar
- 12.Russell, K., Detlefs, D.: Eliminating synchronization-related atomic operations with biased locking and bulk rebiasing. In: Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA 2006, pp. 263–272. ACM, New York (2006)CrossRefGoogle Scholar
- 13.Ziarek, L., Welc, A., Adl-Tabatabai, A.-R., Menon, V., Shpeisman, T., Jagannathan, S.: A Uniform Transactional Execution Environment for Java. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 129–154. Springer, Heidelberg (2008)CrossRefGoogle Scholar