In the current internet era, consumers look at a zillion websites and apps before booking a trip; compare prices, reviews, and products before buying anything online; shop for deals and discounts before making an online transaction; and do a fair amount of search on shows and movies before binge-watching them. Hence consumers spend more time browsing online than performing online business transactions. With more and more devices tying consumers to the internet, and with attention spans getting shorter and shorter, applications that are not highly responsive will turn off consumers. Consumers want consistent, online engagement, even when they are not doing any business transactions.
With consumer engagement becoming more critical, it becomes more important than ever for applications to be powered by a database that facilitates rich consumer experiences.
At Couchbase, we created the world’s first Engagement Database to power applications that deliver rich consumer experiences. Built on the most powerful NoSQL technology, Couchbase Data Platform’s memory-first architecture with elastic scaling capability is designed to fuel digital innovation for today’s business. The open source data platform, comprised of Couchbase Server and Couchbase Mobile, incorporates mobile and IoT, query, search, analytics, security, and connectors to other popular big data ecosystems.
The core database engine in the Couchbase Data Platform can also be configured as an in-memory database.
Going Completely In-Memory
According to Forrester Wave™: In-Memory Databases, Q1 2017, “An in-memory database is not just a nice-to-have option anymore — it has become critical to support next-generation transactions, analytics, and operational insights…Today’s in-memory databases are changing the way we build and deliver systems of engagement, and they are transforming the practice of analytics, predictive modeling, and business transaction management.”
An in-memory database is highly responsive. It is free of any disk IO threads, disk write queues, and hence free of disk IO contention. It reduces disk cost and CPU consumption as you do not store the operational data on disk. It is designed to deliver high performance and low latency not only on data reads and writes, but also on streaming data for services that provide indexing, query, full-text search, and cross datacenter replication.
One might wonder, if there is no persistence, why is it still called a database? That is because it has features of and supports most of the services supported by a modern NoSQL database.
The in-memory database implemented by Couchbase is a distributed CP (consistent and partition-tolerant in CAP) database. It supports:
- Logical partitioning of data across multiple nodes
- Querying of data using a query language called N1QL
- Full-text search of data
- Intra datacenter replication for data redundancy to cope up with single node failures
- Cross datacenter replication to recover from any total outage of a datacenter and for geographical distribution of data centers
- Elastic scaling of the database upon increase in data or load on a service, that is, more nodes can be added without disruption in operation
- Independent scaling of the data and the services, that is, they can run on different nodes and scale independently as their load increases or decreases
- Automatic detection of node level failures and partition rebalance (promotion of redundant replica partition(s) to active and/or building new redundant replica partitions)
- Periodic data backup service
The in-memory database as implemented by Couchbase has some known constraints. Naturally, the data should fit in memory. Currently the in-memory database can be configured to handle memory overflow in two ways. In one configuration, it rejects additional data until the capacity to store data in memory is increased or until the application cleans up some data that is no longer needed. In the other, it just behaves like an LRU cache, that is, it deletes the least recently used data to make room for more. For data durability it relies on intra datacenter replication, data backup service, and cross datacenter replication.
The table below compares three different database types in the Couchbase Data Platform.
With the Fast In-Memory NoSQL Database by Couchbase, one can power up social and mobile applications, content and metadata stores, eCommerce, and online gaming applications at the speed of memory and can still get full support for documents, a flexible data model, indexing, full-text search, and real-time analytics.