We are pleased to announce the release of Couchbase Server 6.5 beta with stellar features that lead the innovation in the NoSQL database market. We are excited to once again pioneer some of the most sought-after relational capabilities in the NoSQL world. These functionalities are targeted to improve developer agility, offer reduced TCO, enhance manageability, and provide enterprise-grade security and performance. Developers and DevOps folks have plenty to take away from this release.

Read a quick overview of all the new enhancements in this blog, and you can get started right away!

Unmatched Agility and Flexibility 

With this release, Couchbase is providing application developers their most sought-after relational capabilities such as distributed ACID transactions, advanced query capabilities like window functions, index advisor, cost-based optimizer, eventing enhancements, major updates to SDKs, and more! Read on for a summary of these updates.

Distributed ACID Transactions

With distributed ACID transactions, application developers can simplify their application logic by relying on all-or-nothing semantics from Couchbase for durably modifying multiple documents distributed on different nodes. Replicas are immediately consistent with the transaction commit while indexes and cross datacenter replication (XDCR) are eventually consistent with the transaction commit. Read committed isolation is provided for concurrent readers. Durability is provided at three different levels: replicate to majority of the nodes; replicate to majority and persist to disk on primary; or persist to disk on majority of the nodes.

Couchbase transactions are architected to provide ACID guarantees at scale while ensuring there are no single points of failure or performance bottlenecks. 

Read more: 

SDK 3.0

New Platform

SDK 3.0 features the new Scala SDK, allowing developers to get and fetch documents, run queries, perform analytics and full-text searches, all with native Scala. It also supports Reactor to simplify asynchronous programming. The Scala SDK supports various popular Scala JSON libraries that developers are familiar with and delivers maximum flexibility.

Simplified Async Programming

Simplified asynchronous programming leverages the latest advances in key languages:

  • Node.js SDK – Supports Promises in JavaScript ES6 that greatly simplifies asynchronous programming by making code look synchronous and avoids the problems associated with callbacks.
  • Java SDK – Supports Reactor to provide a powerful and efficient reactive programming model for Java 8-based applications. It is built on top of the Reactive Streams, a standard for building reactive applications.
  • Scala SDK – Supports Reactor to simplify asynchronous programming. 
  • Python SDK – Supports Async IO in Python 3 to simplify asynchronous code in Python and makes it almost as readable as synchronous code as there are no callbacks. It also offers support for the emerging Python type annotation standards to improve discoverability and reliability of the applications using our SDK.

The Couchbase .NET SDK 3.0 now targets both the .NET Standard 2.0 and 2.1 API specifications. This means that the .NET SDK will work on .NET Framework 4.6 and greater and .NET Core, enabling enterprises to write portable .NET applications on Windows, macOS, and Linux.

The latest features significantly improve the usability of the SDK APIs by consolidating and refining the formally overload-based interfaces into a smaller, more concise interface while retaining and improving cross-SDK conformance.

Improved HA and Observability

We implemented support for the circuit breaker pattern to improve system availability and prevent cascading failures by avoiding putting loads on a struggling resource. A circuit breaker also provides early warning on potential system issues when it trips. Circuit breaker is supported in our Java SDK, and will be implemented in our .NET and Python SDKs soon.

Coming soon in September is support for OpenTelemetry in all our SDKs to make it easy to get critical telemetry data from Couchbase applications in a robust and portable way. OpenTelemetry is a CNCF sandbox project, and the next major version of the OpenTracing and OpenCensus projects.

Read more:

Query Enhancements

With Couchbase Server 6.5, numerous novel additions are made to N1QL to meet SQL developers’ needs for a comprehensive query development toolkit for building applications. Some of them are briefly discussed below.

Window Functions

RDBMS ANSI standard equivalent window functions is now introduced in Couchbase to simplify complex queries like financial and statistical reporting using N1QL. This feature is applicable to both the Query and Analytics services – the Query service runs in SMP technology while the Analytics service runs in an MPP architecture.

Common Table Expressions (CTE)

Couchbase CTE is yet another ANSI CTE equivalent to enhance the manageability of complex queries where the developer can isolate the SQL statement into a temporary named result set which can be referenced as a source table in the context of a larger query. 

Query and Search Integration

Couchbase’s powerful Full-Text Search capability is now fully integrated with N1QL. The feature extends N1QL search functionality with fuzzy and non-exact text searches across multiple fields and any order. This relieves developers of having to write complex code to process and combine the results from separate SQL and search queries.

Cost-Based Optimizer (Developer Preview)

Couchbase is delivering the well-known cost-based optimizer, deriving access patterns based on statistical data for query tuning to the NoSQL world. This feature aids developers by eliminating the time spent on tweaking a query using a rule-based optimizer to choose the most optimal execution plan. 

Index Advisor (Developer Preview)

Index advisor is yet another valuable addition to the Couchbase tooling portfolio where index suggestions are provided to optimize query tuning and improve the performance of the queries. Running workloads are monitored and analyzed to suggest appropriate indexes for improving response times. 

User-Defined Functions (Developer Preview)

The most loved stored procedures of the relational world are back as user-defined functions with N1QL. JavaScript ninjas can use their skills to define the functions centrally, which can in turn be leveraged by several applications or microservices. This will provide better management of complex logic and application performance. 

Read more:

Analytics Enhancements

Scan Consistency in Analytics

With scan consistency in Analytics, cluster operations like rebalance and failover  will not affect the business-critical reports and dash-boards that are being used to glean insights and drive business decisions.

Read more:

