Home / Companies / Couchbase / Blog / June 2021

June 2021 Summaries

15 posts from Couchbase

Filter
Month: Year:
Post Summaries Back to Blog
Couchbase has announced modifications to the licensing of its Community Edition products, limiting individual cluster sizes to five nodes and designating cross data center replication (XDCR) as a feature exclusive to the Enterprise Edition. This adjustment aims to prevent the over-deployment of unsupported software and affects approximately 5% of clusters using the Community Edition. While these changes restrict the scalability of the Community Edition, the software remains free under the BSL 1.1 license. Users who require larger clusters or XDCR capabilities are encouraged to upgrade to the Enterprise Edition. The announcement has attracted criticism from users, particularly startups, who argue that the new limitations hinder their ability to deploy robust applications and maintain multi-cloud deployments. Couchbase plans to offer free cloud-based options in the future and advises users to attend upcoming conferences for more information.
Jun 30, 2021 621 words in the original blog post.
OpenID Connect (OIDC) is a widely used client authentication method for Couchbase Sync Gateway, facilitating the synchronization of Couchbase Lite clients, web frontends, or mobile apps. The system uses OIDC Implicit Flow for authentication, which is simpler than the Authorization Code flow and involves embedding an ID token as a Bearer token or using a session ID for replication processes. Configuration involves setting up Couchbase Sync Gateway for OIDC authentication by specifying providers, client IDs, and registration options. On startup, Sync Gateway fetches metadata from the OIDC provider's discovery endpoint to validate tokens, using either offline mode for ID token validation or session cookies for continuous sessions. Users can be automatically created on Sync Gateway if they do not exist, but they are initially without specific access grants. Access grants to documents can be managed dynamically or statically, ensuring that users only see content they have permissions for. Changes in user access or deletion during replication can impact the replication process, terminating it if necessary. Future posts promise to explore the Authorization Code Flow within Sync Gateway.
Jun 29, 2021 1,844 words in the original blog post.
Couchbase Mobile extends the power of Couchbase to the edge, securely managing and syncing data from any cloud to edge devices or directly between edge devices. The platform supports Java for use in desktop and server applications, enabling offline-first support within Java-based UI frameworks such as Swing UI. Couchbase Lite offers a Predictive Queries API that leverages pre-trained machine learning models to run predictive queries against data in the database. Sync Gateway has been enhanced with improved write scaling, import scaling, and high availability of import processing, allowing for increased throughput and performance. These features make it easier for developers to build applications with offline-first support across a wide range of platforms, including mobile, desktop, and cross-platform environments.
Jun 28, 2021 904 words in the original blog post.
At Couchbase, the company is dedicating June and July to celebrating Java developers and has updated its developer-targeted content to support this theme. The company's "Get Started" content now includes a quickstart tutorial for using Couchbase with Java and Spring Boot. Document databases offer flexibility in data structures, which can be controlled programmatically by the application rather than the database itself. N1QL query language is designed to be similar to SQL while still being expressive and universal. Developers can use transactions, indexing capabilities, and the Couchbase Playground to explore and learn about Couchbase. The company also offers training and certification programs for Java developers through Couchbase Academy.
Jun 24, 2021 1,078 words in the original blog post.
With the recent release of Couchbase Autonomous Operator (CAO) 2.2, log processing and forwarding for Kubernetes deployments using OSS Fluent Bit tooling have been provided. Fluent Bit is a widely used and highly performant OSS solution for dealing with logs, capable of consuming multiple input types, parsing, filtering or transforming them, and sending to multiple output destinations. The Couchbase Logging Solution with Fluent Bit has been extended to satisfy specific Couchbase needs, such as support for dynamic configuration change without restarting Couchbase Server and triggering a rebalance. This is achieved by providing a basic set of parsers for the various log files produced by Couchbase Server. The solution also includes an example using Grafana, Prometheus, and Loki, where logs are visualized in real-time, allowing for better observability and monitoring of Couchbase Server. The deployment involves running Fluent Bit as a container, mounting local logs directories, configuring the container to forward logs to Loki, and then visualizing logs in Grafana. Known issues include "entry out of order" errors when sending logs to Loki, which are related to the Loki service's requirements for stream ordering. New versions of Couchbase Fluent Bit have been released with additional Kubernetes integration and improvements, particularly when integrating with Loki.
Jun 23, 2021 3,142 words in the original blog post.
OAuth 2.0 is an industry standard for delegated authorization, which allows applications or clients to access data or features offered by another app or service. OpenID Connect (OIDC) adds a standards-based authentication layer on top of OAuth 2.0, providing a way for applications to verify the identity of users through a standardized process. The OIDC flow involves an application requesting authentication from an authorization server, which prompts the user to log in and authorize access to specific resources. Once authorized, the authorization server redirects the user back to the application with an identity token, which can be used to authenticate subsequent requests. Two common OIDC flows are the Implicit Flow and the Authorization Code Flow, both of which require the application to be registered with the authorization server and to provide a client ID and client secret for authentication. The Identity Token is a JSON Web Token (JWT) that encodes the user's authentication claims, digitally signed by the issuer. Understanding OIDC and OAuth 2.0 flows is crucial for implementing secure authentication and authorization in modern applications.
Jun 22, 2021 2,159 words in the original blog post.
Couchbase Cloud 1.6 introduces enhanced data import features, allowing users to import documents via the Couchbase Cloud Web UI with options for key generation and configuration, facilitating the transfer of small datasets, typically under 100 MB, in various formats. This feature builds on the existing `cbimport` tool and leverages Cloud Native technologies like local S3 storage, enabling asynchronous and concurrent imports while providing email notifications upon completion. Users can generate custom keys using expressions, with the option to ignore specific fields during import, ensuring flexibility and precision in data handling. The import process is user-friendly, with a step-by-step guide starting from bucket selection to key generation and configuration, and concludes with a verification step that provides a summary of the import outcome. Despite its ease of use, potential pitfalls such as incorrect file type selection and key generation errors are highlighted, alongside best practices like using cURL for larger files and ensuring adequate bucket capacity. The platform also offers a history of import activities and troubleshooting logs, allowing users to audit and re-import files conveniently. Overall, Couchbase Cloud 1.6 aims to streamline the data migration from on-premises to the cloud, complementing its existing data management capabilities.
Jun 21, 2021 2,692 words in the original blog post.
Couchbase's Global Secondary Index (GSI) partitioning is a powerful feature that enhances querying capabilities by dividing large indexes across multiple nodes, ensuring improved query performance and scalability. GSI supports advanced scaling and predictable low-latency querying by allowing indexes to be independently partitioned, which provides flexibility in managing indexes according to specific query requirements. Partitioning is particularly beneficial in scenarios with heavy workloads, facilitating parallel scanning and efficient workload distribution across nodes. Index partitioning is versatile, being used creatively beyond its original purpose of scaling large indexes, such as in Command and Query Responsibility Segregation (CQRS) for write-heavy applications. Choosing appropriate partition keys can minimize latency for range queries and optimize performance, while partition placement allows administrators to distribute partitions based on resource availability. The thoughtful application of index partitioning strategies can balance performance and cost-effectiveness, making it a valuable tool for various use cases.
Jun 17, 2021 1,517 words in the original blog post.
Google's Autopilot is a fully-managed Kubernetes offering that includes auto-scaling, auto-upgrades, maintenance, and automated Day 2 operations, aiming to tackle the complexities of running Kubernetes environments by eliminating the need for developers and engineers to monitor node health and calculate compute capacity. This technology represents the next phase of digitization, moving from manual and automated processes to truly autonomous operations that will become critical for meeting ever-changing customer needs as businesses adapt to digital transformation. Google Autopilot complements Couchbase's Autonomous Operator by simplifying Day 2 operations of database management, such as self-healing, security, backup, and data replication, freeing up IT departments from time-consuming administrative tasks and helping them accelerate innovation. The technology is designed to remove the administrative burden, making it a standard for others to emulate in the face of accelerating digital transformation and changing customer demands.
Jun 16, 2021 784 words in the original blog post.
Couchbase Cloud version 1.6 introduces significant enhancements, including a new public API, improved data import capabilities, a streamlined sign-up process, and expanded AWS regional coverage. The public API facilitates automation by allowing users to manage clusters, projects, and clouds through secure RESTful calls, thereby integrating Couchbase Cloud operations into custom applications. This feature can automate repetitive tasks and provide real-time insights into the cloud ecosystem. Enhanced data import functionality now supports JSON and CSV file formats, offering options for custom key generation and various configuration settings to streamline data migration. Additionally, the sign-up experience is improved to guide new users through the process more efficiently, and the service is now accessible in the AWS Middle East (Bahrain) Region, demonstrating Couchbase's commitment to ease of use and global availability.
Jun 15, 2021 1,560 words in the original blog post.
The text provides an overview of JSON databases, highlighting their flexibility and efficiency within the NoSQL family of databases. JSON databases, such as Couchbase and MongoDB, offer a dynamic approach to data management, contrasting with traditional relational databases by accommodating diverse data types and evolving application needs. They utilize the JSON format, which is both human and machine-readable, and facilitate easier schema modifications, enabling developers to extend data structures without needing a database administrator. JSON's simplicity, combined with the ability to scale using cluster-based architectures, makes it a preferred choice for modern applications, providing robust indexing, partitioning, and real-time data management capabilities. Additionally, JSON databases can integrate SQL structures, making them versatile for various indexing and search functionalities, thereby streamlining application development and ensuring high performance and availability in cloud-based environments.
Jun 14, 2021 1,507 words in the original blog post.
Couchbase has announced the general availability of Couchbase Autonomous Operator for Kubernetes (CAO) Version 2.2, which introduces a host of new features and improvements designed to enhance the cloud-native database experience. Key advancements include the support for auto-scaling of all Couchbase services, allowing for a more consistent and cost-effective performance by automatically adjusting resources based on pre-defined metrics. The update also features online expansion of persistent volumes, centralized log forwarding, and enhanced security defaults, such as mandatory TLS 1.2. Furthermore, CAO 2.2 offers improved management of server groups, automatic resource allocation, customizable Prometheus metrics, and enhanced support for backup and restore functions. Additional enhancements include a tool called cbsbctl to streamline Couchbase Service Broker deployments, as well as improvements in Helm charts and TLS certificate handling. These features collectively aim to provide organizations with a more efficient, scalable, and secure database management solution.
Jun 10, 2021 1,690 words in the original blog post.
In Couchbase Server 6.6.1, the introduction of Advanced Bucket Accessors enhances the key-value store functionality beyond what Basic Bucket Accessors offer by providing a more comprehensive set of operations, including setting expirations, solving race conditions via Check-And-Set (CAS), and manipulating key-value items under high contention. Although Basic Bucket Accessors are easier and slightly faster, Advanced Bucket Accessors allow for more sophisticated operations such as handling concurrent mutations with JavaScript-driven logic, performing distributed atomic counter operations, and setting document expirations. The advanced operations introduced include GET, INSERT, UPSERT, REPLACE, DELETE, INCREMENT, and DECREMENT, each allowing for more complex interaction with the stored data, such as checking metadata, handling CAS mismatches, and managing document lifecycles with expiration times, all of which are not possible with the simpler Basic Bucket Accessors. Examples and detailed documentation are available to illustrate the implementation of these advanced operations, demonstrating their potential to optimize data handling and ensure data integrity in concurrent processing environments.
Jun 09, 2021 2,532 words in the original blog post.
Couchbase Server 7.0 introduces support for N1QL transactions, enabling developers to perform a series of SQL-like operations on a database using a C program. The process involves setting up a program to handle transactions by providing the Couchbase bucket URL and credentials. The transaction uses a unique transaction ID, obtained from the START TRANSACTION command, which is crucial for executing subsequent queries until a COMMIT or ROLLBACK is issued. The program initializes a connection to a Couchbase cluster using the lcb_INSTANCE object and runs queries defined in a header file, handling query results through JSON parsing with the json-c library. Key steps include parsing JSON responses to extract transaction IDs and setting query parameters for transaction timeout and formatting. Callback functions are employed to manage transaction IDs and process result rows, showcasing the integration of N1QL transactions into the C SDK for Couchbase.
Jun 07, 2021 769 words in the original blog post.
The text discusses how to use Python's `input()` function to capture user input and interact with users, particularly in the context of building interactive applications such as contact pages or NoSQL document request applications like Couchbase. The article highlights two built-in functions for capturing user input: `input()` and `raw_input()`, which can be used to prompt users to enter integers or other data types, and emphasizes the importance of using these functions to capture critical inputs only. It also provides a code example that demonstrates how to use Python's `input()` function with Couchbase to request a specific document and output its results to the screen. The article concludes by discussing best practices for taking user input, such as checking sanity, capturing errors, formatting output, and using loops to keep things interactive.
Jun 02, 2021 1,153 words in the original blog post.