NoSQL
- ali@fuzzywireless.com
- Mar 4, 2022
- 2 min read
Varying implementation of cloud computing applications, web and enterprise requiring different database features, which are not usually offered by traditional relational database management systems (RDBMS) where one-size-fits-all philosophy is reigning for several decades thus NoSQL databases emerged as a low cost, high performance database system (Zhao, Sakr, & Liu, 2014). Applications like Facebook, Amazon, eBay, Twitter etc. require high scalability and availability due to significant financial and customer trust consequences, which is where NoSQL database shine the most (Zhao, Sakr, & Liu, 2014). Although CAP theorem require any two properties from consistency, availability and partition tolerance to be acceptable for distributed computing but NoSQL databases tends to usually compromise on consistency while offering very high availability and partition tolerance (Brewer, 2000). There are several consistency models available, NoSQL databases particularly apply eventual consistency policy, which guarantees that last updated values will be eventually returned if no changes are made to a replicated objects (Zhao, Sakr, & Liu, 2014).
Big data is the primary driver behind NoSQL databases, which require storage of large volume with little or no structure, rapid development cycles, highly scalable and fault tolerant systems (web1). In several read-only applications and storages that do not often change, like historical archives, NoSQL databases fits very well (MongoDB, 2018). Other examples are like write-intensive use cases where database is needed to capture logs, which are usually read at a later time. Eventual consistency is implemented in different way by databases, for instance CouchDB retain all conflicting values and responsibility to resolve conflict is push towards end-user, Cassandra on the other hand treats the latest values as the correct value to resolve conflict. The performance gain is realized by NoSQL databases based on BASE (basically available, soft-state, eventually consistent) due to compromise on consistency but offer highly available and partition tolerant system. On the other hand, traditional relational database management systems based on ACID (atomicity, consistency, isolation, durability) are slowed down due to locks and semaphores, especially in large scale web like applications (MongoDB, 2018). NoSQL databases utilize volatile memory from highly scalable architecture to serve the data to enhance the querying speed and reduce latency versus non-volatile memory (hard drive) used by some traditional RDBMS systems (Kabakus, A. & Kara, R., 2017).
Reference
MongoDB, 2018. NoSQL databases explained. Retrieved from https://www.mongodb.com/nosql-explained
Kabakus, A. & Kara, R., 2017. A performance evaluation of in-memory databases. 2017 Journal of King Saud University – Computer and Information Sciences. 520-525
Brewer, E., 2000. Towards robust distributed system. Symposium on Principles of distributed computing.
Zhao, L., Sakr, S. & Liu, A., 2014. An overview of the NoSQL world. In S. Sakr, & M. Gaber (Eds.), Large scale and big data: Processing and management (pp. 183-228). Boca Raton, FL: CRC Press.
Comments