Persisting the AntidoteDB Cache: Design and Implementation of a Cache for a CRDT Datastore
Abstract
Many services, today, rely on Geo-replicated databases. Geo-replicationimproves performance by moving a copy of the data closer to its usage site. High availabilityis achieved by maintaining copies of this data in several locations. Performance is gained bydistributing the data and allowing multiple requests to be served at once. But, replicatingdata can lead to an inconsistent global state of the database when updates compete witheach other.In this work, we study how a cache is designed and implemented, for a database thatprevents state inconsistencies by using CRDTs. Further, we study how this cache can bepersisted into a checkpoint store and measure the performance of our design with severalbenchmarks. The implementation of the system is based on AntidoteDB. An additionallibrary is implemented to realise the discussed design.
De nombreux services reposent aujourd’hui sur des bases de données géo-répliquées. La géo-réplication améliore les performances en rapprochant une copie des données de leur site d’utilisation. La haute disponibilité est obtenue en maintenant des copies de ces données à plusieurs endroits. Les performances sont améliorées en distribuant les données et en permettant à plusieurs requêtes d’être servies en même temps. Cependant, la réplication des données peut conduire à un état global incohérent de la base de données lorsque les mises à jour sont en concurrence les unes avec les autres.Dans ce travail, nous étudions la conception et la mise en œuvre d'une cache, pour une base de données qui convergente utilisant les CRDTs. De plus, nous étudions comment persister le cache en en stockant des instantanés ; enfin, nous mesurons la performance du système ainsi conçu grâce à plusieurs bancs d'essai. La mise en œuvre est basée sur Antidote DB, comme une bibliothèque.
Origin | Files produced by the author(s) |
---|