An embedded domain specific language for distributed memory transactions in Java
Pages 1980 - 1985
Abstract
Transactional memory is an abstraction where concurrent memory accesses are grouped into atomic transactions, similar to database transactions. There are many advantages in using this model instead of conventional ones, such as ease of programming: programmers simply mark code where race conditions may occur and the transactional system takes care to ensure the correctness of the results. This model has proven to be promising for Symmetric Multi-Processing (SMP) machines, however few studies in this area are focused on distributed architectures. These architectures are extremely important nowadays, as they compose a large portion of high performance computing platforms, and because of the trend of more and more computing devices communicating with each other. The main objective of this paper is to propose a domain specific language embedded in Java, for implementing memory transactions that can involve local and distributed objects on a network. This goal was approached both in the language level, allowing the programmer to define composable transactional actions, and in transactional system level, supporting the implementation of the language's abstractions. To validate our model, preliminary measurements of a prototype implementation of the system described here are presented.
References
[1]
R. Bandeira, A. Du Bois, M. Pilla, J. Vizzotto, and M. Machado. Composable memory transactions for java using a monadic intermediate language. In A. Pardo and S. D. Swierstra, editors, Programming Languages, volume 9325 of Lecture Notes in Computer Science, pages 128--142. Springer International Publishing, 2015.
[2]
R. L. Bocchino, V. S. Adve, and B. L. Chamberlain. Software transactional memory for large scale clusters. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming, PPoPP '08, pages 247--258, New York, NY, USA, 2008. ACM.
[3]
D. Dice, O. Shalev, and N. Shavit. Transactional locking ii. In Proceedings of the 20th international conference on Distributed Computing, DISC'06, pages 194--208, Berlin, Heidelberg, 2006. Springer-Verlag.
[4]
A. Dragojević, R. Guerraoui, and M. Kapalka. Stretching transactional memory. In Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation, PLDI '09, pages 155--165, New York, NY, USA, 2009. ACM.
[5]
A. R. Du Bois and M. A. Echevarria. Domain specific language for composable memory transactions in java. In DSL '09: Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages, pages 170--186, Berlin, Heidelberg, 2009. Springer-Verlag.
[6]
T. Harris, J. Larus, and R. Rajwar. Transactional Memory, 2nd Edition. Morgan and Claypool Publishers, 2nd edition, 2010.
[7]
T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. Composable memory transactions. In Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, PPoPP '05, pages 48--60, New York, NY, USA, 2005. ACM.
[8]
C. Kotselidis, M. Ansari, K. Jarvis, M. Luján, C. Kirkham, and I. Watson. Distm: A software transactional memory framework for clusters. In Proceedings of the 2008 37th International Conference on Parallel Processing, ICPP '08, pages 51--58, Washington, DC, USA, 2008. IEEE Computer Society.
[9]
L. Lamport. Time, clocks, and the ordering of events in a distributed system. Commun. ACM, 21(7):558--565, 1978.
[10]
V. J. Marathe, M. F. Spear, C. Heriot, A. Acharya, D. Eisenstat, W. N. Scherer III, and M. L. Scott. Lowering the overhead of software transactional memory. Technical Report TR 893, Computer Science Department, University of Rochester, Mar 2006. Condensed version submitted for publication.
[11]
S. Marlow. Haskell 2010 language report. https://www.haskell.org/onlinereport/haskell2010/, 2010.
[12]
T. Parr. The Definitive ANTLR Reference: Building Domain-Specific Languages. Pragmatic Bookshelf, 2007.
[13]
M. Saad and B. Ravindran. Transactional forwarding: Supporting highly-concurrent stm in asynchronous distributed systems. In Computer Architecture and High Performance Computing (SBAC-PAD), 2012 IEEE 24th International Symposium on, pages 219--226, oct. 2012.
Index Terms
- An embedded domain specific language for distributed memory transactions in Java
Recommendations
Comments
Please enable JavaScript to view thecomments powered by Disqus.Information & Contributors
Information
Published In
Copyright © 2016 ACM.
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].
Sponsors
Publisher
Association for Computing Machinery
New York, NY, United States
Publication History
Published: 04 April 2016
Check for updates
Author Tags
Qualifiers
- Research-article
Conference
SAC 2016
Sponsor:
Acceptance Rates
SAC '16 Paper Acceptance Rate 252 of 1,047 submissions, 24%;
Overall Acceptance Rate 1,650 of 6,669 submissions, 25%
Contributors
Other Metrics
Bibliometrics & Citations
Bibliometrics
Article Metrics
- 0Total Citations
- 53Total Downloads
- Downloads (Last 12 months)0
- Downloads (Last 6 weeks)0
Reflects downloads up to 21 Sep 2024
Other Metrics
Citations
View Options
Get Access
Login options
Check if you have access through your login credentials or your institution to get full access on this article.
Sign in