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!
- Download Couchbase Server 6.5 Beta
- Download Couchbase Server 6.5 Beta Docker (couchbase:6.5.0-beta)
- Read Couchbase Server 6.5 Beta documentation
- Share your thoughts on the Couchbase Forums
- See all the blogs about Couchbase Server 6.5
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.
- Webpage: ACID Transactions for NoSQL Applications
- Blog: Couchbase Brings Distributed Multi-document ACID Transactions to NoSQL
- Documentation: Distributed ACID Transactions
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:
- 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.
- Documentation: (alpha version)
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.
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)
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.
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.
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).
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. Version history of the deployed Function is available and lets customers keep track of changes to the Function.
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.
- Documentation: Managing Buckets in Couchbase Cluster 6.5
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).
- Blog: Introducing Collections
- Tutorial : Get Started with Couchbase Collections Using the Demo App
- Documentation: Collections Overview
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.
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.
- Blog: Exercising Control on Quality of Service using XDCR
- Documentation: XDCR Priority
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, automatic rebalance after node failover, and enhanced monitoring of rebalance progress.
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.
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.
- Blog: Managing LDAP Group External Users in Couchbase Server 6.5
- Documentation: LDAP Groups
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.
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).
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.
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.