Window functions

Window functions are also available in the Analytics service. While the syntax and semantics are portable between the two services, the Query service runs in SMP mode while the Analytics service runs in an MPP architecture.

Read more:

Storage compression

Storage compression using snappy enables a reduction of the disk footprint of the Analytics Service resulting in reduced storage costs. Compression can be enabled per dataset or globally for all newly created datasets. For more information, see Data Definition Language (DDL).

Eventing Enhancements

Couchbase Functions now supports native cURL that lets users propagate events to other APIs when mutation rates are low. The source bucket could be updated from inside the Function which lets developers write applications that need inline data enrichment capabilities. Also, other bucket operations, like sub-document changes, could be performed from within the Function. By leveraging ‘From Prior’ as a feed boundary, Couchbase Functions could be undeployed, edited, and redeployed without losing a single mutation; continuity is maintained.

Read more:

Unparalleled Performance at Any Scale

More Buckets per Cluster

Buckets in Couchbase provide physical, logical, and access isolation. With 6.5, we provide the ability to create up to 30 buckets in a single cluster. This would bolster the opportunities for supporting multi-tenancy and microservices-based applications with improved resource utilization. 

Read more:

Collections (Developer Preview)

As a step to drive the migration from relational to NoSQL seamlessly, collections are introduced to allow applications to structure their data by keeping similar documents together, just like tables do in relational databases. Further, related collections can be held together in a single scope. With collections and scopes, application developers will find it much easier to migrate their schemas and data to Couchbase from relational systems like Oracle and SQL Server, as well as translate their SQL queries to Couchbase N1QL. Collections and scopes can be individually access controlled, hence also enabling many microservices and/or applications to share a single Couchbase database (bucket). 

Read more:

Advanced Filtering in XDCR

XDCR’s advanced filtering provides the capability to build filters based on document attributes such as keys, values, and Xattrs with a N1QL-like syntax. We also offer the flexibility to modify the filters dynamically for ongoing replication to ensure users only replicate the data relevant to their business needs at any point during the replication.

Read more:

Quality of Service for XDCR

XDCR’s Quality of Service feature enables administrators to prioritize on-going replication streams over the initial replication to ensure the replications are serviced in the order of criticality. Priorities assigned will dictate the quality of service for every replication stream and enable efficient resource utilization.

Read more:

Easiest Platform to Manage

Robust Rebalance Operation  

Rebalance is now much more robust and resilient, enabling Couchbase administrators to automate management of their cluster rebalance. Some of the improvements include automatic restart of rebalance after failure, auto-failover during rebalance, and enhanced monitoring of rebalance progress.

Read more:

Node-to-Node Encryption

Couchbase Server continues to extends its security capabilities to meet stringent security and regulatory compliance requirements. Node-to-node encryption adds an additional layer of security by encrypting data in transit between cluster services which are deployed across servers. This prevents potential attackers from intercepting sensitive intra-cluster traffic. 

Read more:

LDAP Group Support 

With group support, you can leverage existing organizational groups in your LDAP domain to control Couchbase Server access. In addition, user groups can also be configured for local domain users to better manage and control which Couchbase resources are accessed. Groups can be mapped to real-life development teams, business units, or departments. 

Read more:

TLS Cipher Configuration 

With security becoming more and more important than ever, hardening your servers and removing older or weak cipher suites is becoming a major priority for many organizations. Couchbase Server provides a consistent approach to modify TLS cipher suites and settings across services, , which persists across server upgrades and restarts. 

Read more:

Backup and Recovery

Significant improvements are made to backup and recovery in terms of performance, storage, and scalability. We have modified the storage format, replaced the storage engine, and introduced compression at the server, which has resulted in a strong performance boost and reduced storage requirements. All the backup operations such as full and incremental backups, restore, merge, and list are faster than all the previous versions. We have also introduced a new Info command and the ability to measure consistency(developer preview).

Read more:

Advanced UI Statistics

Unique service-specific stats are made available in the UI to assist with troubleshooting. These stats are updated with a new charting framework which enables users to completely customize them, with features such as the ability to select time ranges, sizes for display, aggregation across multiple nodes, edit, drag, drop, and more.

Read more:

Resources

We would love to hear from you on how you liked the 6.5 features and how it’ll benefit your business going forward. Please share your feedback via the comments or in the forum

Posted by Anil Kumar, Director Product Management, Couchbase Server

Anil Kumar is the Director of Product Management at Couchbase. Anil’s career spans more than 15+ years building software products across various domains, including enterprise software, mobile services, and voice and video services. He is a hands-on product leader responsible for Couchbase Server, Couchbase Cloud, and Kubernetes product lines, including evangelizing the product strategy and vision with customers, partners, developers, and analysts. Before joining Couchbase, Anil spent several years working at Microsoft Redmond in the Entertainment division and most recently in the Windows and Windows Live division. Anil holds a master’s degree in computer science from the University of Toronto (Canada) and a bachelor’s in information technology from Visvesvaraya Technological University (India).

2 Comments

  1. […] Apart from that, the SDK made a jump to v3.0, which features simplified asynchronous programming as well improved high availability and observability. A complete list of features can be found in a blog post. […]

  2. […] Announcing Couchbase Server 6.5 Beta – What’s New and Improvedhttps://blog.couchbase.com/announcing-couchbase-server-6-5-0-beta-whats-new-and-improved[2] On Par with Window Functionshttps://blog.couchbase.com/on-par-with-window-functions-in-n1ql/[3] […]

Leave a reply