Abstract:
Middleware systems are currently of great interest as a communication backbone between the applications of a distributed system. As there can be a lot of communication between the applications, middleware systems need to be able handle a high number of concurrent accesses, using efficient concurrency protocols. The message handling in robust middleware systems is done with a persistent queue. Past research has shown [32] that a persistent queue can be built on top of a database system because the features offered by most database systems are similar to the requirements of a queue. However, the research also pointed out that an improvement in concurrency is necessary to meet the performance needs of the middleware if a generic database system is used. In this research project, we analyze existing queue architectures and provide a comprehensive overview of how queues can be implemented in a database. Furthermore, we propose a queue concurrency protocol for a triplestore { a type of database system that is becoming more and more popular but has not been considered as a queuing system before. We implemented the protocol on an existing triplestore, and compared its performance to that of the standard concurrency protocol of the triplestore and a queue implementation on the relational MySQL database system. The results indicate that the proposed protocol generally improves the performance and reduces the transaction aborting rate.