Abstract
Internet has become so widespread that most popular websites are accessed by hundreds of millions of people on a daily basis. Monolithic architectures, which were frequently used in the past, were mostly composed of traditional relational database management systems, but quickly have become incapable of sustaining high data traffic very common these days. Meanwhile, NoSQL databases have emerged to provide some missing properties in relational databases like the schema-less design, horizontal scaling, and eventual consistency. This paper analyzes and compares the consistency model implementation on five popular NoSQL databases: Redis, Cassandra, MongoDB, Neo4j, and OrientDB. All of which offer at least eventual consistency, and some have the option of supporting strong consistency. However, imposing strong consistency will result in less availability when subject to network partition events.
References (43)
- Miret, L.P. Consistency Models in Modern Distributed Systems. An Approach to Eventual Consistency. Master's Thesis, Universitat Politècnica de València, València, Spain, 2015.
- Shapiro, M.; Sutra, P. Database Consistency Models. In Encyclopedia of Big Data Technologies; Springer: Cham, Switzerland, 2018; pp. 1-11.
- Brewer, E. Towards Robust Distributed Systems. In Proceedings of the Nineteenth Annual ACM Symposium on Principles of Distributed Computing, Portland, OR, USA, 16-19 July 2000; pp. 1-12.
- Gilbert, S.; Lynch, N. Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-tolerant Web Services. ACM SIGACT News 2002, 33, 51-59. [CrossRef]
- DB-Engines Ranking. Available online: https://db-engines.com/en/ranking (accessed on 30 December 2018).
- Bhamra, K. A Comparative Analysis of MongoDB and Cassandra. Master's Thesis, The University of Bergen, Bergen, Norway, 2017.
- Han, J.; Haihong, E.; Le, G.; Du, J. Survey on NoSQL database. In Proceedings of the 2011 6th International Conference on Pervasive Computing and Applications (ICPCA 2011), Port Elizabeth, South Africa, 26-28 October 2011; pp. 363-366.
- Pankowski, T. Consistency and availability of Data in replicated NoSQL databases. In Proceedings of the 2015 International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE), Barcelona, Spain, 29-30 April 2015; pp. 102-109.
- Islam, A.; Vrbsky, S.V. Comparison of consistency approaches for cloud databases. Int. J. Cloud Comput. 2013, 2, 378-398. [CrossRef]
- Yahoo! YCSB (Yahoo! Cloud Serving Benchmark). Available online: https://github.com/brianfrankcooper/YCSB (accessed on 30 December 2018).
- Tudorica, B.G.; Bucur, C. A comparison between several NoSQL databases with comments and notes. In Proceedings of the 2011 RoEduNet International Conference 10th Edition: Networking in Education and Research, Iasi, Romania, 23-25 June 2011; pp. 1-5.
- Wang, H.; Li, J.; Zhang, H.; Zhou, Y. Benchmarking Replication and Consistency Strategies in Cloud Serving Databases: HBase and Cassandra. In Big Data Benchmarks, Performance Optimization, and Emerging Hardware: 4th and 5th Workshops; Springer: Cham, Switzerland, 2014; Volume 8807, pp. 71-82.
- Bermbach, D.; Zhao, L.; Sakr, Towards Comprehensive Measurement of Consistency Guarantees for Cloud-Hosted Data Storage Services. In Revised Selected Papers of the 5th TPC Technology Conference on Performance Characterization and Benchmarking; Springer: Cham, Switzerland, 2013; Volume 8391, pp. 32-47.
- Sakr, M.F.; Kolar, V.; Hammoud, M. Consistency and Replication-Part II Lecture 11. Available online: https: //web2.qatar.cmu.edu/~{}msakr/15440-f11/lectures/Lecture11_15440_VKO_10Oct_2011.pptx (accessed on 30 December 2018).
- Viotti, P.; Vukolić, M. Consistency in Non-Transactional Distributed Storage Systems. ACM Comput. Surv. 2016, 49, 19. [CrossRef]
- Vogels, W. Eventually Consistent. Commun. ACM 2009, 52, 40-44. [CrossRef]
- Read-Your-Writes (RYW), Aka Immediate, Consistency. Available online: http://www.dbms2.com/2010/ 05/01/ryw-read-your-writes-consistency/ (accessed on 30 December 2018).
- Likness, J. Getting Behind the 9-Ball: Azure Cosmos DB Consistency Levels. Available online: https://blog.jeremylikness.com/cloud-nosql-azure-cosmosdb-consistency-levels-cfe8348686e6 (accessed on 30 December 2018).
- Tanenbaum, A.S.; van Steen, M.V.M. Distributed Systems: Principles and Paradigms; Prentice-Hall, Inc.: Upper Saddle River, NJ, USA, 2006.
- Jepsen. Monotonic Reads. Available online: https://jepsen.io/consistency/models/monotonic-reads (accessed on 30 December 2018).
- Jepsen. Monotonic Writes. Available online: https://jepsen.io/consistency/models/monotonic-writes (accessed on 30 December 2018).
- Redis Labs. Redis Website. Available online: https://redis.io/ (accessed on 30 December 2018).
- Joshi, L. Do You Really Know Redis? Redis Labs White Pap. Available online: https://redislabs.com/docs/ really-know-redis (accessed on 11 February 2019).
- Redis Labs. Redis Cluster Tutorial. 2018. Available online: https://redis.io/topics/cluster-tutorial (accessed on 30 December 2018).
- Redis Labs. Redis Cluster Specs. 2018. Available online: https://redis.io/topics/cluster-spec (accessed on 30 December 2018).
- Avinash, L.; Malik, P. Cassandra: A decentralized structured storage system. ACM SIGOPS Oper. Syst. Rev. 2010, 44, 35-40.
- MongoDB Inc. MongoDB Architecture Guide; MongoDB White Pap. Available online: https://www. mongodb.com/collateral/mongodb-architecture-guide (accessed on 30 December 2018).
- Neo4j. Overcoming SQL Strain and SQL Pain; Neo4j White Pap. Available online: https://neo4j.com/ resources-old/overcoming-sql-strain-white-paper (accessed on 30 December 2018).
- Fernandes, D.; Bernardino, J. Graph Databases Comparison: AllegroGraph, ArangoDB, InfiniteGraph, Neo4J, and OrientDB. In Proceedings of the 7th International Conference on Data Science, Technology and Applications, {DATA} 2018, Porto, Portugal, 26-28 July 2018; pp. 373-380.
- Codd, E.F. A Relational Model of Data for Large Shared Data Banks. Commun. ACM 1970, 13, 377-387. [CrossRef]
- Hunger, M.; Boyd, R.; Lyon, W. The Definitive Guide to Graph Databases for the RDBMS Developer; Neo4j White Pap. Available online: https://neo4j.com/whitepapers/rdbms-developers-graph-databases-ebook (accessed on 30 December 2018).
- Neo4J Internals. Available online: https://www.slideshare.net/thobe/an-overview-of-neo4j-internals (accessed on 30 December 2018).
- Callidus Software. OrientDB Manual-Version 2.2.x. Available online: https://orientdb.com/docs/2.2.x/ (accessed on 30 December 2018).
- Datastax. Data Replication. Available online: https://docs.datastax.com/en/cassandra/3.0/cassandra/ architecture/archDataDistributeReplication.html (accessed on 30 December 2018).
- Datastax. Configuring Data Consistency. Available online: https://docs.datastax.com/en/archived/ cassandra/2.0/cassandra/dml/dml_config_consistency_c.html (accessed on 30 December 2018).
- Datastax. Read Repair: Repair during Read Path. Available online: https://docs.datastax.com/en/ cassandra/3.0/cassandra/operations/opsRepairNodesReadRepair.html (accessed on 30 December 2018).
- Probabilistically Bounded Staleness (PBS) Simulator. Available online: http://pbs.cs.berkeley.edu/ (accessed on 11 February 2019).
- Haerder, T.; Reuter, A. Principles of Database Recovery. ACM Comput. Surv. 1983, 15, 287-317. [CrossRef]
- Ongaro, D.; Ousterhout, J. In Search of an Understandable Consensus Algorithm. In Proceedings of the: 2014 USENIX Annual Technical Conference (USENIX ATC '14), Philadelphia, PA, USA, 19-20 June 2014; Volume 22, pp. 305-320.
- Neo4j. Chapter 4. Clustering. Enterprise Edition. Neo4j Online Docs. Available online: https://neo4j.com/ docs/operations-manual/current/clustering/ (accessed on 11 February 2019).
- Arpaci-Dusseau, R.H.; Arpaci-Dusseau, A.C.; Assumptions, W. Operating Systems: Three Easy Pieces. In Operating Systems: Three Easy Pieces, 0.91; Arpaci-Dusseau Books; CreateSpace Independent Publishing: Scotts Valley, CA, USA, 2015; pp. 7-9.
- OrientDB Concurrency Docs. Available online: https://orientdb.com/docs/2.2.x/Concurrency.html (accessed on 11 February 2019).
- Lourenço, J.; Cabral, B.; Carreiro, P.; Vieira, M.; Bernardino, J. Choosing the right NoSQL database for the job: A quality attribute evaluation. J. Big Data 2015, 2, 18-44. [CrossRef]