As application development has continued to progress over the years, so has the world of database management. MySQL and NoSQL databases have continued to adapt and thrive in the changing world of software development, shifting toward cloud-based data storage, faster, more efficient queries, and the rise of supporting not only applications running at scale, but those in development.
Couchbase is one such database, changing the shape of traditional NoSQL database management and operations with the announcement of its Couchbase 4.0 offering yesterday morning. Couchbase is one of the more popular container-based NoSQL options, providing a solid option for agile development teams, particularly those in the OSS and enterprise spheres. Couchbase 4.0 brings with it three features set to help it stand out from its competition.
1. Multi-Dimensional Scaling
Couchbase 4.0 brings with it multi-dimensional scaling, which allows developers to get more power out of the system their database is running on, even if that system is a VM or cloud-based. A typical database performs three functions: The ability to read and write data, build an index and run queries. Each function relies on separate server resources to complete these functions, each requiring different demands from a server’s hardware. Reading or writing data may not require much from one’s CPU, though with Couchbase 4.0 a user can put memory on machines specifically tailored to nothing but completing reads/writes, as this is commonly heavily read in memory.
Both indexes and queries are CPU-intensive, requiring multiple cores to run at once in order to process thousands of complicated query strings efficiently at scale. Couchbase 4.0 has eliminated the need to run all three functions on the same server, allowing developers the option to set clusters with specific machines to complete each common database task more efficiently. Often, indexing and querying take up a large amount of system resources which can impact the performance of read/write times. This is something that no development team wants to experience when working with their NoSQL database. Couchbase CEO Bob Wiederhold notes that:
“With Couchbase 4.0 you can continue to run all functions the same servers, but you have the option of, for example, taking six servers and doing reads/writes, while another two servers run indexes, and the final two run queries.”
Couchbase 4.0 allows for different servers to underline and highlight each of the core functions of a NoSQL database, making agile, rapid development simpler. One could set up bigger servers for queries with more cores, for example. This gives developers the flexibility to configure their underlying database structure to support the needs of their product, both in development, testing, and in production.
2. New Query Language, N1QL
N1QL is Couchbase’s new query language, which is sequel-compliant, catering to the needs of developers, analysts, and data security teams unfamiliar with sequel, along with those that have worked with it in the past. N1QL being sequel-compliant will lower barriers for development teams not currently working in NoSQL to move to NoSQL databases. Running SQL databases in a modern development setting strongly limits a team, particularly if one is focusing on breaking into the enterprise level. NoSQL is able to take dynamic schemas written at any point, and incorporate them into the existing database with columns left blank if need be. SQL remains rigid in this aspect, with each schema requiring precise information, each column requiring completed data in order to function.
N1QL has a multitude of querying capabilities: It supports joins, which is crucial for when developers are modeling data. Joining means that developers can join data from two different JSON documents, as opposed to having all of their data in one document. There have been others in the NoSQL-sphere offering this particular feature, such as PlayOrm and Starcounter. Both also allow developers to use joins in their documents, with PlayORM supporting other databases such as Cassandra, MongoDB and HBase.
N1QL also uses nesting and unnesting in JSON to model data. This gives developers the capability to use arrays and other complex structures, though reporting or business tools will need to look at their data in a flat format. One can unnest data prior to reporting, once the data is reported it will then be nested in N1QL.
3. Cross Data Center Replication
With more companies developing software worldwide, there is a distinct need for data centers to be accessible to remote software teams alongside the customers using a product or service. Traditionally, those working at scale will often put data centers close to customers in order to avoid latency issues when customers access data. This is usually accomplished by mirroring data across a team’s database centers worldwide. Wiederhold also notes that,
“In some situations, mirroring entire data sets may not be possible, such as in countries where companies cannot transfer sensitive data across borders.”
In this circumstance, Couchbase 4.0 uses filters to block out the sections of data which cannot be mirrored or transferred, while still mirroring those pieces that can. Filtering is useful for choosing which data to mirror, with Couchbase 4.0 adding to its cross data center replication feature the ability to use filtering to ensure data is mirrored or transmitted securely.
These changes to Couchbase present a unique opportunity to highlight the benefits of database management in NoSQL. Many companies have migrated from a traditional SQL database approach to that of NoSQL, as the needs of today’s enterprises and at-scale applications continue to rise. With more technology moving over to container-based workflows handling thousands of clusters at a time, the need to develop quickly and store multitudes of customer data efficiently has also seen a rising demand.
As applications continue to become standard, the container-based workflow pipleline shifts to meeting this demand, whether working in OSS or for private sector corporations. NoSQL provides scalability, performance and ease of use which cannot be achieved with traditional RDBMS. Relational databases require a set structure, workflow and typical usage — while NoSQL has been created to address the needs of teams operating in agile web development, IoT and mobile atmospheres. NoSQL is the database management choice for teams that want to put their data to use in a multitude of ways, without having to change their entire database to do so.