NoSQL database provider Couchbase has released a major new release of Couchbase Server.
“It is the biggest release ever for us with more than 200 features - small, medium, and large,” said Couchbase CEO Bob Wiederhold. “We are also taking some big steps forward in terms of enhancing our architecture. Architecture, we think, is critically important to ultimately having a great product."
The new release also includes new SDKs for developers and introduces a beta release of the new ForestDB Storage Engine.
3.0 Major Architectural Extensions
Couchbase Server 3.0 delivers major foundational advancements – including stream-based Database Change Protocol and Dynamically Tunable Memory – that improve scalability, resilience, performance, and the cost-efficiency of working with massive operational data sets. In independent benchmarks, Couchbase has already demonstrated industry-leading scalability and performance, outperforming competitors by up to 13x in read/write throughput. The architectural advances in the 3.0 release further extend Couchbase’s lead, resulting in performance improvements ranging from 2x to 100s of times in magnitude. In addition, the 3.0 release includes new capabilities that improve the developer experience, enhance reliability and security, and streamline administration. “We believe this will signifianctly expand the market opportunities for us as we will get to play in broader use cases in terms of how people use the system.”
The advancements in 3.0 are targeted at allowing enterprises to work with massive operational datasets in a much more cost efficient way, achieving greater output and value from their existing hardware resources, and to also apply Couchbase Server to a wider range of use cases, reducing or eliminating the need for other databases and distributed caches, thereby lowering costs and complexity.
Dynamically Tunable Memory Optimizes Resource Efficiency for Massive Datasets
“A key new foundational piece of the 3.0 architecture is the new Dynamically Tunable Memory capability, which allows us to tune the system to the various needs so that we can cater to far more use cases than we had done in the past,” said Ravi Mayuram, senior vice president Couchbase Products and Engineering.
The Dynamically Tunable Memory enables optimized, cost-efficient support for massive operational datasets and gives enterprises the option to tune memory utilization to keep keys and metadata in memory only for the working dataset - rather than the full database - thereby optimizing performance and resources for the most frequently used data. “As Couchbase is used more and more at the enterprise level, it is being put to use in various scenarios such as performance at scale for auction sites and ecommerce sites where there are millions of users transacting business at lightning speed and they are looking for a system that will provide high throughput and low latency performance characteristics which are guaranteed. At the other end of the spectrum are applications that do not need that level of performance because they do not have that level of users. We wanted to build a tunable capability which could be used to dynamically adapt the system to the various needs.” Couchbase believes, said Mayuram, that the new Dynamically Tunable Memory will significantly expand the market opportunities for Couchbase, as organizations deploy it in a wider array of use cases.
New Streaming Protocol Delivers Numerous Performance Improvements
Couchbase Server 3.0 also introduces stream-based Database Change Protocol (DCP), a major extension to Couchbase Server’s memory-centric architecture for data synchronization across nodes, clusters and data centers. High-performance distributed databases need to move large amounts of data with extreme frequency throughout the system - for a wide range of functions including rebalancing, replication and recovery - so they require a highly sophisticated and efficient way to do so.
“Our system is what is known as a distributed shared nothing architecture, with data sitting across different machines bound together by the network capabilities, and one of basic things in a distributed system that you do - and we do this a lot - is move data across between the nodes in a cluster,” said Mayuram. “With this protocol we unify the replication and data distribution between the nodes as well as across clusters and since it is memory and network bound, it is operating at the speed of memory and the speed of the network and it not bottlenecked by IO or any other constraints.”
The pure in-memory DCP removes disk IO dependencies and latency, operating hundreds of times faster than disk. In addition to stream-based in-memory communication, DCP is also engineered to enable more efficient, intelligent and fine-grained resiliency, recovery, and data management capabilities, such as pause and resume replication, and incremental backup. “Mission-critical applications demand a certain guarantee in terms of availability of data,” said Mayuram.
Couchbase 2.0 SDKs Give Developers for Faster Coding and Better Performance
In a related announcement, Couchbase also announced the release of its 2.0 SDKs. The 2.0 releases include Couchbase SDKs for C, Java, .NET, Node, PHP, Python, and Ruby making it easy for developers using the most popular programming languages to build scalable and high performance next generation applications.
In addition to the new capabilities cutting across all SDKs each language’s developer API has also been advanced. As part of the release of the 2.0 Java SDK, Couchbase, the company says, is the first NoSQL vendor to provide support for native Reactive programming – an event driven programming model that eliminates futures and callbacks, and provides a more efficient model for development. Support for reactive programming gives Java developers the ability to quickly and easily code highly scalable applications and bring applications to market faster. “Reactive programming is a trend now where people are more event-driven with programming as opposed to the imperative programming that was dominant in the past. This is basically leading edge in the Java world," said Mayuram. This native support will allow enterprises to develop their applications in an even more agile way, he noted.
“We have also streamlined our APIs so that the developer experience is consistent across all the platforms - all the different programming languages - because developers tend to jump from one to the other,” said Mayuram. Native support for JSON objects has also been introduced, and Couchbase supports popular development frameworks, including Spring Framework, ASP.net with new open source frameworks for Node.js under active development. “We want to be as natural and as native to the developer experience as possible. We want to adapt to that as opposed to them jumping through hoops to use Couchbase Server.”
Couchbase Announces Beta Release of ForestDB Storage Engine
Couchbase also announced the beta release of ForestDB, a new key-value storage engine designed to operate at ultra fast speeds. “One of the most important components of a database is a storage engine and we saw opportunities to make improvements in the storage engine technology,” said Wiederhold. Accoding to Couchbase, in benchmarking tests, ForestDB significantly outperformed key-value data stores designed by Facebook (RocksDB) and Google (LevelDB). Currently in beta, eventually, it will be moved into the main product, said Mayuram.
For more information, go to www.couchbase.com.