Recent challenges in cloud applications have made the use of NoSQL data stores more popular than ever. These data stores however lack of the important guarantees that traditional relational databases offer: ACID properties and transactional semantics. Implementing ACID transactions has been a longstanding challenge for NoSQL systems. Because these systems are based on a sharded architecture, transactions necessarily require coordination across multiple servers. In this work, we propose an extended version of the much popular MongoDB data store, which provides transactional semantics and ensure ACID compatibility, while on the same time, maintain all its non-functional characteristics. This is achieved via its integration with an external conflict resolution service, which is responsible for identifying conflicts between modified documents of concurrent transactions and provide ACID properties. MongoDB’s server side core however remains identically with the native version, thus providing the high performance and scalability properties that makes it so popular. Moreover, having identifying that our proposition cannot be exploited by distributed cloud applications that need to span a transaction across different nodes, we propose an alternative solution that can be used instead, which can be scaled across layers so as to ensure the required non-functional requirements, as throughput and latency.
Authors: Kranas Pavlos, Stamokostas Sotiris, Moulos Vrettos.