Full TitlePersistent and highly Available Software TRansactional MemorY
Software Transactional Memories (STMs) are emerging as a powerful paradigm to develop concurrent applications. By relishing the programmer from the burden of managing locks or other low-level concurrency control mechanisms, the reliability of the code is increased and the software development time significantly shortened. The INESC-ID team has coordinated the development of a middleware university management system, called FénixEDU, that is based on the STM technology. The application is in production since 2001 at the Instituto Superior Técnico (IST) of the Technical University of Lisbon for a population of 12000 students, 900 faculty members and 800 administrative staff. Fénix is the first system in the world that uses, in production, a STM approach. FénixEDU already augments the basic STM model with persistence, to provide ACID properties to web application functionalities, and replication, because due to the high load of the system the application needs to be deployed in more than one cluster server. However, our current solutions to tackle these two important aspects suffer several limitations, including: – The interface with the persistence susbsystem (a relational database) often requires the use of an excessive amount of memory, increasing garbage collecting and degrading the system performance. – It is only able to interface a single datastore, which introduces a single point of failure. – Resolution of conflicts between STMs running on different nodes of the cluster requires nodes to obtain exclusive access to the datastore during the commit phase, limiting the concurrency of the system.