Persistent and highly Available Software TRansactional MemorY
The hardware industry's commitment to the use of multi-core processors as the only practical way to improve computing power for the new generation of computers, brought concurrent programming, finally, into the realms of mainstream programming. Yet, almost all modern programming languages lack adequate abstractions for concurrent programming.
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 subsystem (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.
These limitations are not surprising given that, to our knowledge, techniques to persist and replicate STMs are still an open research problem.
This project brings the FénixEDU team together with two research teams with a significant expertise on building replication solutions to relational and object oriented databases. This will allow the FénixEDU to get an insight on the pros and cons of existing replication techniques (both from a theoretical and a practical point of view). Reciprocally, the database replication experts will obtain an inside view of the singularities of the STM approach. The project will use these synergy to design, develop, implement and validate a Persistent and highly Available Software TRansactional MemorY: PASTRAMY.