CRESON: Callable and Replicated Shared Objects over NoSQL
Pierre Sutra, Etienne Rivière, Cristian Cotes, Marc Sánchez Artigas, Pedro Garcia Lopez, Emmanuel Bernard, William Burns and Galder Zamarreno
Télécom SudParis, CNRS, Université Paris-Saclay, France, University of Neuchatel, Universitat Rovira i Virgili, Universitat Rovira i Virgili, Universitat Rovira i Virgili, Red Hat, Red Hat, Red Hat

The ability to share and persist objects simplifies the design of applications in Cloud environments. Storing objects on a NoSQL database ensures availability and scalability. When Object-NoSQL Mapping is performed at the client side, objects that are accessed concurrently are repeatedly converted between their in-memory and serialized representations. This negatively impacts performance and increases replication costs. We describe in this paper the design of CRESON, a system supporting callable objects over NoSQL, in which application objects are mapped and instantiated directly on the storage nodes. CRESON supports composition by reference and ensures strong consistency. Objects are replicated and maintained coherent using State Machine Replication. The implementation of CRESON leverages the support of a listenable key-value store (LKVS), a novel NoSQL storage abstraction that we introduce in this paper. We discuss the performance and complexity of using CRESON with the example of the portage of a personal cloud storage service, initially developed using object-relational mapping over a sharded PostgreSQL database. Our results show that CRESON offers a simpler programming experience both in terms of learning time and lines of code, while performing better on average and being more scalable.