Uma linguagem de domínio específico para memória transacional distribuída em Java - Ramos, Jerônimo da Cunha (2015)
Transactional memory is an abstraction where concurrent memory accesses are handled with the use of transactions, similar to database transactions. There are many advantages in using this model instead of conventional ones. An advantage is the ease of programming, because the programmer simply marks the snippets where race condition may occur and the transactional system takes care to ensure the correctness of the results. Another important advantage is the increased possibility of exploitation of parallelism because transactions can be performed optimistically. This model has proven to be promising for SMP machines, however few studies in this area are focused on distributed architectures. The study of distributed architectures is extremely important these days, 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. Thus, this work includes a literature review on the main implementation strategies of transactional memories, some of the most important implementations and the main difficulties to implement distributed transactional memories. It also discusses the state of the art implementations of the research front where this work is inserted: distributed transactional memories. In this way, the main objective of this work is to propose a domain specific language embedded in Java for implementing memory transactions that can involve local objects and distributed objects on a network. This goal was approached both in language level, allowing the programmer to define transactional actions, and in transactional system level, supporting the implementation of the language’s abstractions. In addition, a prototype was implemented, extending the implementation of CMTJava language, to validate the model.