From 48a0dce30f70c89230bdd0640176a81cb4ed28c8 Mon Sep 17 00:00:00 2001 From: Florence Morris Date: Fri, 17 May 2024 11:47:53 -0400 Subject: [PATCH 01/30] DOC-9350 DOC-9351 Docs for Log and Metric export to Azure Monitor supported for Dedicated Azure clusters (#18549) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * (1) In cockroachdb-dedicated-on-azure.md, removed Observability limitations. (2) In export-logs.md, added filter section for Azure Monitor. (3) In export-metrics.md, added filter section for Azure Monitor. * Incorporated Arjun’s feedback. * Incorporated Ryan’s feedback. --- .../cockroachdb-dedicated-on-azure.md | 5 -- src/current/cockroachcloud/export-logs.md | 17 +++- src/current/cockroachcloud/export-metrics.md | 77 ++++++++++++++++--- 3 files changed, 79 insertions(+), 20 deletions(-) diff --git a/src/current/cockroachcloud/cockroachdb-dedicated-on-azure.md b/src/current/cockroachcloud/cockroachdb-dedicated-on-azure.md index 916e6ef5eb1..0107e57e013 100644 --- a/src/current/cockroachcloud/cockroachdb-dedicated-on-azure.md +++ b/src/current/cockroachcloud/cockroachdb-dedicated-on-azure.md @@ -21,11 +21,6 @@ CockroachDB {{ site.data.products.dedicated }} clusters on Azure have the follow - Azure Private Link is not yet available. [IP Allowlisting]({% link cockroachcloud/network-authorization.md %}#ip-allowlisting) allows you to restrict the IP addresses that can connect to your cluster. -### Observability - -- Exporting metrics to Azure Monitor is not yet available. To express interest, contact your Cockroach Labs account team. -- [Log Export]({% link cockroachcloud/export-logs.md %}) is not yet available. - ### Other features [PCI-Ready]({% link cockroachcloud/pci-dss.md %}) features are not yet available on Azure. To express interest, contact your Cockroach Labs account team. diff --git a/src/current/cockroachcloud/export-logs.md b/src/current/cockroachcloud/export-logs.md index c01a1d532d1..5cd9bd90518 100644 --- a/src/current/cockroachcloud/export-logs.md +++ b/src/current/cockroachcloud/export-logs.md @@ -6,7 +6,7 @@ docs_area: manage cloud: true --- -CockroachDB {{ site.data.products.dedicated }} users can use the [Cloud API]({% link cockroachcloud/cloud-api.md %}) to configure log export to [AWS CloudWatch](https://aws.amazon.com/cloudwatch/) or [GCP Cloud Logging](https://cloud.google.com/logging). Once the export is configured, logs will flow from all nodes in all regions of your CockroachDB {{ site.data.products.dedicated }} cluster to your chosen cloud log sink. You can configure log export to redact sensitive log entries, limit log output by severity, send log entries to specific log group targets by log channel, among others. +CockroachDB {{ site.data.products.dedicated }} users can use the [Cloud API]({% link cockroachcloud/cloud-api.md %}) to configure log export to [AWS CloudWatch](https://aws.amazon.com/cloudwatch/), [GCP Cloud Logging](https://cloud.google.com/logging), or [Azure Monitor](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/data-platform-logs). Once the export is configured, logs will flow from all nodes in all regions of your CockroachDB {{ site.data.products.dedicated }} cluster to your chosen cloud log sink. You can configure log export to redact sensitive log entries, limit log output by severity, send log entries to specific log group targets by log channel, among others. ## The `logexport` endpoint @@ -29,7 +29,7 @@ Method | Description -------|------------ `GET` | Returns the current status of the log export configuration. `POST` | Enables log export, or updates an existing log export configuration. -`DELETE` | Disables log export, halting all log export to AWS CloudWatch or GCP Cloud Logging. +`DELETE` | Disables log export, halting all log export to AWS CloudWatch, GCP Cloud Logging, or Azure Monitor. ## Log name format @@ -52,6 +52,7 @@ Where:
+
@@ -370,6 +371,14 @@ Perform the following steps to enable log export from your CockroachDB {{ site.d
+
+ +{{site.data.alerts.callout_info}} +Exporting Logs to Azure Monitor from a CockroachDB {{ site.data.products.dedicated }} cluster is in **[limited access](https://www.cockroachlabs.com/docs/{{ site.current_cloud_version }}/cockroachdb-feature-availability)** and is only available to enrolled organizations. To enroll your organization, contact your Cockroach Labs account team. This feature is subject to change. +{{site.data.alerts.end}} + +
+ {{site.data.alerts.callout_info}} Once log export has been enabled, logs generated going forward are sent to the specified cloud sink. Logs are not back-filled to the specified cloud sink. {{site.data.alerts.end}} @@ -412,7 +421,7 @@ Where: ## Limitations -- CockroachDB {{ site.data.products.dedicated }} clusters hosted on AWS can only export logs to AWS CloudWatch. Similarly, CockroachDB {{ site.data.products.dedicated }} clusters hosted on GCP can only export logs to GCP Cloud Logging. +- CockroachDB {{ site.data.products.dedicated }} clusters hosted on AWS can only export logs to AWS CloudWatch. Similarly, CockroachDB {{ site.data.products.dedicated }} clusters hosted on GCP can only export logs to GCP Cloud Logging, and CockroachDB {{ site.data.products.dedicated }} clusters hosted on Azure can only export logs to Azure Monitor. ## CockroachDB {{ site.data.products.dedicated }} log export Frequently Asked Questions (FAQ) @@ -426,7 +435,7 @@ Yes, use the custom log configuration step for your cloud provider, and specify ### Is it possible to send logs from one cloud provider to another? -No, if your CockroachDB {{ site.data.products.dedicated }} cluster resides on AWS, you can only export your logs to AWS CloudWatch. Similarly, if your CockroachDB {{ site.data.products.dedicated }} cluster resides on GCP, you can only export your logs to GCP Cloud Logging. +No, if your CockroachDB {{ site.data.products.dedicated }} cluster resides on AWS, you can only export your logs to AWS CloudWatch. Similarly, if your CockroachDB {{ site.data.products.dedicated }} cluster resides on GCP, you can only export your logs to GCP Cloud Logging, and if your CockroachDB {{ site.data.products.dedicated }} cluster resides on Azure, you can only export your logs to Azure Monitor. ### For a multi-region cluster, are the logs from all regions exported to one cloud log sink region? diff --git a/src/current/cockroachcloud/export-metrics.md b/src/current/cockroachcloud/export-metrics.md index 7be4eb9c976..ecb516e5ef5 100644 --- a/src/current/cockroachcloud/export-metrics.md +++ b/src/current/cockroachcloud/export-metrics.md @@ -6,17 +6,13 @@ docs_area: manage cloud: true --- -CockroachDB {{ site.data.products.dedicated }} users can use the [Cloud API]({% link cockroachcloud/cloud-api.md %}) to configure metrics export to [AWS CloudWatch](https://aws.amazon.com/cloudwatch/), [Datadog](https://www.datadoghq.com/), or [Prometheus](https://prometheus.io/). Once the export is configured, metrics will flow from all nodes in all regions of your CockroachDB {{ site.data.products.dedicated }} cluster to your chosen cloud metrics sink. +CockroachDB {{ site.data.products.dedicated }} users can use the [Cloud API]({% link cockroachcloud/cloud-api.md %}) to configure metrics export to [AWS CloudWatch](https://aws.amazon.com/cloudwatch/), [Datadog](https://www.datadoghq.com/), [Prometheus](https://prometheus.io/), or [Azure Monitor](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/data-platform-metrics). Once the export is configured, metrics will flow from all nodes in all regions of your CockroachDB {{ site.data.products.dedicated }} cluster to your chosen cloud metrics sink. {{site.data.alerts.callout_success}} To export metrics from a CockroachDB {{ site.data.products.core }} cluster, refer to [Monitoring and Alerting](https://www.cockroachlabs.com/docs/{{site.current_cloud_version}}/monitoring-and-alerting) instead of this page. {{site.data.alerts.end}} -Exporting metrics to AWS CloudWatch is only available on CockroachDB {{ site.data.products.dedicated }} clusters which are hosted on AWS. Metrics export to Datadog and Prometheus is supported on all CockroachDB {{ site.data.products.dedicated }} clusters. - -{{site.data.alerts.callout_info}} -{% include_cached feature-phases/preview.md %} -{{site.data.alerts.end}} +Exporting metrics to AWS CloudWatch is only available on CockroachDB {{ site.data.products.dedicated }} clusters that are hosted on AWS. Exporting metrics to Azure Monitor is only available on CockroachDB {{ site.data.products.dedicated }} clusters that are hosted on Azure. Metrics export to Datadog and Prometheus is supported on all CockroachDB {{ site.data.products.dedicated }} clusters. @@ -26,9 +22,10 @@ To configure and manage metrics export for your CockroachDB {{ site.data.product Cloud metrics sink | Metrics export endpoint ------------------ | ---------------------------------------------------- -AWS Cloudwatch | `https://cockroachlabs.cloud/api/v1/clusters/{your_cluster_id}/metricexport/cloudwatch` +AWS CloudWatch | `https://cockroachlabs.cloud/api/v1/clusters/{your_cluster_id}/metricexport/cloudwatch` Datadog | `https://cockroachlabs.cloud/api/v1/clusters/{your_cluster_id}/metricexport/datadog` Prometheus | `https://cockroachlabs.cloud/api/v1/clusters/{your_cluster_id}/metricexport/prometheus` +Azure Monitor | `https://cockroachlabs.cloud/api/v1/clusters/{your_cluster_id}/metricexport/azuremonitor` Access to the `metricexport` endpoints requires a valid CockroachDB {{ site.data.products.cloud }} [service account]({% link cockroachcloud/managing-access.md %}#manage-service-accounts) with the appropriate permissions (`admin` privilege, Cluster Administrator role, or Cluster Operator role). @@ -38,7 +35,7 @@ Method | Required permissions | Description --- | --- | --- `GET` | `ADMIN`, `EDIT`, or `READ` | Returns the current status of the metrics export configuration. `POST` | `ADMIN` or `EDIT` | Enables metrics export, or updates an existing metrics export configuration. -`DELETE` | `ADMIN` | Disables metrics export, halting all metrics export to AWS CloudWatch, Datadog, or Prometheus. +`DELETE` | `ADMIN` | Disables metrics export, halting all metrics export to AWS CloudWatch, Datadog, Prometheus, or Azure Monitor. See [Service accounts]({% link cockroachcloud/managing-access.md %}#manage-service-accounts) for instructions on configuring a service account with these required permissions. @@ -48,11 +45,16 @@ See [Service accounts]({% link cockroachcloud/managing-access.md %}#manage-servi +
-Exporting metrics to AWS CloudWatch is only available on CockroachDB {{ site.data.products.dedicated }} clusters which are hosted on AWS. If your CockroachDB {{ site.data.products.dedicated }} cluster is hosted on GCP or Azure, you can export metrics to [Datadog]({% link cockroachcloud/export-metrics.md %}?filters=datadog-metrics-export) or [Prometheus]({% link cockroachcloud/export-metrics.md %}?filters=prometheus-metrics-export) instead. +{{site.data.alerts.callout_info}} +{% include_cached feature-phases/preview.md %} +{{site.data.alerts.end}} + +Exporting metrics to AWS CloudWatch is only available on CockroachDB {{ site.data.products.dedicated }} clusters that are hosted on AWS. If your CockroachDB {{ site.data.products.dedicated }} cluster is hosted on Azure, you can export metrics to [Azure Monitor]({% link cockroachcloud/export-metrics.md %}?filters=azure-monitor-metrics-export). If your CockroachDB {{ site.data.products.dedicated }} cluster is hosted on GCP, you can export metrics to [Datadog]({% link cockroachcloud/export-metrics.md %}?filters=datadog-metrics-export) or [Prometheus]({% link cockroachcloud/export-metrics.md %}?filters=prometheus-metrics-export) instead. {{site.data.alerts.callout_info}} Enabling metrics export will send around 250 metrics per node to AWS CloudWatch. Review the [AWS CloudWatch documentation](https://aws.amazon.com/cloudwatch/pricing/) to gauge how this adds to your AWS CloudWatch spend. @@ -166,6 +168,10 @@ Perform the following steps to enable metrics export from your CockroachDB {{ si
+{{site.data.alerts.callout_info}} +{% include_cached feature-phases/preview.md %} +{{site.data.alerts.end}} + To enable metrics export for your CockroachDB {{ site.data.products.dedicated }} cluster to Datadog, you can either enable the Datadog integration in your CockroachDB {{ site.data.products.dedicated }} Cloud Console, or on the command line via the [Cloud API]({% link cockroachcloud/cloud-api.md %}): - To enable metrics export to Datadog using the Cloud Console, follow the [Monitor CockroachDB {{ site.data.products.dedicated }} with Datadog]({% link cockroachcloud/tools-page.md %}#monitor-cockroachdb-dedicated-with-datadog) instructions. @@ -218,6 +224,10 @@ A subset of CockroachDB metrics require that you explicitly [enable percentiles]
+{{site.data.alerts.callout_info}} +{% include_cached feature-phases/preview.md %} +{{site.data.alerts.end}} + 1. Find your CockroachDB {{ site.data.products.dedicated }} cluster ID: 1. Visit the CockroachDB {{ site.data.products.cloud }} console [cluster page](https://cockroachlabs.cloud/clusters). @@ -322,12 +332,21 @@ A subset of CockroachDB metrics require that you explicitly [enable percentiles]
+
+ +{{site.data.alerts.callout_info}} +Exporting Metrics to Azure Monitor from a CockroachDB {{ site.data.products.dedicated }} cluster is in **[limited access](https://www.cockroachlabs.com/docs/{{ site.current_cloud_version }}/cockroachdb-feature-availability)** and is only available to enrolled organizations. To enroll your organization, contact your Cockroach Labs account team. This feature is subject to change. +{{site.data.alerts.end}} + +
+ ## Monitor the status of a metrics export configuration
+
@@ -384,6 +403,24 @@ Where:
+
+ +To check the status of an existing Azure Monitor metrics export configuration, use the following Cloud API command: + +{% include_cached copy-clipboard.html %} +~~~shell +curl --request GET \ + --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/metricexport/azuremonitor \ + --header "Authorization: Bearer {secret_key}" +~~~ + +Where: + +- `{cluster_id}` is your CockroachDB {{ site.data.products.dedicated }} cluster's cluster ID, which can be found in the URL of your [Cloud Console](https://cockroachlabs.cloud/clusters/) for the specific cluster you wish to configure, resembling `f78b7feb-b6cf-4396-9d7f-494982d7d81e`. +- `{secret_key}` is your CockroachDB {{ site.data.products.dedicated }} API key. See [API Access]({% link cockroachcloud/managing-access.md %}) for instructions on generating this key. + +
+ ## Update an existing metrics export configuration To update an existing CockroachDB {{ site.data.products.dedicated }} metrics export configuration, make any necessary changes to your cloud provider configuration (e.g., AWS CloudWatch, Datadog, or Prometheus), then issue the same `POST` Cloud API command as shown in the [Enable metrics export](#enable-metrics-export) instructions for your cloud provider with the desired updated configuration. Follow the [Monitor the status of a metrics export configuration](#monitor-the-status-of-a-metrics-export-configuration) instructions to ensure the update completes successfully. @@ -394,6 +431,7 @@ To update an existing CockroachDB {{ site.data.products.dedicated }} metrics exp +
@@ -450,9 +488,26 @@ Where:
+
+ +To disable an existing Azure Monitor metrics export configuration, and stop sending metrics to Azure Monitor, use the following Cloud API command: + +{% include_cached copy-clipboard.html %} +~~~shell +curl --request DELETE \ + --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/metricexport/azuremonitor \ + --header "Authorization: Bearer {secret_key}" +~~~ + +Where: + +- `{cluster_id}` is your CockroachDB {{ site.data.products.dedicated }} cluster's cluster ID, which can be found in the URL of your [Cloud Console](https://cockroachlabs.cloud/clusters/) for the specific cluster you wish to configure, resembling `f78b7feb-b6cf-4396-9d7f-494982d7d81e`. +- `{secret_key}` is your CockroachDB {{ site.data.products.dedicated }} API key. See [API Access]({% link cockroachcloud/managing-access.md %}) for instructions on generating this key. +
+ ## Limitations -- Metrics export to AWS CloudWatch is only available on CockroachDB {{ site.data.products.dedicated }} clusters which are hosted on AWS. If your CockroachDB {{ site.data.products.dedicated }} cluster is hosted on GCP or Azure, you can export metrics to [Datadog]({% link cockroachcloud/export-metrics.md %}?filters=datadog-metrics-export) or [Prometheus]({% link cockroachcloud/export-metrics.md %}?filters=prometheus-metrics-export) instead. +- Metrics export to AWS CloudWatch is only available on CockroachDB {{ site.data.products.dedicated }} clusters that are hosted on AWS. Similarly, metrics export to Azure is only available on CockroachDB {{ site.data.products.dedicated }} clusters that are hosted on Azure. If your CockroachDB {{ site.data.products.dedicated }} cluster is hosted on GCP, you can export metrics to [Datadog]({% link cockroachcloud/export-metrics.md %}?filters=datadog-metrics-export) or [Prometheus]({% link cockroachcloud/export-metrics.md %}?filters=prometheus-metrics-export) instead. - AWS CloudWatch does not currently support histograms. Any histogram-type metrics emitted from your CockroachDB {{ site.data.products.dedicated }} cluster are dropped by CloudWatch. See [Prometheus metric type conversion](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights-Prometheus-metrics-conversion.html) for more information, and [Logging dropped Prometheus metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights-Prometheus-troubleshooting-EKS.html#ContainerInsights-Prometheus-troubleshooting-droppedmetrics) for instructions on tracking dropped histogram metrics in CloudWatch. ## Troubleshooting @@ -463,7 +518,7 @@ Be sure you are providing **your own** AWS Account ID as shown on the AWS [IAM p If you are using an existing AWS role, or are otherwise using a role name different from the example name used in this tutorial, be sure to use your own role name in step 8 in place of `CockroachCloudMetricsExportRole`. -Your CockroachDB {{ site.data.products.dedicated }} cluster must be running on AWS (not GCP or Azure) to make use of metrics export to AWS CloudWatch. If your CockroachDB {{ site.data.products.dedicated }} cluster is hosted on GCP or Azure, you can export metrics to [Datadog]({% link cockroachcloud/export-metrics.md %}?filters=datadog-metrics-export) or [Prometheus]({% link cockroachcloud/export-metrics.md %}?filters=prometheus-metrics-export) instead. +Your CockroachDB {{ site.data.products.dedicated }} cluster must be running on AWS (not GCP or Azure) to make use of metrics export to AWS CloudWatch. If your CockroachDB {{ site.data.products.dedicated }} cluster is hosted on Azure, you can export metrics to [Azure Monitor]({% link cockroachcloud/export-metrics.md %}?filters=azure-monitor-metrics-export). If your CockroachDB {{ site.data.products.dedicated }} cluster is hosted on GCP, you can export metrics to [Datadog]({% link cockroachcloud/export-metrics.md %}?filters=datadog-metrics-export) or [Prometheus]({% link cockroachcloud/export-metrics.md %}?filters=prometheus-metrics-export) instead. ## See Also From c06eef5a3ae931791b0fd75feee028d7e3ff25d9 Mon Sep 17 00:00:00 2001 From: Ryan Kuo <8740013+taroface@users.noreply.github.com> Date: Fri, 17 May 2024 12:42:42 -0400 Subject: [PATCH 02/30] MOLT Fetch GA documentation (#18541) * updates to continuation tokens * Replicator functionality * type mappings * MySQL concurrency * connection lifetime recommendations * Fetch and Verify permissions --------- Co-authored-by: Matt Linville (he/him) --- src/current/v23.2/molt-fetch.md | 302 ++++++++++++++++++++++++++----- src/current/v24.1/molt-fetch.md | 270 ++++++++++++++++++++++++--- src/current/v24.1/molt-verify.md | 2 +- 3 files changed, 503 insertions(+), 71 deletions(-) diff --git a/src/current/v23.2/molt-fetch.md b/src/current/v23.2/molt-fetch.md index c4879ad5e27..95849eea261 100644 --- a/src/current/v23.2/molt-fetch.md +++ b/src/current/v23.2/molt-fetch.md @@ -5,13 +5,9 @@ toc: true docs_area: migrate --- -{{site.data.alerts.callout_info}} -{% include feature-phases/preview.md %} -{{site.data.alerts.end}} - MOLT Fetch moves data from a source database into CockroachDB as part of a [database migration]({% link {{ page.version.version }}/migration-overview.md %}). -MOLT Fetch can use `IMPORT INTO` or `COPY FROM` to move the source data to CockroachDB via cloud storage (Google Cloud Storage or Amazon S3), a local file server, or directly without an intermediate store. For details, see [Usage](#usage). +MOLT Fetch uses [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}) to move the source data to cloud storage (Google Cloud Storage or Amazon S3), a local file server, or local memory. Once the data is exported, MOLT Fetch loads the data onto a target CockroachDB database. For details, see [Usage](#usage). ## Supported databases @@ -37,15 +33,17 @@ For previous binaries, see the [MOLT version manifest](https://molt.cockroachdb. Complete the following items before using MOLT Fetch: -- Ensure that the source and target schemas are identical. Tables with mismatching columns may only be partially migrated. +- Follow the recommendations in [Best practices](#best-practices). -- Ensure that the SQL user running MOLT Fetch has the required privileges to run [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}#required-privileges) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}#required-privileges) statements, depending on your intended [mode](#fetch-mode). +- Ensure that the source and target schemas are identical, unless you enable automatic schema creation with the [`'drop-on-target-and-recreate'`](#target-table-handling) option. -- To enable the [CDC cursor](#cdc-cursor) for ongoing replication: +- Ensure that the SQL user running MOLT Fetch has [`SELECT` privileges]({% link {{ page.version.version }}/grant.md %}#supported-privileges) on the source and target CockroachDB databases, along with the required privileges to run [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}#required-privileges) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}#required-privileges) (depending on the [fetch mode](#fetch-mode)) on CockroachDB, as described on their respective pages. - - If you are migrating from PostgreSQL, enable logical replication. Set [wal_level](https://www.postgresql.org/docs/current/runtime-config-wal.html) to `logical` in `postgresql.conf` or in the SQL shell. +- If you plan to use continuous replication (using either [`--ongoing-replication`](#replication) or the [CDC cursor](#cdc-cursor)): - - If you are migrating from MySQL, enable [GTID](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html) consistency. Set `gtid-mode` and `enforce-gtid-consistency` to `ON` in `mysql.cnf`, in the SQL shell, or as flags in the `mysql` start command. + - If you are migrating from PostgreSQL, enable logical replication. In `postgresql.conf` or in the SQL shell, set [`wal_level`](https://www.postgresql.org/docs/current/runtime-config-wal.html) to `logical`. + + - If you are migrating from MySQL, enable [GTID](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html) consistency. In `mysql.cnf`, in the SQL shell, or as flags in the `mysql` start command, set `gtid-mode` and `enforce-gtid-consistency` to `ON` and set `binlog_row_metadata` to `full`. - Percent-encode the connection strings for the source database and [CockroachDB]({% link {{ page.version.version }}/connect-to-the-database.md %}). This ensures that the MOLT tools can parse special characters in your password. @@ -67,33 +65,56 @@ Complete the following items before using MOLT Fetch: postgres://postgres:a%2452%26@localhost:5432/replicationload ~~~ -- If you are using Amazon S3 for [cloud storage](#cloud-storage): + - If you are using Amazon S3 for [cloud storage](#cloud-storage): - - Ensure that the environment variable and access tokens are set appropriately in the terminal running `molt fetch`. For example: + - Ensure that the environment variable and access tokens are set appropriately in the terminal running `molt fetch`. For example: - {% include_cached copy-clipboard.html %} - ~~~ shell - export AWS_REGION='us-east-1' - export AWS_SECRET_ACCESS_KEY='key' - export AWS_ACCESS_KEY_ID='id' - ~~~ + {% include_cached copy-clipboard.html %} + ~~~ shell + export AWS_REGION='us-east-1' + export AWS_SECRET_ACCESS_KEY='key' + export AWS_ACCESS_KEY_ID='id' + ~~~ - - Ensure the S3 bucket is created and accessible to CockroachDB. + - Ensure the S3 bucket is created and accessible to CockroachDB. -- If you are using Google Cloud Storage for [cloud storage](#cloud-storage): + - If you are using Google Cloud Storage for [cloud storage](#cloud-storage): - - Ensure that your local environment is authenticated using [Application Default Credentials](https://cloud.google.com/sdk/gcloud/reference/auth/application-default/login): + - Ensure that your local environment is authenticated using [Application Default Credentials](https://cloud.google.com/sdk/gcloud/reference/auth/application-default/login): - {% include_cached copy-clipboard.html %} - ~~~ shell - gcloud init - gcloud auth application-default login - ~~~ + {% include_cached copy-clipboard.html %} + ~~~ shell + gcloud init + gcloud auth application-default login + ~~~ + + - Ensure the Google Cloud Storage bucket is created and accessible to CockroachDB. - - Ensure the Google Cloud Storage bucket is created and accessible to CockroachDB. +## Best practices + +- To prevent connections from terminating prematurely during data export, set the following to high values on the source database: + + - **Maximum allowed number of connections:** MOLT Fetch can export data across multiple connections. The number of connections it will create is the number of shards ([`--export-concurrency`](#global-flags)) multiplied by the number of tables ([`--table-concurrency`](#global-flags)) being exported concurrently. + - **Maximum lifetime of a connection:** This is particularly important for MySQL sources, which can only use a single connection to move data. See the following note. + +- If a MySQL database is set as a [source](#source-and-target-databases), the [`--table-concurrency`](#global-flags) and [`--export-concurrency`](#global-flags) flags **cannot** be set above `1`. If these values are changed, MOLT Fetch returns an error. This guarantees consistency when moving data from MySQL, due to MySQL limitations. MySQL data is migrated to CockroachDB one table and shard at a time, using [`WITH CONSISTENT SNAPSHOT`](https://dev.mysql.com/doc/refman/8.0/en/commit.html) transactions. + +## Commands + +| Command | Usage | +|---------|---------------------------------------------------------------------------------------------------| +| `fetch` | Start the fetch process. This loads data from a source database to a target CockroachDB database. | + +### Subcommands + +| Command | Usage | +|--------------|----------------------------------------------------------------------| +| `tokens list` | List active [continuation tokens](#list-active-continuation-tokens). | ## Flags +### Global flags + | Flag | Description | |-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `--source` | (Required) Connection string for the source database. For details, see [Source and target databases](#source-and-target-databases). | @@ -104,7 +125,7 @@ Complete the following items before using MOLT Fetch: | `--continuation-file-name` | Restart fetch at the specified filename if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | | `--continuation-token` | Restart fetch at a specific table, using the specified continuation token, if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | | `--direct-copy` | Enables [direct copy mode](#fetch-mode), which copies data directly from source to target without using an intermediate store. | -| `--export-concurrency` | Number of concurrent threads to use for data export. **Note:** This number will be multiplied by the number of tables being moved in `--table-concurrency`. Ensure your machine has sufficient resources to handle this level of concurrency.

**Default:** `4` | +| `--export-concurrency` | Number of shards to export at a time, each on a dedicated thread. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. Refer to [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | | `--fetch-id` | Restart fetch process corresponding to the specified ID. If `--continuation-file-name` or `--continuation-token` are not specified, fetch restarts for all failed tables. | | `--flush-rows` | Number of rows before the source data is flushed to intermediate files. **Note:** If `--flush-size` is also specified, the fetch behavior is based on the flag whose criterion is met first. | | `--flush-size` | Size (in bytes) before the source data is flushed to intermediate files. **Note:** If `--flush-rows` is also specified, the fetch behavior is based on the flag whose criterion is met first. | @@ -114,18 +135,29 @@ Complete the following items before using MOLT Fetch: | `--log-file` | Write messages to the specified log filename. If not specified, messages are only written to `stdout`. | | `--logging` | Level at which to log messages (`'trace'`/`'debug'`/`'info'`/`'warn'`/`'error'`/`'fatal'`/`'panic'`).

**Default:** `'info'` | | `--metrics-listen-addr` | Address of the metrics endpoint.

**Default:** `'127.0.0.1:3030'` | +| `--non-interactive` | Run the fetch process without interactive prompts. This is recommended **only** when running `molt fetch` in an automated process (i.e., a job or continuous integration). | +| `--ongoing-replication` | Enable continuous [replication](#replication) to begin after the fetch process succeeds (i.e., initial source data is loaded into CockroachDB). | | `--pglogical-replication-slot-drop-if-exists` | Drop the replication slot, if specified with `--pglogical-replication-slot-name`. Otherwise, the default replication slot is not dropped. | -| `--pglogical-replication-slot-name` | The name of a replication slot to create before taking a snapshot of data (e.g., `'fetch'`). This flag is only necessary if you want to use a replication slot other than the default slot. | +| `--pglogical-replication-slot-name` | The name of a replication slot to create before taking a snapshot of data (e.g., `'fetch'`). **Required** in order to perform continuous [replication](#replication) from a source PostgreSQL database. | | `--pglogical-replication-slot-plugin` | The output plugin used for logical replication under `--pglogical-replication-slot-name`.

**Default:** `pgoutput` | | `--pprof-listen-addr` | Address of the pprof endpoint.

**Default:** `'127.0.0.1:3031'` | +| `--replicator-flags` | If continuous [replication](#replication) is enabled with `--ongoing-replication`, specify Replicator flags ([PostgreSQL](https://github.com/cockroachdb/replicator/wiki/PGLogical#postgresql-logical-replication) or [MySQL](https://github.com/cockroachdb/replicator/wiki/MYLogical#mysqlmariadb-replication)) to override. | | `--row-batch-size` | Number of rows to select at a time for export from the source database.

**Default:** `100000` | | `--schema-filter` | Move schemas that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | -| `--table-concurrency` | Number of tables to move at a time. **Note:** This number will be multiplied by the value of `--export-concurrency`. Ensure your machine has sufficient resources to handle this level of concurrency.

**Default:** 4 | +| `--table-concurrency` | Number of tables to export at a time. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. See [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | | `--table-filter` | Move tables that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | | `--table-handling` | How tables are initialized on the target database (`'none'`/`'drop-on-target-and-recreate'`/`'truncate-if-exists'`). For details, see [Target table handling](#target-table-handling).

**Default:** `'none'` | +| `--type-map-file` | Path to a JSON file that contains explicit type mappings for automatic schema creation, when enabled with `--table-handling 'drop-on-target-and-recreate'`. For details on the JSON format and valid type mappings, see [type mapping](#type-mapping). | | `--use-console-writer` | Use the console writer, which has cleaner log output but introduces more latency.

**Default:** `false` (log as structured JSON) | | `--use-copy` | Use [`COPY FROM` mode](#fetch-mode) to move data. This makes tables queryable during data load, but is slower than `IMPORT INTO` mode. For details, see [Fetch mode](#fetch-mode). | +### `tokens list` flags + +| Flag | Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------| +| `--conn-string` | (Required) Connection string for the target database. For details, see [List active continuation tokens](#list-active-continuation-tokens). | +| `-n`, `--num-results` | Number of results to return. | + ## Usage The following sections describe how to use the `molt fetch` [flags](#flags). @@ -275,23 +307,116 @@ To drop existing tables and create new tables before loading the data, use `'dro --table-handling 'drop-on-target-and-recreate' ~~~ -With each option, MOLT Fetch creates a new CockroachDB table to load the source data if one does not exist. +When using the `'drop-on-target-and-recreate'` option, MOLT Fetch creates a new CockroachDB table to load the source data if one does not already exist. To guide the automatic schema creation, you can [explicitly map source types to CockroachDB types](#type-mapping). + +#### Type mapping + +If [`'drop-on-target-and-recreate'`](#target-table-handling) is set, MOLT Fetch automatically creates a CockroachDB schema that is compatible with the source data. The column types are determined as follows: + +- PostgreSQL types are mapped to existing CockroachDB [types]({% link {{ page.version.version }}/data-types.md %}) that have the same [`OID`]({% link {{ page.version.version }}/oid.md %}). +- The following MySQL types are mapped to corresponding CockroachDB types: + + | MySQL type | CockroachDB type | + |-----------------------------------------------------|----------------------------------------------------------------------------------------------------------------| + | `CHAR`, `CHARACTER`, `VARCHAR`, `NCHAR`, `NVARCHAR` | [`VARCHAR`]({% link {{ page.version.version }}/string.md %}) | + | `TINYTEXT`, `TEXT`, `MEDIUMTEXT`, `LONGTEXT` | [`STRING`]({% link {{ page.version.version }}/string.md %}) | + | `GEOMETRY` | [`GEOMETRY`]({% link {{ page.version.version }}/architecture/glossary.md %}#geometry) | + | `LINESTRING` | [`LINESTRING`]({% link {{ page.version.version }}/linestring.md %}) | + | `POINT` | [`POINT`]({% link {{ page.version.version }}/point.md %}) | + | `POLYGON` | [`POLYGON`]({% link {{ page.version.version }}/polygon.md %}) | + | `MULTIPOINT` | [`MULTIPOINT`]({% link {{ page.version.version }}/multipoint.md %}) | + | `MULTILINESTRING` | [`MULTILINESTRING`]({% link {{ page.version.version }}/multilinestring.md %}) | + | `MULTIPOLYGON` | [`MULTIPOLYGON`]({% link {{ page.version.version }}/multipolygon.md %}) | + | `GEOMETRYCOLLECTION`, `GEOMCOLLECTION` | [`GEOMETRYCOLLECTION`]({% link {{ page.version.version }}/geometrycollection.md %}) | + | `JSON` | [`JSONB`]({% link {{ page.version.version }}/jsonb.md %}) | + | `TINYINT`, `INT1` | [`INT2`]({% link {{ page.version.version }}/int.md %}) | + | `BLOB` | [`BYTES`]({% link {{ page.version.version }}/bytes.md %}) | + | `SMALLINT`, `INT2` | [`INT2`]({% link {{ page.version.version }}/int.md %}) | + | `MEDIUMINT`, `INT`, `INTEGER`, `INT4` | [`INT4`]({% link {{ page.version.version }}/int.md %}) | + | `BIGINT`, `INT8` | [`INT`]({% link {{ page.version.version }}/int.md %}) | + | `FLOAT` | [`FLOAT4`]({% link {{ page.version.version }}/float.md %}) | + | `DOUBLE` | [`FLOAT`]({% link {{ page.version.version }}/float.md %}) | + | `DECIMAL`, `NUMERIC`, `REAL` | [`DECIMAL`]({% link {{ page.version.version }}/decimal.md %}) (Negative scale values are autocorrected to `0`) | + | `BINARY`, `VARBINARY` | [`BYTES`]({% link {{ page.version.version }}/bytes.md %}) | + | `DATETIME` | [`TIMESTAMP`]({% link {{ page.version.version }}/timestamp.md %}) | + | `TIMESTAMP` | [`TIMESTAMPTZ`]({% link {{ page.version.version }}/timestamp.md %}) | + | `TIME` | [`TIME`]({% link {{ page.version.version }}/time.md %}) | + | `BIT` | [`VARBIT`]({% link {{ page.version.version }}/bit.md %}) | + | `DATE` | [`DATE`]({% link {{ page.version.version }}/date.md %}) | + | `TINYBLOB`, `MEDIUMBLOB`, `LONGBLOB` | [`BYTES`]({% link {{ page.version.version }}/bytes.md %}) | + | `BOOL`, `BOOLEAN` | [`BOOL`]({% link {{ page.version.version }}/bool.md %}) | + | `ENUM` | [`ANY_ENUM`]({% link {{ page.version.version }}/enum.md %}) | + +- To override the default mappings for automatic schema creation, you can map source to target CockroachDB types explicitly. These are specified using a JSON file and `--type-map-file`. The allowable custom mappings are valid CockroachDB aliases, casts, and the following mappings specific to MOLT Fetch and [Verify]({% link {{ page.version.version }}/molt-verify.md %}): + + - [`TIMESTAMP`]({% link {{ page.version.version }}/timestamp.md %}) <> [`TIMESTAMPTZ`]({% link {{ page.version.version }}/timestamp.md %}) + - [`VARCHAR`]({% link {{ page.version.version }}/string.md %}) <> [`UUID`]({% link {{ page.version.version }}/uuid.md %}) + - [`BOOL`]({% link {{ page.version.version }}/bool.md %}) <> [`INT2`]({% link {{ page.version.version }}/int.md %}) + - [`VARBIT`]({% link {{ page.version.version }}/bit.md %}) <> [`TEXT`]({% link {{ page.version.version }}/string.md %}) + - [`JSONB`]({% link {{ page.version.version }}/jsonb.md %}) <> [`TEXT`]({% link {{ page.version.version }}/string.md %}) + - [`INET`]({% link {{ page.version.version }}/inet.md %}) <> [`TEXT`]({% link {{ page.version.version }}/string.md %}) + +`--type-map-file` specifies the path to the JSON file containing the explicit type mappings. For example: + +{% include_cached copy-clipboard.html %} +~~~ +--type-map-file 'type-mappings.json' +~~~ + +The JSON is formatted as follows: + +~~~ json +[ + { + "table": "public.t1", + "column-type-map": [ + { + "column": "*", + "type-kv": { + "source-type": "int", + "crdb-type": "INT2" + } + }, + { + "column": "name", + "type-kv": { + "source-type": "varbit", + "crdb-type": "string" + } + } + ] + } +] +~~~ + +- `table` specifies the table that will use the custom type mappings in `column-type-map`, written as `{schema}.{table}`. +- `column` specifies the column that will use the custom type mapping in `type-kv`. If `*` is specified, then all columns in the `table` with the matching `source-type` are converted. +- `type-kv` specifies the `source-type` that maps to the target `crdb-type`. ### Fetch continuation -If `molt fetch` exits with an error after loading data from [cloud](#cloud-storage) or [local storage](#local-file-server), you can continue the process from the *continuation point* where it was interrupted. +If MOLT Fetch fails while loading data into CockroachDB from intermediate files, it exits with an error message, fetch ID, and [continuation token](#list-active-continuation-tokens) for each table that failed to load on the target database. You can use this information to continue the process from the *continuation point* where it was interrupted. For an example, see [Continue fetch after encountering an error](#continue-fetch-after-encountering-an-error). + +Continuation is only possible under the following conditions: + +- All data has been exported from the source database into intermediate files on [cloud](#cloud-storage) or [local storage](#local-file-server). +- The *initial load* of source data to the target CockroachDB database is incomplete. This means that ongoing [replication](#replication) of source data has not begun. + +{{site.data.alerts.callout_info}} +Only one fetch ID and set of continuation tokens, each token corresponding to a table, are active at any time. See [List active continuation tokens](#list-active-continuation-tokens). +{{site.data.alerts.end}} -To retry all data starting from the continuation point, include `--fetch-id` and specify the process ID from the `molt fetch` output. +To retry all data starting from the continuation point, reissue the `molt fetch` command and include the `--fetch-id`. {% include_cached copy-clipboard.html %} ~~~ --fetch-id d44762e5-6f70-43f8-8e15-58b4de10a007 ~~~ -To retry a specific table that failed, include both `--fetch-id` and `--continuation-token`. The latter flag specifies a token string that corresponds to a specific table on the source database. A continuation token is written in the `molt fetch` output for each failed table. If the fetch process encounters a subsequent error, it generates a new token for each failed table. +To retry a specific table that failed, include both `--fetch-id` and `--continuation-token`. The latter flag specifies a token string that corresponds to a specific table on the source database. A continuation token is written in the `molt fetch` output for each failed table. If the fetch process encounters a subsequent error, it generates a new token for each failed table. See [List active continuation tokens](#list-active-continuation-tokens). {{site.data.alerts.callout_info}} -This will retry only the table that corresponds to the continuation token. If the fetch process succeeds, there may still be source data that is not yet loaded onto CockroachDB. +This will retry only the table that corresponds to the continuation token. If the fetch process succeeds, there may still be source data that is not yet loaded into CockroachDB. {{site.data.alerts.end}} {% include_cached copy-clipboard.html %} @@ -300,18 +425,71 @@ This will retry only the table that corresponds to the continuation token. If th --continuation-token 011762e5-6f70-43f8-8e15-58b4de10a007 ~~~ -To retry all data starting from a specific file, include both `--fetch-id` and `--continuation-file-name`. The latter flag specifies the filename of an intermediate file in [cloud or local storage](#data-path). All filenames are prepended with `part_` and have the `.tar.gz` or `.csv` extension, depending on compression type (gzip by default). For example: +To retry all data starting from a specific file, include both `--fetch-id` and `--continuation-file-name`. The latter flag specifies the filename of an intermediate file in [cloud or local storage](#data-path). All filenames are prepended with `part_` and have the `.csv.gz` or `.csv` extension, depending on compression type (gzip by default). For example: {% include_cached copy-clipboard.html %} ~~~ --fetch-id d44762e5-6f70-43f8-8e15-58b4de10a007 ---continuation-file-name part_00000003.tar.gz +--continuation-file-name part_00000003.csv.gz ~~~ {{site.data.alerts.callout_info}} Continuation is not possible when using [direct copy mode](#direct-copy). {{site.data.alerts.end}} +#### List active continuation tokens + +To view all active continuation tokens, issue a `molt fetch tokens list` command along with `--conn-string`, which specifies the [connection string]({% link {{ page.version.version }}/connection-parameters.md %}#connect-using-a-url) for the target CockroachDB database. For example: + +{% include_cached copy-clipboard.html %} +~~~ shell +molt fetch tokens list \ +--conn-string 'postgres://root@localhost:26257/defaultdb?sslmode=verify-full' +~~~ + +~~~ ++--------------------------------------+--------------------------------------+------------------+----------------------+ +| ID | FETCH ID | TABLE NAME | FILE NAME | ++--------------------------------------+--------------------------------------+------------------+----------------------+ +| f6f0284c-d9c1-43c9-8fde-af609d0dbd82 | 66443597-5689-4df3-a7b9-9fc5e27180eb | public.employees | part_00000001.csv.gz | ++--------------------------------------+--------------------------------------+------------------+----------------------+ +Continuation Tokens. +~~~ + +### Replication + +`--ongoing-replication` enables logical replication from the source database to the target CockroachDB database. + +{% include_cached copy-clipboard.html %} +~~~ +--ongoing-replication +~~~ + +When the `--ongoing-replication` flag is set, changes on the source database are continuously replicated on CockroachDB. This begins only after the fetch process succeeds—i.e., the initial source data is loaded into CockroachDB—as indicated by a `fetch complete` message in the output. + +Before using this feature, complete the following: + +- Install the Replicator binary. Before running `molt fetch` with continuous replication, [download the binary that matches your system](https://github.com/cockroachdb/replicator/wiki/Installing#automated-builds). The Replicator binary **must** be located in the same directory as your [`molt` binary](#installation). +- Configure the source PostgreSQL or MySQL database for continuous replication, as described in [Setup](#setup). + +If the source is a PostgreSQL database, you must also specify a replication slot name: + +{% include_cached copy-clipboard.html %} +~~~ +--ongoing-replication +--pglogical-replication-slot-name 'replication_slot' +~~~ + +To customize the Replicator behavior (an advanced use case), use `--replicator-flags` to specify one or more Replicator flags ([PostgreSQL](https://github.com/cockroachdb/replicator/wiki/PGLogical#postgresql-logical-replication) or [MySQL](https://github.com/cockroachdb/replicator/wiki/MYLogical#mysqlmariadb-replication)) to override. + +{% include_cached copy-clipboard.html %} +~~~ +--ongoing-replication +--replicator-flags "--applyTimeout '1h' --parallelism 64" +~~~ + +To cancel replication, enter `ctrl-c` to issue a `SIGTERM` signal. This returns an exit code `0`. If replication fails, a non-zero exit code is returned. + ### CDC cursor A change data capture (CDC) cursor is written to the output as `cdc_cursor` at the beginning and end of the fetch process. For example: @@ -324,13 +502,13 @@ You can use the `cdc_cursor` value with an external change data capture (CDC) to ## Examples -The following examples demonstrate how to issue `molt fetch` commands to load data onto CockroachDB. +The following examples demonstrate how to issue `molt fetch` commands to load data into CockroachDB. {{site.data.alerts.callout_success}} After successfully running MOLT Fetch, you can run [`molt verify`]({% link {{ page.version.version }}/molt-verify.md %}) to confirm that replication worked successfully without missing or mismatched rows. {{site.data.alerts.end}} -### Load PostgreSQL data via S3 +### Load PostgreSQL data via S3 with ongoing replication The following `molt fetch` command uses `IMPORT INTO` to load a subset of tables from a PostgreSQL database to CockroachDB. @@ -342,13 +520,17 @@ molt fetch \ --table-handling 'truncate-if-exists' \ --table-filter 'employees' \ --bucket-path 's3://migration/data/cockroach' \ ---cleanup +--cleanup \ +--pglogical-replication-slot-name 'replication_slot' \ +--ongoing-replication ~~~ - `--table-handling` specifies that existing tables on CockroachDB should be truncated before the source data is loaded. - `--table-filter` filters for tables with the `employees` string in the name. - `--bucket-path` specifies a directory on an [Amazon S3 bucket](#data-path) where intermediate files will be written. - `--cleanup` specifies that the intermediate files should be removed after the source data is loaded. +- `--pglogical-replication-slot-name` specifies a replication slot name to be created on the source PostgreSQL database. This is used in continuous [replication](#replication). +- `--ongoing-replication` starts continuous [replication](#replication) of data from the source database to CockroachDB after the fetch process succeeds. If the fetch process succeeds, the output displays a `fetch complete` message like the following: @@ -356,9 +538,20 @@ If the fetch process succeeds, the output displays a `fetch complete` message li {"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":1,"tables":["public.employees"],"cdc_cursor":"0/3F41E40","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"} ~~~ +{{site.data.alerts.callout_info}} If the fetch process encounters an error, it will exit and can be [continued](#continue-fetch-after-encountering-an-error). +{{site.data.alerts.end}} -### Load MySQL data via GCP +Continuous [replication](#replication) begins immediately afterward: + +~~~ json +{"level":"info","time":"2024-05-13T14:33:07-04:00","message":"starting replicator"} +{"level":"info","time":"2024-05-13T14:36:22-04:00","message":"creating publication"} +~~~ + +To cancel replication, enter `ctrl-c` to issue a `SIGTERM` signal. + +### Load MySQL data via GCP with ongoing replication The following `molt fetch` command uses `COPY FROM` to load a subset of tables from a MySQL database to CockroachDB. @@ -379,6 +572,7 @@ molt fetch \ - `--bucket-path` specifies a directory on an [Google Cloud Storage bucket](#data-path) where intermediate files will be written. - `--use-copy` specifies that `COPY FROM` is used to load the tables, keeping the source tables online and queryable but loading the data more slowly than `IMPORT INTO`. - `--cleanup` specifies that the intermediate files should be removed after the source data is loaded. +- `--ongoing-replication` starts continuous [replication](#replication) of data from the source database to CockroachDB after the fetch process succeeds. If the fetch process succeeds, the output displays a `fetch complete` message like the following: @@ -386,7 +580,17 @@ If the fetch process succeeds, the output displays a `fetch complete` message li {"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":1,"tables":["public.employees"],"cdc_cursor":"0/3F41E40","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"} ~~~ +{{site.data.alerts.callout_info}} If the fetch process encounters an error, it will exit and can be [continued](#continue-fetch-after-encountering-an-error). +{{site.data.alerts.end}} + +Continuous [replication](#replication) begins immediately afterward: + +~~~ json +{"level":"info","time":"2024-05-13T14:33:07-04:00","message":"starting replicator"} +~~~ + +To cancel replication, enter `ctrl-c` to issue a `SIGTERM` signal. ### Load CockroachDB data via direct copy @@ -406,7 +610,7 @@ molt fetch \ ### Continue fetch after encountering an error -If `molt fetch` encounters an error, it exits with an error message, fetch ID, and continuation token for each table that failed to load on the target database. You can use these values to [continue the fetch process](#fetch-continuation) from where it was interrupted. +If the fetch process encounters an error, it exits with an error message, fetch ID, and continuation token for each table that failed to load on the target database. You can use these values to [continue the fetch process](#fetch-continuation) from where it was interrupted. ~~~ json {"level":"info","table":"public.tbl1","file_name":"shard_01_part_00000001.csv","message":"creating or updating token for duplicate key value violates unique constraint \"tbl1_pkey\"; Key (id)=(22) already exists."} @@ -416,6 +620,10 @@ If `molt fetch` encounters an error, it exits with an error message, fetch ID, a To retry a specific table, reissue the initial `molt fetch` command and include the fetch ID and a continuation token: +{{site.data.alerts.callout_success}} +You can use `molt fetch tokens list` to list all active continuation tokens. Refer to [List active continuation tokens](#list-active-continuation-tokens). +{{site.data.alerts.end}} + {% include_cached copy-clipboard.html %} ~~~ shell molt fetch \ @@ -424,7 +632,15 @@ molt fetch \ --continuation-token '5e7c7173-101c-4539-9b8d-28fad37d0240' ~~~ -To retry all tables that failed, exclude `--continuation-token` from the command. +To retry all tables that failed, exclude `--continuation-token` from the command. When prompted, type `y` to clear all active continuation tokens. To avoid the prompt (e.g., when running `molt fetch` in a job), include the `--non-interactive` flag: + +{% include_cached copy-clipboard.html %} +~~~ shell +molt fetch \ +... \ +--fetch-id '87bf8dc0-803c-4e26-89d5-3352576f92a7' \ +--non-interactive +~~~ ## See also diff --git a/src/current/v24.1/molt-fetch.md b/src/current/v24.1/molt-fetch.md index 811262e216f..95849eea261 100644 --- a/src/current/v24.1/molt-fetch.md +++ b/src/current/v24.1/molt-fetch.md @@ -5,13 +5,9 @@ toc: true docs_area: migrate --- -{{site.data.alerts.callout_info}} -{% include feature-phases/preview.md %} -{{site.data.alerts.end}} - MOLT Fetch moves data from a source database into CockroachDB as part of a [database migration]({% link {{ page.version.version }}/migration-overview.md %}). -MOLT Fetch can use `IMPORT INTO` or `COPY FROM` to move the source data to CockroachDB via cloud storage (Google Cloud Storage or Amazon S3), a local file server, or directly without an intermediate store. For details, see [Usage](#usage). +MOLT Fetch uses [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}) to move the source data to cloud storage (Google Cloud Storage or Amazon S3), a local file server, or local memory. Once the data is exported, MOLT Fetch loads the data onto a target CockroachDB database. For details, see [Usage](#usage). ## Supported databases @@ -37,15 +33,17 @@ For previous binaries, see the [MOLT version manifest](https://molt.cockroachdb. Complete the following items before using MOLT Fetch: -- Ensure that the source and target schemas are identical. Tables with mismatching columns may only be partially migrated. +- Follow the recommendations in [Best practices](#best-practices). -- Ensure that the SQL user running MOLT Fetch has the required privileges to run [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}#required-privileges) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}#required-privileges) statements, depending on your intended [mode](#fetch-mode). +- Ensure that the source and target schemas are identical, unless you enable automatic schema creation with the [`'drop-on-target-and-recreate'`](#target-table-handling) option. -- To enable the [CDC cursor](#cdc-cursor) for ongoing replication: +- Ensure that the SQL user running MOLT Fetch has [`SELECT` privileges]({% link {{ page.version.version }}/grant.md %}#supported-privileges) on the source and target CockroachDB databases, along with the required privileges to run [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}#required-privileges) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}#required-privileges) (depending on the [fetch mode](#fetch-mode)) on CockroachDB, as described on their respective pages. - - If you are migrating from PostgreSQL, enable logical replication. Set [wal_level](https://www.postgresql.org/docs/current/runtime-config-wal.html) to `logical` in `postgresql.conf` or in the SQL shell. +- If you plan to use continuous replication (using either [`--ongoing-replication`](#replication) or the [CDC cursor](#cdc-cursor)): - - If you are migrating from MySQL, enable [GTID](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html) consistency. Set `gtid-mode` and `enforce-gtid-consistency` to `ON` in `mysql.cnf`, in the SQL shell, or as flags in the `mysql` start command. + - If you are migrating from PostgreSQL, enable logical replication. In `postgresql.conf` or in the SQL shell, set [`wal_level`](https://www.postgresql.org/docs/current/runtime-config-wal.html) to `logical`. + + - If you are migrating from MySQL, enable [GTID](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html) consistency. In `mysql.cnf`, in the SQL shell, or as flags in the `mysql` start command, set `gtid-mode` and `enforce-gtid-consistency` to `ON` and set `binlog_row_metadata` to `full`. - Percent-encode the connection strings for the source database and [CockroachDB]({% link {{ page.version.version }}/connect-to-the-database.md %}). This ensures that the MOLT tools can parse special characters in your password. @@ -91,9 +89,32 @@ Complete the following items before using MOLT Fetch: ~~~ - Ensure the Google Cloud Storage bucket is created and accessible to CockroachDB. - + +## Best practices + +- To prevent connections from terminating prematurely during data export, set the following to high values on the source database: + + - **Maximum allowed number of connections:** MOLT Fetch can export data across multiple connections. The number of connections it will create is the number of shards ([`--export-concurrency`](#global-flags)) multiplied by the number of tables ([`--table-concurrency`](#global-flags)) being exported concurrently. + - **Maximum lifetime of a connection:** This is particularly important for MySQL sources, which can only use a single connection to move data. See the following note. + +- If a MySQL database is set as a [source](#source-and-target-databases), the [`--table-concurrency`](#global-flags) and [`--export-concurrency`](#global-flags) flags **cannot** be set above `1`. If these values are changed, MOLT Fetch returns an error. This guarantees consistency when moving data from MySQL, due to MySQL limitations. MySQL data is migrated to CockroachDB one table and shard at a time, using [`WITH CONSISTENT SNAPSHOT`](https://dev.mysql.com/doc/refman/8.0/en/commit.html) transactions. + +## Commands + +| Command | Usage | +|---------|---------------------------------------------------------------------------------------------------| +| `fetch` | Start the fetch process. This loads data from a source database to a target CockroachDB database. | + +### Subcommands + +| Command | Usage | +|--------------|----------------------------------------------------------------------| +| `tokens list` | List active [continuation tokens](#list-active-continuation-tokens). | + ## Flags +### Global flags + | Flag | Description | |-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `--source` | (Required) Connection string for the source database. For details, see [Source and target databases](#source-and-target-databases). | @@ -104,7 +125,7 @@ Complete the following items before using MOLT Fetch: | `--continuation-file-name` | Restart fetch at the specified filename if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | | `--continuation-token` | Restart fetch at a specific table, using the specified continuation token, if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | | `--direct-copy` | Enables [direct copy mode](#fetch-mode), which copies data directly from source to target without using an intermediate store. | -| `--export-concurrency` | Number of concurrent threads to use for data export. **Note:** This number will be multiplied by the number of tables being moved in `--table-concurrency`. Ensure your machine has sufficient resources to handle this level of concurrency.

**Default:** `4` | +| `--export-concurrency` | Number of shards to export at a time, each on a dedicated thread. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. Refer to [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | | `--fetch-id` | Restart fetch process corresponding to the specified ID. If `--continuation-file-name` or `--continuation-token` are not specified, fetch restarts for all failed tables. | | `--flush-rows` | Number of rows before the source data is flushed to intermediate files. **Note:** If `--flush-size` is also specified, the fetch behavior is based on the flag whose criterion is met first. | | `--flush-size` | Size (in bytes) before the source data is flushed to intermediate files. **Note:** If `--flush-rows` is also specified, the fetch behavior is based on the flag whose criterion is met first. | @@ -114,18 +135,29 @@ Complete the following items before using MOLT Fetch: | `--log-file` | Write messages to the specified log filename. If not specified, messages are only written to `stdout`. | | `--logging` | Level at which to log messages (`'trace'`/`'debug'`/`'info'`/`'warn'`/`'error'`/`'fatal'`/`'panic'`).

**Default:** `'info'` | | `--metrics-listen-addr` | Address of the metrics endpoint.

**Default:** `'127.0.0.1:3030'` | +| `--non-interactive` | Run the fetch process without interactive prompts. This is recommended **only** when running `molt fetch` in an automated process (i.e., a job or continuous integration). | +| `--ongoing-replication` | Enable continuous [replication](#replication) to begin after the fetch process succeeds (i.e., initial source data is loaded into CockroachDB). | | `--pglogical-replication-slot-drop-if-exists` | Drop the replication slot, if specified with `--pglogical-replication-slot-name`. Otherwise, the default replication slot is not dropped. | -| `--pglogical-replication-slot-name` | The name of a replication slot to create before taking a snapshot of data (e.g., `'fetch'`). This flag is only necessary if you want to use a replication slot other than the default slot. | +| `--pglogical-replication-slot-name` | The name of a replication slot to create before taking a snapshot of data (e.g., `'fetch'`). **Required** in order to perform continuous [replication](#replication) from a source PostgreSQL database. | | `--pglogical-replication-slot-plugin` | The output plugin used for logical replication under `--pglogical-replication-slot-name`.

**Default:** `pgoutput` | | `--pprof-listen-addr` | Address of the pprof endpoint.

**Default:** `'127.0.0.1:3031'` | +| `--replicator-flags` | If continuous [replication](#replication) is enabled with `--ongoing-replication`, specify Replicator flags ([PostgreSQL](https://github.com/cockroachdb/replicator/wiki/PGLogical#postgresql-logical-replication) or [MySQL](https://github.com/cockroachdb/replicator/wiki/MYLogical#mysqlmariadb-replication)) to override. | | `--row-batch-size` | Number of rows to select at a time for export from the source database.

**Default:** `100000` | | `--schema-filter` | Move schemas that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | -| `--table-concurrency` | Number of tables to move at a time. **Note:** This number will be multiplied by the value of `--export-concurrency`. Ensure your machine has sufficient resources to handle this level of concurrency.

**Default:** 4 | +| `--table-concurrency` | Number of tables to export at a time. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. See [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | | `--table-filter` | Move tables that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | | `--table-handling` | How tables are initialized on the target database (`'none'`/`'drop-on-target-and-recreate'`/`'truncate-if-exists'`). For details, see [Target table handling](#target-table-handling).

**Default:** `'none'` | +| `--type-map-file` | Path to a JSON file that contains explicit type mappings for automatic schema creation, when enabled with `--table-handling 'drop-on-target-and-recreate'`. For details on the JSON format and valid type mappings, see [type mapping](#type-mapping). | | `--use-console-writer` | Use the console writer, which has cleaner log output but introduces more latency.

**Default:** `false` (log as structured JSON) | | `--use-copy` | Use [`COPY FROM` mode](#fetch-mode) to move data. This makes tables queryable during data load, but is slower than `IMPORT INTO` mode. For details, see [Fetch mode](#fetch-mode). | +### `tokens list` flags + +| Flag | Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------| +| `--conn-string` | (Required) Connection string for the target database. For details, see [List active continuation tokens](#list-active-continuation-tokens). | +| `-n`, `--num-results` | Number of results to return. | + ## Usage The following sections describe how to use the `molt fetch` [flags](#flags). @@ -275,23 +307,116 @@ To drop existing tables and create new tables before loading the data, use `'dro --table-handling 'drop-on-target-and-recreate' ~~~ -With each option, MOLT Fetch creates a new CockroachDB table to load the source data if one does not exist. +When using the `'drop-on-target-and-recreate'` option, MOLT Fetch creates a new CockroachDB table to load the source data if one does not already exist. To guide the automatic schema creation, you can [explicitly map source types to CockroachDB types](#type-mapping). + +#### Type mapping + +If [`'drop-on-target-and-recreate'`](#target-table-handling) is set, MOLT Fetch automatically creates a CockroachDB schema that is compatible with the source data. The column types are determined as follows: + +- PostgreSQL types are mapped to existing CockroachDB [types]({% link {{ page.version.version }}/data-types.md %}) that have the same [`OID`]({% link {{ page.version.version }}/oid.md %}). +- The following MySQL types are mapped to corresponding CockroachDB types: + + | MySQL type | CockroachDB type | + |-----------------------------------------------------|----------------------------------------------------------------------------------------------------------------| + | `CHAR`, `CHARACTER`, `VARCHAR`, `NCHAR`, `NVARCHAR` | [`VARCHAR`]({% link {{ page.version.version }}/string.md %}) | + | `TINYTEXT`, `TEXT`, `MEDIUMTEXT`, `LONGTEXT` | [`STRING`]({% link {{ page.version.version }}/string.md %}) | + | `GEOMETRY` | [`GEOMETRY`]({% link {{ page.version.version }}/architecture/glossary.md %}#geometry) | + | `LINESTRING` | [`LINESTRING`]({% link {{ page.version.version }}/linestring.md %}) | + | `POINT` | [`POINT`]({% link {{ page.version.version }}/point.md %}) | + | `POLYGON` | [`POLYGON`]({% link {{ page.version.version }}/polygon.md %}) | + | `MULTIPOINT` | [`MULTIPOINT`]({% link {{ page.version.version }}/multipoint.md %}) | + | `MULTILINESTRING` | [`MULTILINESTRING`]({% link {{ page.version.version }}/multilinestring.md %}) | + | `MULTIPOLYGON` | [`MULTIPOLYGON`]({% link {{ page.version.version }}/multipolygon.md %}) | + | `GEOMETRYCOLLECTION`, `GEOMCOLLECTION` | [`GEOMETRYCOLLECTION`]({% link {{ page.version.version }}/geometrycollection.md %}) | + | `JSON` | [`JSONB`]({% link {{ page.version.version }}/jsonb.md %}) | + | `TINYINT`, `INT1` | [`INT2`]({% link {{ page.version.version }}/int.md %}) | + | `BLOB` | [`BYTES`]({% link {{ page.version.version }}/bytes.md %}) | + | `SMALLINT`, `INT2` | [`INT2`]({% link {{ page.version.version }}/int.md %}) | + | `MEDIUMINT`, `INT`, `INTEGER`, `INT4` | [`INT4`]({% link {{ page.version.version }}/int.md %}) | + | `BIGINT`, `INT8` | [`INT`]({% link {{ page.version.version }}/int.md %}) | + | `FLOAT` | [`FLOAT4`]({% link {{ page.version.version }}/float.md %}) | + | `DOUBLE` | [`FLOAT`]({% link {{ page.version.version }}/float.md %}) | + | `DECIMAL`, `NUMERIC`, `REAL` | [`DECIMAL`]({% link {{ page.version.version }}/decimal.md %}) (Negative scale values are autocorrected to `0`) | + | `BINARY`, `VARBINARY` | [`BYTES`]({% link {{ page.version.version }}/bytes.md %}) | + | `DATETIME` | [`TIMESTAMP`]({% link {{ page.version.version }}/timestamp.md %}) | + | `TIMESTAMP` | [`TIMESTAMPTZ`]({% link {{ page.version.version }}/timestamp.md %}) | + | `TIME` | [`TIME`]({% link {{ page.version.version }}/time.md %}) | + | `BIT` | [`VARBIT`]({% link {{ page.version.version }}/bit.md %}) | + | `DATE` | [`DATE`]({% link {{ page.version.version }}/date.md %}) | + | `TINYBLOB`, `MEDIUMBLOB`, `LONGBLOB` | [`BYTES`]({% link {{ page.version.version }}/bytes.md %}) | + | `BOOL`, `BOOLEAN` | [`BOOL`]({% link {{ page.version.version }}/bool.md %}) | + | `ENUM` | [`ANY_ENUM`]({% link {{ page.version.version }}/enum.md %}) | + +- To override the default mappings for automatic schema creation, you can map source to target CockroachDB types explicitly. These are specified using a JSON file and `--type-map-file`. The allowable custom mappings are valid CockroachDB aliases, casts, and the following mappings specific to MOLT Fetch and [Verify]({% link {{ page.version.version }}/molt-verify.md %}): + + - [`TIMESTAMP`]({% link {{ page.version.version }}/timestamp.md %}) <> [`TIMESTAMPTZ`]({% link {{ page.version.version }}/timestamp.md %}) + - [`VARCHAR`]({% link {{ page.version.version }}/string.md %}) <> [`UUID`]({% link {{ page.version.version }}/uuid.md %}) + - [`BOOL`]({% link {{ page.version.version }}/bool.md %}) <> [`INT2`]({% link {{ page.version.version }}/int.md %}) + - [`VARBIT`]({% link {{ page.version.version }}/bit.md %}) <> [`TEXT`]({% link {{ page.version.version }}/string.md %}) + - [`JSONB`]({% link {{ page.version.version }}/jsonb.md %}) <> [`TEXT`]({% link {{ page.version.version }}/string.md %}) + - [`INET`]({% link {{ page.version.version }}/inet.md %}) <> [`TEXT`]({% link {{ page.version.version }}/string.md %}) + +`--type-map-file` specifies the path to the JSON file containing the explicit type mappings. For example: + +{% include_cached copy-clipboard.html %} +~~~ +--type-map-file 'type-mappings.json' +~~~ + +The JSON is formatted as follows: + +~~~ json +[ + { + "table": "public.t1", + "column-type-map": [ + { + "column": "*", + "type-kv": { + "source-type": "int", + "crdb-type": "INT2" + } + }, + { + "column": "name", + "type-kv": { + "source-type": "varbit", + "crdb-type": "string" + } + } + ] + } +] +~~~ + +- `table` specifies the table that will use the custom type mappings in `column-type-map`, written as `{schema}.{table}`. +- `column` specifies the column that will use the custom type mapping in `type-kv`. If `*` is specified, then all columns in the `table` with the matching `source-type` are converted. +- `type-kv` specifies the `source-type` that maps to the target `crdb-type`. ### Fetch continuation -If `molt fetch` exits with an error after loading data from [cloud](#cloud-storage) or [local storage](#local-file-server), you can continue the process from the *continuation point* where it was interrupted. +If MOLT Fetch fails while loading data into CockroachDB from intermediate files, it exits with an error message, fetch ID, and [continuation token](#list-active-continuation-tokens) for each table that failed to load on the target database. You can use this information to continue the process from the *continuation point* where it was interrupted. For an example, see [Continue fetch after encountering an error](#continue-fetch-after-encountering-an-error). + +Continuation is only possible under the following conditions: + +- All data has been exported from the source database into intermediate files on [cloud](#cloud-storage) or [local storage](#local-file-server). +- The *initial load* of source data to the target CockroachDB database is incomplete. This means that ongoing [replication](#replication) of source data has not begun. + +{{site.data.alerts.callout_info}} +Only one fetch ID and set of continuation tokens, each token corresponding to a table, are active at any time. See [List active continuation tokens](#list-active-continuation-tokens). +{{site.data.alerts.end}} -To retry all data starting from the continuation point, include `--fetch-id` and specify the process ID from the `molt fetch` output. +To retry all data starting from the continuation point, reissue the `molt fetch` command and include the `--fetch-id`. {% include_cached copy-clipboard.html %} ~~~ --fetch-id d44762e5-6f70-43f8-8e15-58b4de10a007 ~~~ -To retry a specific table that failed, include both `--fetch-id` and `--continuation-token`. The latter flag specifies a token string that corresponds to a specific table on the source database. A continuation token is written in the `molt fetch` output for each failed table. If the fetch process encounters a subsequent error, it generates a new token for each failed table. +To retry a specific table that failed, include both `--fetch-id` and `--continuation-token`. The latter flag specifies a token string that corresponds to a specific table on the source database. A continuation token is written in the `molt fetch` output for each failed table. If the fetch process encounters a subsequent error, it generates a new token for each failed table. See [List active continuation tokens](#list-active-continuation-tokens). {{site.data.alerts.callout_info}} -This will retry only the table that corresponds to the continuation token. If the fetch process succeeds, there may still be source data that is not yet loaded onto CockroachDB. +This will retry only the table that corresponds to the continuation token. If the fetch process succeeds, there may still be source data that is not yet loaded into CockroachDB. {{site.data.alerts.end}} {% include_cached copy-clipboard.html %} @@ -300,18 +425,71 @@ This will retry only the table that corresponds to the continuation token. If th --continuation-token 011762e5-6f70-43f8-8e15-58b4de10a007 ~~~ -To retry all data starting from a specific file, include both `--fetch-id` and `--continuation-file-name`. The latter flag specifies the filename of an intermediate file in [cloud or local storage](#data-path). All filenames are prepended with `part_` and have the `.tar.gz` or `.csv` extension, depending on compression type (gzip by default). For example: +To retry all data starting from a specific file, include both `--fetch-id` and `--continuation-file-name`. The latter flag specifies the filename of an intermediate file in [cloud or local storage](#data-path). All filenames are prepended with `part_` and have the `.csv.gz` or `.csv` extension, depending on compression type (gzip by default). For example: {% include_cached copy-clipboard.html %} ~~~ --fetch-id d44762e5-6f70-43f8-8e15-58b4de10a007 ---continuation-file-name part_00000003.tar.gz +--continuation-file-name part_00000003.csv.gz ~~~ {{site.data.alerts.callout_info}} Continuation is not possible when using [direct copy mode](#direct-copy). {{site.data.alerts.end}} +#### List active continuation tokens + +To view all active continuation tokens, issue a `molt fetch tokens list` command along with `--conn-string`, which specifies the [connection string]({% link {{ page.version.version }}/connection-parameters.md %}#connect-using-a-url) for the target CockroachDB database. For example: + +{% include_cached copy-clipboard.html %} +~~~ shell +molt fetch tokens list \ +--conn-string 'postgres://root@localhost:26257/defaultdb?sslmode=verify-full' +~~~ + +~~~ ++--------------------------------------+--------------------------------------+------------------+----------------------+ +| ID | FETCH ID | TABLE NAME | FILE NAME | ++--------------------------------------+--------------------------------------+------------------+----------------------+ +| f6f0284c-d9c1-43c9-8fde-af609d0dbd82 | 66443597-5689-4df3-a7b9-9fc5e27180eb | public.employees | part_00000001.csv.gz | ++--------------------------------------+--------------------------------------+------------------+----------------------+ +Continuation Tokens. +~~~ + +### Replication + +`--ongoing-replication` enables logical replication from the source database to the target CockroachDB database. + +{% include_cached copy-clipboard.html %} +~~~ +--ongoing-replication +~~~ + +When the `--ongoing-replication` flag is set, changes on the source database are continuously replicated on CockroachDB. This begins only after the fetch process succeeds—i.e., the initial source data is loaded into CockroachDB—as indicated by a `fetch complete` message in the output. + +Before using this feature, complete the following: + +- Install the Replicator binary. Before running `molt fetch` with continuous replication, [download the binary that matches your system](https://github.com/cockroachdb/replicator/wiki/Installing#automated-builds). The Replicator binary **must** be located in the same directory as your [`molt` binary](#installation). +- Configure the source PostgreSQL or MySQL database for continuous replication, as described in [Setup](#setup). + +If the source is a PostgreSQL database, you must also specify a replication slot name: + +{% include_cached copy-clipboard.html %} +~~~ +--ongoing-replication +--pglogical-replication-slot-name 'replication_slot' +~~~ + +To customize the Replicator behavior (an advanced use case), use `--replicator-flags` to specify one or more Replicator flags ([PostgreSQL](https://github.com/cockroachdb/replicator/wiki/PGLogical#postgresql-logical-replication) or [MySQL](https://github.com/cockroachdb/replicator/wiki/MYLogical#mysqlmariadb-replication)) to override. + +{% include_cached copy-clipboard.html %} +~~~ +--ongoing-replication +--replicator-flags "--applyTimeout '1h' --parallelism 64" +~~~ + +To cancel replication, enter `ctrl-c` to issue a `SIGTERM` signal. This returns an exit code `0`. If replication fails, a non-zero exit code is returned. + ### CDC cursor A change data capture (CDC) cursor is written to the output as `cdc_cursor` at the beginning and end of the fetch process. For example: @@ -324,13 +502,13 @@ You can use the `cdc_cursor` value with an external change data capture (CDC) to ## Examples -The following examples demonstrate how to issue `molt fetch` commands to load data onto CockroachDB. +The following examples demonstrate how to issue `molt fetch` commands to load data into CockroachDB. {{site.data.alerts.callout_success}} After successfully running MOLT Fetch, you can run [`molt verify`]({% link {{ page.version.version }}/molt-verify.md %}) to confirm that replication worked successfully without missing or mismatched rows. {{site.data.alerts.end}} -### Load PostgreSQL data via S3 +### Load PostgreSQL data via S3 with ongoing replication The following `molt fetch` command uses `IMPORT INTO` to load a subset of tables from a PostgreSQL database to CockroachDB. @@ -342,13 +520,17 @@ molt fetch \ --table-handling 'truncate-if-exists' \ --table-filter 'employees' \ --bucket-path 's3://migration/data/cockroach' \ ---cleanup +--cleanup \ +--pglogical-replication-slot-name 'replication_slot' \ +--ongoing-replication ~~~ - `--table-handling` specifies that existing tables on CockroachDB should be truncated before the source data is loaded. - `--table-filter` filters for tables with the `employees` string in the name. - `--bucket-path` specifies a directory on an [Amazon S3 bucket](#data-path) where intermediate files will be written. - `--cleanup` specifies that the intermediate files should be removed after the source data is loaded. +- `--pglogical-replication-slot-name` specifies a replication slot name to be created on the source PostgreSQL database. This is used in continuous [replication](#replication). +- `--ongoing-replication` starts continuous [replication](#replication) of data from the source database to CockroachDB after the fetch process succeeds. If the fetch process succeeds, the output displays a `fetch complete` message like the following: @@ -356,9 +538,20 @@ If the fetch process succeeds, the output displays a `fetch complete` message li {"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":1,"tables":["public.employees"],"cdc_cursor":"0/3F41E40","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"} ~~~ +{{site.data.alerts.callout_info}} If the fetch process encounters an error, it will exit and can be [continued](#continue-fetch-after-encountering-an-error). +{{site.data.alerts.end}} -### Load MySQL data via GCP +Continuous [replication](#replication) begins immediately afterward: + +~~~ json +{"level":"info","time":"2024-05-13T14:33:07-04:00","message":"starting replicator"} +{"level":"info","time":"2024-05-13T14:36:22-04:00","message":"creating publication"} +~~~ + +To cancel replication, enter `ctrl-c` to issue a `SIGTERM` signal. + +### Load MySQL data via GCP with ongoing replication The following `molt fetch` command uses `COPY FROM` to load a subset of tables from a MySQL database to CockroachDB. @@ -379,6 +572,7 @@ molt fetch \ - `--bucket-path` specifies a directory on an [Google Cloud Storage bucket](#data-path) where intermediate files will be written. - `--use-copy` specifies that `COPY FROM` is used to load the tables, keeping the source tables online and queryable but loading the data more slowly than `IMPORT INTO`. - `--cleanup` specifies that the intermediate files should be removed after the source data is loaded. +- `--ongoing-replication` starts continuous [replication](#replication) of data from the source database to CockroachDB after the fetch process succeeds. If the fetch process succeeds, the output displays a `fetch complete` message like the following: @@ -386,7 +580,17 @@ If the fetch process succeeds, the output displays a `fetch complete` message li {"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":1,"tables":["public.employees"],"cdc_cursor":"0/3F41E40","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"} ~~~ +{{site.data.alerts.callout_info}} If the fetch process encounters an error, it will exit and can be [continued](#continue-fetch-after-encountering-an-error). +{{site.data.alerts.end}} + +Continuous [replication](#replication) begins immediately afterward: + +~~~ json +{"level":"info","time":"2024-05-13T14:33:07-04:00","message":"starting replicator"} +~~~ + +To cancel replication, enter `ctrl-c` to issue a `SIGTERM` signal. ### Load CockroachDB data via direct copy @@ -406,7 +610,7 @@ molt fetch \ ### Continue fetch after encountering an error -If `molt fetch` encounters an error, it exits with an error message, fetch ID, and continuation token for each table that failed to load on the target database. You can use these values to [continue the fetch process](#fetch-continuation) from where it was interrupted. +If the fetch process encounters an error, it exits with an error message, fetch ID, and continuation token for each table that failed to load on the target database. You can use these values to [continue the fetch process](#fetch-continuation) from where it was interrupted. ~~~ json {"level":"info","table":"public.tbl1","file_name":"shard_01_part_00000001.csv","message":"creating or updating token for duplicate key value violates unique constraint \"tbl1_pkey\"; Key (id)=(22) already exists."} @@ -416,6 +620,10 @@ If `molt fetch` encounters an error, it exits with an error message, fetch ID, a To retry a specific table, reissue the initial `molt fetch` command and include the fetch ID and a continuation token: +{{site.data.alerts.callout_success}} +You can use `molt fetch tokens list` to list all active continuation tokens. Refer to [List active continuation tokens](#list-active-continuation-tokens). +{{site.data.alerts.end}} + {% include_cached copy-clipboard.html %} ~~~ shell molt fetch \ @@ -424,7 +632,15 @@ molt fetch \ --continuation-token '5e7c7173-101c-4539-9b8d-28fad37d0240' ~~~ -To retry all tables that failed, exclude `--continuation-token` from the command. +To retry all tables that failed, exclude `--continuation-token` from the command. When prompted, type `y` to clear all active continuation tokens. To avoid the prompt (e.g., when running `molt fetch` in a job), include the `--non-interactive` flag: + +{% include_cached copy-clipboard.html %} +~~~ shell +molt fetch \ +... \ +--fetch-id '87bf8dc0-803c-4e26-89d5-3352576f92a7' \ +--non-interactive +~~~ ## See also diff --git a/src/current/v24.1/molt-verify.md b/src/current/v24.1/molt-verify.md index 561141a9369..a0e31e8bc50 100644 --- a/src/current/v24.1/molt-verify.md +++ b/src/current/v24.1/molt-verify.md @@ -45,7 +45,7 @@ For previous binaries, see the [MOLT version manifest](https://molt.cockroachdb. Complete the following items before using MOLT Verify: -- Make sure the SQL user running MOLT Verify has read privileges on the necessary tables. +- The SQL user running MOLT Verify must have the [`SELECT` privilege]({% link {{ page.version.version }}/grant.md %}#supported-privileges) on both the source and target CockroachDB tables. - Percent-encode the connection strings for the source database and [CockroachDB]({% link {{ page.version.version }}/connect-to-the-database.md %}). This ensures that the MOLT tools can parse special characters in your password. From a0e429c7fc5f336d43a0bfa58ebd7ae01a856daf Mon Sep 17 00:00:00 2001 From: Ryan Kuo <8740013+taroface@users.noreply.github.com> Date: Fri, 17 May 2024 15:26:15 -0400 Subject: [PATCH 03/30] add 24.1 known limitations; reorganize existing KLs (#18555) * add 24.1 known limitations; reorganize existing KLs --- .../plpgsql-datatype-limitations.md | 7 ----- .../plpgsql-feature-limitations.md | 9 ------ .../known-limitations/plpgsql-limitations.md | 20 +++++++++++++ .../read-committed-limitations.md | 3 +- .../known-limitations/routine-limitations.md | 7 +++++ .../stored-proc-limitations.md | 2 ++ ...proc-limitations.md => udf-limitations.md} | 12 +++----- src/current/v24.1/known-limitations.md | 29 ++++++++++++++----- src/current/v24.1/plpgsql.md | 3 +- src/current/v24.1/stored-procedures.md | 3 +- src/current/v24.1/user-defined-functions.md | 3 +- 11 files changed, 61 insertions(+), 37 deletions(-) delete mode 100644 src/current/_includes/v24.1/known-limitations/plpgsql-datatype-limitations.md delete mode 100644 src/current/_includes/v24.1/known-limitations/plpgsql-feature-limitations.md create mode 100644 src/current/_includes/v24.1/known-limitations/plpgsql-limitations.md create mode 100644 src/current/_includes/v24.1/known-limitations/routine-limitations.md create mode 100644 src/current/_includes/v24.1/known-limitations/stored-proc-limitations.md rename src/current/_includes/v24.1/known-limitations/{udf-stored-proc-limitations.md => udf-limitations.md} (75%) diff --git a/src/current/_includes/v24.1/known-limitations/plpgsql-datatype-limitations.md b/src/current/_includes/v24.1/known-limitations/plpgsql-datatype-limitations.md deleted file mode 100644 index 229120607e2..00000000000 --- a/src/current/_includes/v24.1/known-limitations/plpgsql-datatype-limitations.md +++ /dev/null @@ -1,7 +0,0 @@ -- `RECORD` parameters and variables are not supported in [user-defined functions]({% link {{ page.version.version }}/user-defined-functions.md %}). [#105713](https://github.com/cockroachdb/cockroach/issues/105713) -- Variable shadowing (e.g., declaring a variable with the same name in an inner block) is not supported in PL/pgSQL. [#117508](https://github.com/cockroachdb/cockroach/issues/117508) -- Syntax for accessing members of composite types without parentheses is not supported. [#114687](https://github.com/cockroachdb/cockroach/issues/114687) -- `NOT NULL` variable declarations are not supported. [#105243](https://github.com/cockroachdb/cockroach/issues/105243) -- Cursors opened in PL/pgSQL execute their queries on opening, affecting performance and resource usage. [#111479](https://github.com/cockroachdb/cockroach/issues/111479) -- Cursors in PL/pgSQL cannot be declared with arguments. [#117746](https://github.com/cockroachdb/cockroach/issues/117746) -- `OPEN FOR EXECUTE` is not supported for opening cursors. [#117744](https://github.com/cockroachdb/cockroach/issues/117744) \ No newline at end of file diff --git a/src/current/_includes/v24.1/known-limitations/plpgsql-feature-limitations.md b/src/current/_includes/v24.1/known-limitations/plpgsql-feature-limitations.md deleted file mode 100644 index 953bb475587..00000000000 --- a/src/current/_includes/v24.1/known-limitations/plpgsql-feature-limitations.md +++ /dev/null @@ -1,9 +0,0 @@ -- PL/pgSQL arguments cannot be referenced with ordinals (e.g., `$1`, `$2`). [#114701](https://github.com/cockroachdb/cockroach/issues/114701) -- The following statements are not supported: - - `FOR` loops, including `FOR` cursor loops, `FOR` query loops, and `FOREACH` loops. [#105246](https://github.com/cockroachdb/cockroach/issues/105246) - - `RETURN NEXT` and `RETURN QUERY`. [#117744](https://github.com/cockroachdb/cockroach/issues/117744) - - `PERFORM`, `EXECUTE`, `GET DIAGNOSTICS`, and `CASE`. [#117744](https://github.com/cockroachdb/cockroach/issues/117744) -- PL/pgSQL exception blocks cannot catch [transaction retry errors]({% link {{ page.version.version }}/transaction-retry-error-reference.md %}). [#111446](https://github.com/cockroachdb/cockroach/issues/111446) -- `RAISE` statements cannot be annotated with names of schema objects related to the error (i.e., using `COLUMN`, `CONSTRAINT`, `DATATYPE`, `TABLE`, or `SCHEMA`). [#106237](https://github.com/cockroachdb/cockroach/issues/106237) -- `RAISE` statements message the client directly, and do not produce log output. [#117750](https://github.com/cockroachdb/cockroach/issues/117750) -- `ASSERT` debugging checks are not supported. [#117744](https://github.com/cockroachdb/cockroach/issues/117744) \ No newline at end of file diff --git a/src/current/_includes/v24.1/known-limitations/plpgsql-limitations.md b/src/current/_includes/v24.1/known-limitations/plpgsql-limitations.md new file mode 100644 index 00000000000..70b66dbd6a1 --- /dev/null +++ b/src/current/_includes/v24.1/known-limitations/plpgsql-limitations.md @@ -0,0 +1,20 @@ +{% if page.name != "known-limitations.md" # New limitations in v24.1 %} +- It is not possible to use a variable as a target more than once in the same `INTO` clause. For example, `SELECT 1, 2 INTO x, x;`. [#121605](https://github.com/cockroachdb/cockroach/issues/121605) +- PLpgSQL variable declarations cannot inherit the type of a table row or column using `%TYPE` or `%ROWTYPE` syntax. [#114676](https://github.com/cockroachdb/cockroach/issues/114676) +{% endif %} +- PL/pgSQL arguments cannot be referenced with ordinals (e.g., `$1`, `$2`). [#114701](https://github.com/cockroachdb/cockroach/issues/114701) +- The following statements are not supported: + - `FOR` loops, including `FOR` cursor loops, `FOR` query loops, and `FOREACH` loops. [#105246](https://github.com/cockroachdb/cockroach/issues/105246) + - `RETURN NEXT` and `RETURN QUERY`. [#117744](https://github.com/cockroachdb/cockroach/issues/117744) + - `PERFORM`, `EXECUTE`, `GET DIAGNOSTICS`, and `CASE`. [#117744](https://github.com/cockroachdb/cockroach/issues/117744) +- PL/pgSQL exception blocks cannot catch [transaction retry errors]({% link {{ page.version.version }}/transaction-retry-error-reference.md %}). [#111446](https://github.com/cockroachdb/cockroach/issues/111446) +- `RAISE` statements cannot be annotated with names of schema objects related to the error (i.e., using `COLUMN`, `CONSTRAINT`, `DATATYPE`, `TABLE`, or `SCHEMA`). [#106237](https://github.com/cockroachdb/cockroach/issues/106237) +- `RAISE` statements message the client directly, and do not produce log output. [#117750](https://github.com/cockroachdb/cockroach/issues/117750) +- `ASSERT` debugging checks are not supported. [#117744](https://github.com/cockroachdb/cockroach/issues/117744) +- `RECORD` parameters and variables are not supported in [user-defined functions]({% link {{ page.version.version }}/user-defined-functions.md %}). [#105713](https://github.com/cockroachdb/cockroach/issues/105713) +- Variable shadowing (e.g., declaring a variable with the same name in an inner block) is not supported in PL/pgSQL. [#117508](https://github.com/cockroachdb/cockroach/issues/117508) +- Syntax for accessing members of composite types without parentheses is not supported. [#114687](https://github.com/cockroachdb/cockroach/issues/114687) +- `NOT NULL` variable declarations are not supported. [#105243](https://github.com/cockroachdb/cockroach/issues/105243) +- Cursors opened in PL/pgSQL execute their queries on opening, affecting performance and resource usage. [#111479](https://github.com/cockroachdb/cockroach/issues/111479) +- Cursors in PL/pgSQL cannot be declared with arguments. [#117746](https://github.com/cockroachdb/cockroach/issues/117746) +- `OPEN FOR EXECUTE` is not supported for opening cursors. [#117744](https://github.com/cockroachdb/cockroach/issues/117744) \ No newline at end of file diff --git a/src/current/_includes/v24.1/known-limitations/read-committed-limitations.md b/src/current/_includes/v24.1/known-limitations/read-committed-limitations.md index e9d4c899293..5087e29ac00 100644 --- a/src/current/_includes/v24.1/known-limitations/read-committed-limitations.md +++ b/src/current/_includes/v24.1/known-limitations/read-committed-limitations.md @@ -3,4 +3,5 @@ - Multi-column-family checks during updates are not supported under `READ COMMITTED` isolation. [#112488](https://github.com/cockroachdb/cockroach/issues/112488) - Because locks acquired by [foreign key]({% link {{ page.version.version }}/foreign-key.md %}) checks, [`SELECT FOR UPDATE`]({% link {{ page.version.version }}/select-for-update.md %}), and [`SELECT FOR SHARE`]({% link {{ page.version.version }}/select-for-update.md %}) are fully replicated under `READ COMMITTED` isolation, some queries experience a delay for Raft replication. - [Foreign key]({% link {{ page.version.version }}/foreign-key.md %}) checks are not performed in parallel under `READ COMMITTED` isolation. -- [`SELECT FOR UPDATE` and `SELECT FOR SHARE`]({% link {{ page.version.version }}/select-for-update.md %}) statements are less optimized under `READ COMMITTED` isolation than under `SERIALIZABLE` isolation. Under `READ COMMITTED` isolation, `SELECT FOR UPDATE` and `SELECT FOR SHARE` usually perform an extra lookup join for every locked table when compared to the same queries under `SERIALIZABLE`. In addition, some optimization steps (such as de-correlation of correlated [subqueries]({% link {{ page.version.version }}/subqueries.md %})) are not currently performed on these queries. \ No newline at end of file +- [`SELECT FOR UPDATE` and `SELECT FOR SHARE`]({% link {{ page.version.version }}/select-for-update.md %}) statements are less optimized under `READ COMMITTED` isolation than under `SERIALIZABLE` isolation. Under `READ COMMITTED` isolation, `SELECT FOR UPDATE` and `SELECT FOR SHARE` usually perform an extra lookup join for every locked table when compared to the same queries under `SERIALIZABLE`. In addition, some optimization steps (such as de-correlation of correlated [subqueries]({% link {{ page.version.version }}/subqueries.md %})) are not currently performed on these queries. +- Regardless of isolation level, [`SELECT FOR UPDATE` and `SELECT FOR SHARE`]({% link {{ page.version.version }}/select-for-update.md %}) statements in CockroachDB do not prevent insertion of new rows matching the search condition (i.e., [phantom reads]({% link {{ page.version.version }}/read-committed.md %}#non-repeatable-reads-and-phantom-reads)). This matches PostgreSQL behavior at all isolation levels. [#120673](https://github.com/cockroachdb/cockroach/issues/120673) \ No newline at end of file diff --git a/src/current/_includes/v24.1/known-limitations/routine-limitations.md b/src/current/_includes/v24.1/known-limitations/routine-limitations.md new file mode 100644 index 00000000000..f122a76f25f --- /dev/null +++ b/src/current/_includes/v24.1/known-limitations/routine-limitations.md @@ -0,0 +1,7 @@ +{% if page.name != "known-limitations.md" # New limitations in v24.1 %} +- Routines cannot be invoked with named arguments, e.g., `SELECT foo(a => 1, b => 2);` or `SELECT foo(b := 1, a := 2);`. [#122264](https://github.com/cockroachdb/cockroach/issues/122264) +- Routines cannot be created if they reference temporary tables. [#121375](https://github.com/cockroachdb/cockroach/issues/121375) +- Routines cannot be created with unnamed `INOUT` parameters. For example, `CREATE PROCEDURE p(INOUT INT) AS $$ BEGIN NULL; END; $$ LANGUAGE PLpgSQL;`. [#121251](https://github.com/cockroachdb/cockroach/issues/121251) +- Routines cannot be created if they return fewer columns than declared. For example, `CREATE FUNCTION f(OUT sum INT, INOUT a INT, INOUT b INT) LANGUAGE SQL AS $$ SELECT (a + b, b); $$;`. [#121247](https://github.com/cockroachdb/cockroach/issues/121247) +{% endif %} +- DDL statements (e.g., `CREATE TABLE`, `CREATE INDEX`) are not allowed within UDFs or stored procedures. [#110080](https://github.com/cockroachdb/cockroach/issues/110080) \ No newline at end of file diff --git a/src/current/_includes/v24.1/known-limitations/stored-proc-limitations.md b/src/current/_includes/v24.1/known-limitations/stored-proc-limitations.md new file mode 100644 index 00000000000..ec0fa31c9b8 --- /dev/null +++ b/src/current/_includes/v24.1/known-limitations/stored-proc-limitations.md @@ -0,0 +1,2 @@ +{% if page.name != "known-limitations.md" # New limitations in v24.1 %} +{% endif %} \ No newline at end of file diff --git a/src/current/_includes/v24.1/known-limitations/udf-stored-proc-limitations.md b/src/current/_includes/v24.1/known-limitations/udf-limitations.md similarity index 75% rename from src/current/_includes/v24.1/known-limitations/udf-stored-proc-limitations.md rename to src/current/_includes/v24.1/known-limitations/udf-limitations.md index 0ff2a43cd90..7064acb8775 100644 --- a/src/current/_includes/v24.1/known-limitations/udf-stored-proc-limitations.md +++ b/src/current/_includes/v24.1/known-limitations/udf-limitations.md @@ -1,13 +1,9 @@ -{% if page.name != "stored-procedures.md" %} +{% if page.name != "known-limitations.md" # New limitations in v24.1 %} +- A `RECORD`-returning UDF cannot be created without a `RETURN` statement in the root block, which would restrict the wildcard type to a concrete one. [#122945](https://github.com/cockroachdb/cockroach/issues/122945) +{% endif %} - User-defined functions are not currently supported in: - Expressions (column, index, constraint) in tables. [#87699](https://github.com/cockroachdb/cockroach/issues/87699) - Views. [#87699](https://github.com/cockroachdb/cockroach/issues/87699) - User-defined functions cannot call themselves recursively. [#93049](https://github.com/cockroachdb/cockroach/issues/93049) - [Common table expressions]({% link {{ page.version.version }}/common-table-expressions.md %}) (CTE), recursive or non-recursive, are not supported in [user-defined functions]({% link {{ page.version.version }}/user-defined-functions.md %}) (UDF). That is, you cannot use a `WITH` clause in the body of a UDF. [#92961](https://github.com/cockroachdb/cockroach/issues/92961) -- The `setval` function cannot be resolved when used inside UDF bodies. [#110860](https://github.com/cockroachdb/cockroach/issues/110860) -{% endif %} - -{% if page.name != "user-defined-functions.md" %} -{% endif %} - -- DDL statements (e.g., `CREATE TABLE`, `CREATE INDEX`) are not allowed within UDFs or stored procedures. [#110080](https://github.com/cockroachdb/cockroach/issues/110080) +- The `setval` function cannot be resolved when used inside UDF bodies. [#110860](https://github.com/cockroachdb/cockroach/issues/110860) \ No newline at end of file diff --git a/src/current/v24.1/known-limitations.md b/src/current/v24.1/known-limitations.md index 0b83770d0c3..2dae998ab10 100644 --- a/src/current/v24.1/known-limitations.md +++ b/src/current/v24.1/known-limitations.md @@ -2,7 +2,7 @@ title: Known Limitations in CockroachDB v24.1 summary: Learn about newly identified limitations in CockroachDB as well as unresolved limitations identified in earlier releases. toc: true -keywords: gin, gin index, gin indexes, inverted index, inverted indexes, accelerated index, accelerated indexes +keywords: limitations, known limitations, unsupported features, PostgreSQL compatibility docs_area: releases --- @@ -12,9 +12,24 @@ docs_area: releases This section describes newly identified limitations in CockroachDB {{ page.version.version }}. +{% comment %} {{site.data.alerts.callout_info}} Limitations will be added as they are discovered. {{site.data.alerts.end}} +{% endcomment %} + +### PL/pgSQL + +- It is not possible to use a variable as a target more than once in the same `INTO` clause. For example, `SELECT 1, 2 INTO x, x;`. [#121605](https://github.com/cockroachdb/cockroach/issues/121605) +- PLpgSQL variable declarations cannot inherit the type of a table row or column using `%TYPE` or `%ROWTYPE` syntax. [#114676](https://github.com/cockroachdb/cockroach/issues/114676) + +### UDFs and stored procedures + +- Routines cannot be invoked with named arguments, e.g., `SELECT foo(a => 1, b => 2);` or `SELECT foo(b := 1, a := 2);`. [#122264](https://github.com/cockroachdb/cockroach/issues/122264) +- Routines cannot be created if they reference temporary tables. [#121375](https://github.com/cockroachdb/cockroach/issues/121375) +- Routines cannot be created with unnamed `INOUT` parameters. For example, `CREATE PROCEDURE p(INOUT INT) AS $$ BEGIN NULL; END; $$ LANGUAGE PLpgSQL;`. [#121251](https://github.com/cockroachdb/cockroach/issues/121251) +- Routines cannot be created if they return fewer columns than declared. For example, `CREATE FUNCTION f(OUT sum INT, INOUT a INT, INOUT b INT) LANGUAGE SQL AS $$ SELECT (a + b, b); $$;`. [#121247](https://github.com/cockroachdb/cockroach/issues/121247) +- A `RECORD`-returning UDF cannot be created without a `RETURN` statement in the root block, which would restrict the wildcard type to a concrete one. [#122945](https://github.com/cockroachdb/cockroach/issues/122945) ## Limitations from {{ previous_version }} and earlier @@ -98,17 +113,15 @@ By default, CockroachDB orders `NULL`s before all other values. For compatibilit ### Functions and procedures -#### PL/pgSQL feature support - -{% include {{ page.version.version }}/known-limitations/plpgsql-feature-limitations.md %} - -#### PL/pgSQL data types +#### PL/pgSQL support -{% include {{ page.version.version }}/known-limitations/plpgsql-datatype-limitations.md %} +{% include {{ page.version.version }}/known-limitations/plpgsql-limitations.md %} #### UDF and stored procedure support -{% include {{ page.version.version }}/known-limitations/udf-stored-proc-limitations.md %} +{% include {{ page.version.version }}/known-limitations/routine-limitations.md %} +{% include {{ page.version.version }}/known-limitations/stored-proc-limitations.md %} +{% include {{ page.version.version }}/known-limitations/udf-limitations.md %} ### Transactions diff --git a/src/current/v24.1/plpgsql.md b/src/current/v24.1/plpgsql.md index 3985eed1480..d4d52291fc6 100644 --- a/src/current/v24.1/plpgsql.md +++ b/src/current/v24.1/plpgsql.md @@ -581,8 +581,7 @@ A procedure with `OUT` parameters can only be called from a PL/pgSQL routine. Fo ## Known limitations -{% include {{ page.version.version }}/known-limitations/plpgsql-feature-limitations.md %} -{% include {{ page.version.version }}/known-limitations/plpgsql-datatype-limitations.md %} +{% include {{ page.version.version }}/known-limitations/plpgsql-limitations.md %} ## See also diff --git a/src/current/v24.1/stored-procedures.md b/src/current/v24.1/stored-procedures.md index b292997d0a9..58ab75a9995 100644 --- a/src/current/v24.1/stored-procedures.md +++ b/src/current/v24.1/stored-procedures.md @@ -52,7 +52,8 @@ ALTER PROCEDURE delete_earliest_histories RENAME TO delete_histories; Stored procedures have the following limitations: -{% include {{ page.version.version }}/known-limitations/udf-stored-proc-limitations.md %} +{% include {{ page.version.version }}/known-limitations/stored-proc-limitations.md %} +{% include {{ page.version.version }}/known-limitations/routine-limitations.md %} Also refer to the [PL/pgSQL known limitations]({% link {{ page.version.version }}/plpgsql.md %}#known-limitations). diff --git a/src/current/v24.1/user-defined-functions.md b/src/current/v24.1/user-defined-functions.md index 6828d1f8895..bbec370c7de 100644 --- a/src/current/v24.1/user-defined-functions.md +++ b/src/current/v24.1/user-defined-functions.md @@ -296,7 +296,8 @@ For a deep-dive demo on UDFs, watch the following video: User-defined functions have the following limitations: -{% include {{ page.version.version }}/known-limitations/udf-stored-proc-limitations.md %} +{% include {{ page.version.version }}/known-limitations/udf-limitations.md %} +{% include {{ page.version.version }}/known-limitations/routine-limitations.md %} Also refer to the [PL/pgSQL known limitations]({% link {{ page.version.version }}/plpgsql.md %}#known-limitations). From da78a758bc655fc23b6391d46993699fc33795c6 Mon Sep 17 00:00:00 2001 From: Kathryn May <44557882+kathancox@users.noreply.github.com> Date: Fri, 17 May 2024 15:55:13 -0400 Subject: [PATCH 04/30] Add replication lag graph to PCR dashboard page (#18557) --- .../images/v24.1/ui-replication-lag.png | Bin 0 -> 246534 bytes src/current/v24.1/cutover-replication.md | 8 ++++---- .../physical-cluster-replication-monitoring.md | 8 ++++++-- ...i-physical-cluster-replication-dashboard.md | 15 +++++++++++---- 4 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 src/current/images/v24.1/ui-replication-lag.png diff --git a/src/current/images/v24.1/ui-replication-lag.png b/src/current/images/v24.1/ui-replication-lag.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b1c1692aaa59ce6ff5dc5db1a9c008914e69b8 GIT binary patch literal 246534 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
(XLsS5oE&y@|?7JdLA$;`QH9-HHpm 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 MAllPd2lkSZh5i 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�^1eM(2N!VaP;BShZC9Q9P-%^+4n_mV`h1lx6WQ8p3@RG~i4WrzQ)%xYP~ z9@;(X8!NFcp+`OzsZ`$;)UEC&`>`Dl!}j_Zz1iksYEuQNa)9=$%c4^sj4tyJozzg09w^|=MAbCw4UOAha6*M$;cMI(N)SAK zP1=;{+=feBIv8cuoi+YxHMU`$p;KGyS#6}<$Li^#)>8unpI3M?t}^w(Tza|4w&IC$ zx+yNmPKJgmdXWhn%{3{C4)>FDjs#3ktinqJjjS z`829XBa~Oh@yR3c-m${aeCM<9om8lY-4xV;u)PlyZ2LV*SJydSxYKReB`Fle5~J%% zTR;dfVK>k%2YNnk3RyP zl+URQHbZE7?^dnXh1ROydob$sK7&YSnGf zN0)Ll@j`cN3Rx%`zYe2QbGah4mk2#03+-5c>oWl|yfOxIo-pYqWPVD?Bl{Xmex1Vn z8)oGuLRLaqX*_#4j~;(@zOO0towJ_0j|XaKg6b}Ojhy)H36}vU2X%cr1wG`$SB;Vf zfthT{4Q#qUEKmZTu|k?j&?iTW8EBH_n`; zGA?S?>!?8nOimv&?sD;s&Y2%GgEb^=&V6>SUeM|+2y#Wx*;TXT38+Lfu2%3KH?mVd z2#5v=x2jH6L#;S@a{73!cO}efC08>9*KH_kjDzv4T;+UbWpSm%W`DX*@*_xRKMf$(E2hVb@SQho34IphFlFPB zW@5fX0O=aBA%7#6++8&<|ABrE`L|8r0h|(r5z|W%hTTtZmXejuicp<%kiR6x*|mXV ze9`sM@s*4dcuT8e6!NE_Uezf(&cw^yXfIwU_ZC_zs%_Ao@g2e^-P5q5%?n!ZAOzm4 znm;32i=Nd8woTs2fNnzXW!>3R3pc|Ye!k-xreD*&eyxPWF`wZf5Z_Jxhu1f`bEqbpt=R)<9hD}pTvLWLD8q6 zScEs1SW=oz;qdfhDRLt*ek|iYwTv!E=O0fo@Ti}yeD&22`XVBkXwCrK@8n8%m$GXg zqGAD$XZi&ua!t22itp)8XvUYt(xI1M8Ec2Qpud)}9w~^xJwpXD$2`dP@gtPI6LvU> zF%?8?^SO_|`_l)cm7!|oKm`!9_@P~|xpY(k(ZDQP^-Z(J3F)-y?=kNUR=4l4G! zzH1eL!R6Q0@lxKZeJL)k*6#;R>r2d)&@vC_~hF0|PU|+*Q z+~vbWq}V~-{N2zhRyY=r8R5Q&6d8O^&#zqGW$f+8H0bA5wW=`*QNT&A2ohy_MmONn zi${5r=!Rrmqkr?JnlN(yzBq5+RJimr8cBeo`B|z29&_5FzVw^xPc(}Qi&?pk`OL&e zPt2=a++*oq&yKAZR*t{OL_nXpPuYmh^SHB+Pw>I*@;QyCTNwKE#`B>YJc)@hr=Bw; zBwQ;|nH*y&7=x=b0X;>#nA<(6zRwaY8Ubr?B1;9u)3M#-F}qtZ=e_;`Z?A^0i7|)V zI=EwFBHPP~SN*Q=sDDQ7B=k#Md#h0wZ&CHSOIMt8#fvX91g|+jj^9uEm37amUO(J> z`joUK@Fb6fCE9v1#Y@cm%i5^@{JrZtFCpD;!l53~sCRUDjH1cSuup>HI%kHm5%S5Q-#1zf z*Y%na*(n}_PjmNcdR)rxhEqN-mmvp`u-X^kBs#@Orf8p`ec_Ep2di$yz@?xJ^P9y< zejroh{o=z+;nKVdnMq&QS|RIM&B~Cd1!<)4v*Chw7&KM@|CT`Te0q=5nukK1&ck$37^+(-A?d-Om7RVP|aN&59WdmczM?VsS3A3a|baXOIc zd+jjhtKNg(R=say$IGQb|7MIjAYtJ}guMQbxev{ZR3f|_V1c6~$L%ZI6ILt8v~MfZ ze4nBNeCnx`NidB}gp}^5DT-C)yCzWPGI&-_=3FcoQu@;&eYDnH;G5|j{Z1&Su=(cr zq*7%y`u>_^L9~D|5Lgw6LDpE|G)w&wGA)lif{*GS#l-nudkY@hGm-P|_N1k>DDw>E zyZoH-EpZ6Wc{Y_!0i@|NyH$DAq*F#8EnI24YQ?7tHjv{`l44)nGw;G2%maj-4z^Q&eR zlSJ)MpS?BnGf^o8A@-P&*#XH=lIH2Mi50e#%NX~N6FMUP4YQI4!Ok&vC$y_u6Pb2t zZ%9>~iyVej2WyNC#TgVZCG7^&-|M&TCVVr!Rj6pO;n1aVk=M4x6Yq3MAiv%FR)XF% zt_wSH(~-|K7)N=^w=KBuQl=g%ufW9|s$AboD`}`F-|Mh}B%T;8hLqYi^hgPh5$vls zOh`OR6rbhbI`8nSPM^o$0FnOH#=rlQS6t7@_s-GoPe0dE0E#d$Hfg`ipuDFCTxGd7D?!6~PjIB>6 zWFzDli=WcxuD4{^s*FEqPTk32>X)F0?Uj{zt42mJ&lpyflA83f0}e4O2LWUtQLbXI zA++4LE+OOKoXh>&_)*xV)Hk zsE3H|_xrDH$x-Ace;mthkSn5|za9P1@AwY4z)#cSS?A0+{&XM}^09&L%lL+DgW0LK z1qQEW8v&)Hh#zU&CN-?M7lXaQ8UA?0L1EZk#1-?hdrMyEdHy^+7IQfa#qvA5m_L0Q zBgCShJMzIz07b}vcY(Z}MW2_eWL?x9jMuI{$Q({Jj4zMpY3T%f^HWvhG~9K0WZX58 z_ty7SP|nu!X;giM zL~Cf(X#$d7^;Ny#^!Iw6im~cA&VdGN4;0`ghB;~OEYT7!1;4qoM16RJx&6aN&9v^z z_0C9}@`&KpQ=d0w10Y1b?u*jc2BuW>4C_yDS!U1{42C8aYM!iJ{iWN;uN7ZPcbH!6 zMHy?pV}&5=MQ{>})rIZUCXB(h10WI4nVLuIA2r=d@S@yXeh=%{;mJWpp?97mx#M>x z3}K$fA>$25b&d4;3@948Pt5xigK#FS#}f$#2|M!S>eFoQeSGEXqChA>Ao2Rm8mz!LTR-~;2gy{h77Z6^u}iovyQwK-6S{QWU4^;VA16j?Bc)EDOB z?v#Ln;7GoUo%mH7%YH7m3ltpC#Hl-Bw<}$ha$d(~9iO*b_Dw{PB^Fh^P=jDHw5FzB zkWIdKD#gI7<{?4qmzX_XsjdX6ZhOujIf1qm-ao1Dr6R;Do;%JHT6u4BFk~Q!y*oTB1x=>{d6uTxwV7N)caQ)~ZcU0XlO-qxz!E^( zbf_b@8M5Wve|WVLDpa|u47J!+wmnN+>YRq11`{eMoj!8R?CM;AB=9EZa;gl?xsa10 zsyA3J=5`;m(sUH=ZW;TG&lq!`P-9Z=m)SdlqPqAerLXu`5lfC9~X$QYjmfQWgzR~!I?$GWGvDd5w_YwRPG@+5gW zC6h7!b;Ywu@KiD{7lVjiHd;1aTkEPbZpVfzFX3l`-Y!P`m>;*>(BLch=M-BBA^2pv zGq2vT>>(l8?u1Dk7a1HSl{BGe40E3Ws76dGq#he)9?#PWou)!(Gh5j;AJ)dMc_^Mg zz*YIW9F^Io7w`puRA_!XEBhMpA6yy_F``v(a-(K(>AKg3Y zvj|cw_3-sSw9zUFhKbQS4APb&r1siHds%=0aC2QEH<6oz>)~FfEqI?tNw}8j`3I*8 zUeB=vb2iM3XsNSULcxG1NelUDFsQ_%TEOLh9smO&1SZ%O+194H(>L!)a!CN`<|Li? zB>zwPjm~zD^YwS(ye#-%H9+_uOe0|f;~u*U&30S^ANA!zE;Bm&Mf}~E6r;92r?eCC zkqZ!czp=F0<#6ctgu;s5PRo5n-z7DP=1Ev{FqB?wh4?n9FCo}-KbPF=X; zaRTAMi;zb#xpQ-$BU!=ZA*xj`M7pR0c3<`UG{1WV)DA#ic^YF)P7$!Je}}X&E44ri ziS1M-86xSrb>s|&jW$y%4^?zfb)b9iPq`Eb?yv(DBUS;hHOW`yedqV>hZ~+nBeVr+ zO#QM7ND;4$5L1rRlS_g;6%)V*zdwvCaV|d!Se15Odb_*v;qs*|rQyZoad{xlEIHrL z&IF9f?Jw8%+@6{jtFkzN%(D;hi^vXL@D7t2@2WL1G$4DHq@!c$T2zlf0x#f8WGNf1S9qYOpGUWD}Qfg62lUNfil zuTTk9BHLbpNfBg+g`Uck8zH2Q1l4=(QrMPc{;~@diAXx9YOBhmTO8NhJlW1c-^!r( zD9I_XW=X1k6~TLy*NQM4oz605y5Hd#8@vFEwAEh%bl6IUaK=L`YvYNyBz)o%og5EU zjuh7q?;ZaLNXDTI0rbe5H}yr)3xf3(P~9dSo44a2giFwHg^Q|!cSap~s-bm!WT?0k zWt;C__|se{7m0M#m#KkybGl_KShDak<&7SQ!hbRPwnZ;xXR_-k=}FvoJn>2A=cqLa zK&c%vT=`8uR^#j4I{E|(-bFX=O&tQYCFjqi~D91=l1RZ;4`WTQ$R&%MOF{e}AD z2xs&(?sVtAX&9RqH_wGM2MKR|BvV!uK~3&A^YHrZKZFct#ce?n=JJ zX;w1Hsb+)rSFdYWiK=R}_Maf+?~9;p$g9%h0Oge`84`D|d)bqT!UZBPccZ)xw5-If z-kH$D3}okQ!F`_+6D=j={h#pvD3oiok>6}Y6D5edsHA=3^9MH?M3+Tp6>RRIZzzPT zH;tJ8(k(U|BCJV++=r}lXN>v~uScbQ$;o*fE=Hu3%w#VraDswiO*=u!Q4E37<)m^C z1uLSu4}uV0=JA|`%A|;4pw?-JH$$uCGez1&D%azvQKx7&z~y%Wd9r2Ih7oc7ICj1> zUUF=)wT^b~v7A|AmnN}mn3Fm+R-$a(!@6~e9FW#2&k%IRDU&fkB1*=Wt^y z-&>ZWbe=n-ez&IJTDK&;g82Kg4<1AiqXf_rQt02n>+7cTg$;!s6uGn6t;s{A2=FlP z&v(2T<9wSpH84{!&Cgc%8kkVhW&Z?`mMBSn))w#S_hMb_{Al>!JAA=|4?(+(JqhmN zCel|B-8BVQFvf46CnxJJ(Yo}voV(#~9!!0r``P1Q_yY}0!Aj(USW2x7DTAX`Zo#Lw z*|?g^Q#hMn)l;P9bEqycvA^tQVjjBV>&_6#xXK;aJjbRE*KWcRZ)uXIRa{asap9qcvPBE;mIA=RUbvK@p}kQB=l3tI@Nb%m8F1sI zDaWCe^fbWj4=HQJ#0*a~k`SjtSc05X3)h~aZi5hV$+;K)s9w#Qqer_EbU)ARUSMQg z;eDIC$G)c#h5f1+f1^fMS2wTktb`rh4)#@ca!@is!ku{FL1TKs*)1SlIq zm?FSdVyPl+T$Pl|H9S|7K+vitRn+s15gP-f)G^1nTBR{nq|S49MhZ&7~-ClyjJ z`58W6v}iR_dS3>X7U(TGM&o11(Rq$#d+y@3oTt1e$JK*A#!U*jm)OEMvN65qHP<8~ zCNlza*>yBYHeqjW!eNZbt!zhgbfXRlBc?q|(|r+s*VUF-iznT=JIGWh;E9EwL=s}T zi~qr>BJnE#Fo6y0kDZBZIP-aVt5;oiYpRLw z`f?*v#E=ldmmhy>nv2i78d+MO8F1W(smHlsRp*d0kt@0F-Jwt$WmeS%6yU)=2R#VM0dz^U7Dr zeS)LLpEpPfkjWOO8o!f2AYgA=W?ZWY7b#b3TFreL19MM(zk^n?6Wa~t(4B6NH}#`w z$|^YHYkNX(8gAZvzt_b0d$oF#%u{lvd;g_T#6Nz*<*ob)^NS0u`k3XR>7i+!GHk94O>z*IPDs zhjwl1UmIcKuBg4hxZZ6$y%yo}A4+)-W)Z;^v^kvG^fpo*FRD%XDyL)Yg}S@AG4Y05 z%4MbVSv2QplWkWK;oVJN2oJ`}x@2|alzCD=5Wh|-gm{im!84nEU%CW#dy5QcvNYI+ zL9OGZtJ(M5aH=u8uB54-a7P~3u!$ZBsDJ-C0Mu)Ek2SY*whm4&3nFb*USBj;Cb0{0 z0xTUtL$Wt z#w-v2!>Y`yw2R+0;5V7&ujlx+iM2lu4t4j6nR9E4D3p`R zt`^oXrkmjg3U2kL>+eRn{cJIvW+g4TqDcdlv2aAmQ@fIPj?S_Pix1^XaXQbNvT}3c zzsP-5(V~-lxVd>x)Va-G_tbo+2_#^yrPtyN)MFr?fIQQ9MCv2w4>N(fVp{#t+>>eF zLh2b3SAR`Z#YTNi56>&7IgpGpuT~f>zC}B_B$!+#Vod*Gu82pQi=!OQpp6Nx;QZ63 z1AVKXvYPMUU8HpLCy}w-JcJJ{hF=BUM}b?F7ekwJ@ih7KrvO44-F zr7EA&dWKq^Fvsco;;Ew(%lmK&ELXwxBDF^EX;-%ySMmmCtI{;@smF0DE^AM@*STD5 z9+8t!V6CUV4icR@+%oE5ptrRcvAkD5`9N4m;6rbW6l6??!GwYE^uR}6gF0o+j$ zTwL6A#09#iG03j*u=jbm z-IKRO_zE7~N1lJmIFbjXz5*RJ=!PR0XJ2mCqkT=r_A8A1rZ1I9`H~7YM_3p1L$A1f zl+2wS*0PVDk$P|3of?KzXCNQt`4l-FRB*)>jHGjT{}h|jm9Av-GrovDZQ5Gp;pVBU z3%D9#zxZRJKX9{U`oT{npSc|mj(z6f^cJUB znsBv-Vc;9I!~jr@H+v;$l~b}qZ?P$qBf7svQMFWaq@Y(No~yWdjF}VuV#@L^F6BLs zAA5bJm>1tUr3S32BQa27bsPp=w8@~wJ>Si-gzNI=)2^-Y@BAw|Q=QN7mh_TP2)qdL zY%*ilxHTUL|p>K^NP zos2Fr8~&6(>y!~8p#1TJ$9WpCn4&@vQ*ok03E9PhrtV z=$eJk&uE%{1_~7+8Lu#QavwhCp*vAH5ys}{F#e$O!OPP~Q7~}U4&}4@M9b%blP_u} z#a62kZvfC~3B#r)@{@P&rog6M##kWt`fXv;^3{Bf3AH%e$}d zCs$%AECG%2$AbM%6gymk@E{LG>px1IS9@b*iUO@Vf(Cr9zb}T_dzy^+dH3kf5tP)f zB^>~t!sHgY07}D%=IbY`Yd_L_11?;sa-y7Hb^oj~WnYuR%SS@qvb{qEmeMCcAO}09 zUmT6Mw3fJQ=&yZHG>eAR%_{r!n_I~df_NDsOX@cVk}uZSKvtnh&UMw@p(EzONGKba zacv)HWLhrfel*^c`30{F@4ICd7BaK2u?00YHXamN2s7tO=JIFXDP~2h8Y;`F>Dl1I zL8+4ey1j4iJe59bH7Dz8LU7=o+?XrMM^EUej|&<)nGlWVG`#LVt*&-Be`)yGu&wJW_C>nkz(2$HYUtddWOZ+5gKx{ch|?TV6XH-!Nqp!}5=?x1BRTjA{|;>S8zxD{Gr4 zqiqS#eS6?y1&<`;M5{?|)S`5_U;yZOWI3X06g47*JgPftVV``GD3IFG8ca%?Ay9mt zQZigzTui6`*|54?sXhjIrvMe5Fn(#&{_b60HG&D7olF;<*QlkgIqxG}#WDy$+@i<4 zI)^!;T93S!00$MrhBuAvWFl(>y5@Bv1(7c(2(H?}gJ_i<3kV3b_){KdSo$qjPupSL z#UbzPVB6iW2flZDSTAC~KH?h@9&RqKpd*Te{iMB};NtCd)=R%?eT*ZP9?!nRhm;2k3bo(5t-V+c!x?Jqrtq6m+$`N-fRo{HG|S9+oqihmjF{ z@HZRjp&mV_jmH-o+q)RSeb?VzaVWypof#z`FHeZv5wfL4c`r=*3BD~_YLzuAlD8h* z&9iH974Idy{zUlnz%$N$XK{ZO6L9kE)q{hBmzSK*wTr!^k@S5D)B`_ES6ZmNIUi1^ zy!mW$uvX(y>>*Xl_W@B+E8(U!p3<&7N&2TN)mzzDUPsZ_Mf=*Xw3W0p&mzNZ2qw1p z)<5MK0Fh9Y_}A@YO=s7_i>fHmp~*L(24#=_Vdtkn=e>vf8Ys;_0bi&ol>Oerr@Jwi z*777W*Eyb+mMDSFb$DpbC6Va!)?u)5qoy&Pb2)ZUH4Ws;TsY2vyi|t4773scN8eJ+ zWi{t8^$n+;!X2(o#)DlOmMIpm_I-Rt{Ni|z&EoZmeyf-WpUdUUz8&nn75J<~bXF=_ zvEY|=$#iCwA%de_2Aw-2KI9;)SeUmKAVPUpTvH#bbUtS5I_o4|S|yK~Zx^^LrRLg= z07U^NqeiahMeh3D93Pet7s|p=pQpMb*u4Kf{sD0B>8C$d&#-HZq^@~@5$gQ6Cf z!_}$>HF_zZ@iF?!1H8D;IyvVH+e%xrtsAS;CHpe&uFRR{twH2m2PnTqpyu4`^W{-b zE6|dVG&eW*qxrGP!;6UnUtCWr%#4eR3lqEQf|pz0WTd4zqfJ(O?%pSbSX(0j=Ts3A z3gP17DmU2v!5Dq#Df$Sf@15b5=NCoZQYYHM^Gj4fO~MQ)xSgV4e$}DktcXL|RYis0 zU_g*Mk|87Te${}8VdSRBZz2p}$9h){NJvOjB@qr``#OV|I8I*>QyWsL$^aTotL(|> zi%pnV?M*51VSxt$qr!u$qxdEvp+yXpw|DWj7J>5I2Tvq?xW68V1sQV12t}dze#FSX zJ~#d_zIt4x=^ZU)@gTxkg-Sm!R@*C2dEBdKij?&iorkw z+l9u!RpJF8pgPo4w!))^{7qx>Q*sQT>PHK^m4-D(9bV{=m#~j+PTgy; zo%h_r|h5-Ovve*>c6UEKdjllRX zJ7$YZq3q$o_q$QUbT)f@`Fu~yNbcdbQ`D{_uni^*&Sp>2OH$v zk(ycFMO4ZIm_r}WcmQ*01E(zd?%uNq_vdehljrU$3+{4PPxIdgP>7pxZ%igB$Z@>^ zUIh=j`ZD2DB8`v7@Xx@ID?A92ese|4V;l;*Q=mzSfTFT;kl@~Dni;2IrNy1ffpEX| zl9G}HQg}M^3r5L5wRSgSS5swhXzN<{5UJE+|Bl@Ln()2^60#FVjQomB^n;qatbzmU z=|0|<`=#St0fES#HGlO27*O{AQ}c3TM)L`LXBM@&URN$I^UWIMNaC^nvqS*F^S`lS z@mW|2`gp0~bLlzzha|tl=Rf?NBTs5BUU8{^mUp zBysuH{`~nwgkNJoo7VpJuNega@iLQ91l@XACHc~gj-&pt*1CzPm_X}#Ly5qTD@RJ+8b%>HDLR*7LhFyS2@O70TOWVvvOi2Qr{XF5I44D&y0q$3;m*$6dfZ z+g~TKf{wT74HSJ5Kv3%{8bYxD87Kn{fD^wMi*Ky1#*)gi%H3Kt3<6|EkyB?YsLgK8 zp+SqV0s77v|N4Es@2};;zP4 zT3P#>lamf7VKw{owBEk~*uRAc1(*N}b^u(I{A(8(<-qt15-UA>&JhQr=aldNQFw+^|g6iOd`01oTv!+*s!|5`CQA24k1>7rD0VJ?LMwyO{If1mXBZ#=x_4(f_w!SfOFZ8m9TSb=$)vqTUPg;2n&*xG#;MnqqPhEP3W7M zBI#jB0!sdW@+*H1IkrkhEkDVl`TeN+U~8Wr1wre`NdHWNjGlt-I|jy3d~y5P2$?TE z*L8!H4&tsd|Ksb@n#&IlZ~y;!6u^VnY$d&0jN}o6h;I;r#o5_QMc?g$Hq-5UEu@g)@cxVLX${54V6P3h6! zWa?H1$Ulh>M*im^gcbjVfn2Yh=iXFl5W{8r{^);#YJ!koKp{e0_gn6?+1aPO9O-+2dnp5CW4&>vK2-{7Ssb_irs|7J5X zdJ*u7yD)C!EjDvMMTUy>%&t=s2l;rdmhwKuuDA()|B_W-Fb%@pxEbT$W* zsf2a@epor=*EX~33fezs7l3`~U}#QeZs1$=14@x1@!Z=25IsH2Jdrw4=(p$C0ko+= zy_p1n>Hqz>KsIAC0Fl{t4P=r2eh6Ux%k(g`<5yWURJYh541Qr?fP)npdXge_bnCDp z0iiuWQI~I$w}wzv0L5t$RFb9FpB64!7@lAJmo|+`?095GoG411^!9>OD*;z^+-C5D z!!4RQ5?Dg*FuYQCSKs^H){T&iJwRKRTs)%pza?_@kIL#uzYO&D0X(bwFL~y>wr2X) zvov&%NaRQIfVBgu>BHL$V35u@`Q`^Ez5VRuZ0gM!nt`jZ!KNQMH0qG>^wm`IG__G#n zyCFAiAkZ_m8{c-_lDV%X=tU*c`&_SIFK#98PiUwL-Liqe>DdMtZ7|?}+rh$C{;eJj z9h==2qni$Q(DKAiZyj_h2V;?f*1PK`L7$p)CIN?qRUd$%_J?*GMmL{40Mp)H15 zm)4WeaBI?-bikq=anau*voGnRvJ|j@&t8uqmgq0t(&EgR=;yb&U>X6u^ScE5A6?yv zL6FHepfcBZSJ>Q(`$?dI^ZA*ETv(%V5-))`&D#=jUp%_Me>f2Uu~txcu(vt2f>Cpu=SaTB zH|}lR^N>rqgB`!M+S=MDqM{E06iggIs@^xJ$1@5T+;YszbWv*ct+;qK>(Ao^UCBs) z-QEHW@(x(c{r8SOPK!rNOU9p1r>t9VBIpC4oeI02=V9BT5w6FJH)pL6DRp#pvs}27 z5UXt1bN`q_UIs+WbdJkltwpfUS!|yDUP%4FPw)&hW&^puN}AF8f8Sl} zH_(zif4Szc9L5*K*LWDV_>Q^c?fi*%z(5CZtL*PF7QSI{Cu?(u&F;DMCoW<{)Lniv z>?FHQ5X9FTWF-H9C*(u)+II~teZoDTUl%gF>)WMGA~O!H*o)1$-VSftm<{l6Am5FF zs}A;?!j#)%+_r`OH^XHhXcfnN{VRT4ep2ybYG*Y14#1!>mg6(Kc8eON?ivlhCI`HE z4e)_qzI+SRg8j?Uv=N6aKiQSN7)%Xr(P}zLRq}Me`um?ZLdO^f(A!up_Uk-=E#8Nu z`&|EA{1D-3>Y0U=wC^_HAYgbFx+uJMYTP4aYHqrnL&gh4C6eZDfGyVOjc zDRP)_c0MO?&#i;9U|L^aA3lup)>;W)m8|$x`(T!gNu92a&Jy8jK@yWRfi47cqT{UN zJe|75dji~tVkHJJ)VpYC;vOCzwI4rqdH{R@y(S1zIUNwW*l9SJV2&m&U0ht;I7DPh zxFH{Fb`96x=fzTn%JF?m8(_%}@%PIAApw4`iuO?Y&v8Eg&UqqoS^L*Pm zL11>m`6H#{z6ryq8Gq?~P6|jK)!o~OI>l{EZZS~Q+3kH6<-~{J9sC3LZQDw<{8v@i z+mt2|JFz5>rxIZ`Jx80ir~R1+$i6mU+3{`oCC&6Fdgl`e#JQA`9MA?aAGw*l$`Zrp zm}B8@R;-|3Kf&$d@|>>E?)eshRfSLI_3M=L_AP{QvvE=rv7mVu@%K_jXtgR^6c(YDFKsL;{w4ExU<4j!ac_6p) zF_n);$LcFL6u9H>egCFAdys|DGRa~u*TDNvLoc0}Yi28pTVl2w(Fo7?TaHiN=1AniorEAn|8@)7`&yn7%1_(L~ zAD;fOq|J&aJ8m(xp~J{A^x_`!sF|VcGr_)ztOr(SzF$dwi|JCVz0aOMLIJScL!_4a zy*g&k6`F@3_Rg=#49|z+KcXE&^MDS}Z`q!~&3wX0jqKlE>72@jAfcF1m1$p{czCl) zz#9lq%or9W^(yh}(bPNeL=l_4OX(5@jrecVJP`w%vb4|RJNc>v zpt9-EHkGVH5*>nFoFKe}AMutQ$bY3j6am_Vci3L1|LnE+xK>Fiv?-_ZZeVaJ z?$~ijAc4sVnK0)|UX^;x zGJ7t8)6pZ`dQDmgwe-r_P9waJvlfRG*u#EUj*Mk4V*TGWZ5cu@-*Yuq3ynhZO)EBE zK(c)!f6A+Nl0`o(HuM|pQZcOh_2+p^`iT7hps|6)#>4<>HEM}v&y3(ny6c?VVN>#& zs%#BSz(MWP@UvTS?`=Q;Xt${Z#IJyW&XGJ{8y|6`Emo+ z=0quCCDXl?-maCuBL@GEznw(SaMb06H$3>y!r&RNuXFYUs zQ&LpIaptcA1)i}3iN-pEBS{e|RXISYnC0q~mxnSw*4GQJg(FL+5;^*t_H5hh>gqNs z*HjNF^2#2LJM#jX`p8-5M7Mw2L*F8$ca+t)zrVi$DXC7crfmj~IeAg4LaV|+P#wuSPpyiHQV`9c z#_kGs;qzAbz&BUUh1_jwAwB&QHt*u}Ml%$YKRn4?RTL+uIUM_ifL01`A_bmF%7SW<|&j zcc7{Ql+qM0Q}@0*mLQ@s;YZ$Z)E&5gFU6bdIFV291mujX9$2d8Ge#f@ulitnjbOxByyId;NY|8q*)BtF)5HbMHi-~U3Z4EL2q=ULeHVuK-d z_j*SA^HVjo>lHdSe_)mdo`{{~6c@A3Hxi4e1gnUu>ve0DJKNS64ZA&-NsjC%P7kG7 zFv~COmfZcc6`mr>yr-0Wp+@%Ubg+ZeJ#R+Y*1WDHzc}{0Q%-u@-8()*1F;OX#vQ1e zWrA1j!=AikHH5UGrG$?n*;*apT<%TX*Kax~TOvyY+g{48e*$WSoGv$=9{0~4-`)Ii zQ0oL5GON%Q{9o+-RaD#2w*?C0?(Tt7oZ?VCNU`Fj6j~hG;_epQibE;1NN_LG;_mLj z-Q9zez)k<(cgDCf?m18Q?eG%D$VjsH{;j>&Tx-oeS276HQq6D%JNMesX>iMwPHf!K zXuoiil&C#mO9FIJAWE5**B`&=A2_t^KrG#yqn}IE13l4 z3irx#2qHs|h@99~NWJP`_t?B?yQ!@V;{{zrZxp6G;7}TSnKf*F1%ia(ANQ^AoyH>REF!An0CkSKI1bO zq8v+C(f;({^v^XepMh?dgxJ;)a+KZe&yVd9|I}K|yu3tV+nP_G@2UZh)e{iN-yNAn z$Ya3sZNSE&Z6&_R{g7T)M~BRRqAmv5I%WhyiqTL1{#tVX(5zS1?Aqjsw;gtQo)97V z^6K_>5AG%JceOux4tTx*B#s^*+ijmmDoMV`@Hs5GSb>$$A@jByIJOG^SV?WWDwvp= zA!m4)hzJMYMS-zGLPCy)G;~>2%_}Dk z{O`qM9ALKr&z?lhjscHL8#NFO+<2eqye@x)T%0?%%Os+8BVr3yS6BN<m)w=X@c#cjh$F8Z^KU{9>JV+=pT#-Hhy4*x@+s9$&1P*?AL5D^!r36QtUbpIfo z(O-1?eD?h0ST0zae)xKNY!!a$8E>up2(8IKgYN}AS;AHj-vHATg^mbXw6-8bM(Nqm zPc`+#W~|$b&Ylr#L;iHK_VntX{N=_KL~}f1COGF2dNlfajcy6;n#~3RxT%Wh6*2M; zd7PARPGLUJJo96#6XaC7PF)=%z0pab}41%Jo0Qk zGOCs?K1l_d7~Y?Hw$t`YAh<1&@TN6A{dg#X>Jn{18XI*5lO^=gvUAiF+adE_n!a~b zv~TL8!zuH{DXZ>p^MAbDko?`0=ukumkj^0FGFw9h+;xcViXG%9Uz$lV)E-DX==faw z`d;M$=y@8}gZJm4NrVFte@L8G>z7?r+cFPMPvcGs`xp*96u%T-RQA==fb)++vIZ-M z-r)kCRxd6t&f9KVdFzb+scJ#}n*|D_jVuW7^}q=Xd-;MV?n>7RPr`*-i$VnFULw%S zwd@D7+B3vz>Cyc?sxNhp&WO17%Rj0?^OL@5fR0H(E#m)?TmT;cWQrOV1hoe?v{$sc zlDCcH{+I3kx0F)QB0IDeHQ{=whvJsa_1Q0gO;+(ArvOfaQNnBgzxO%2_MEPjA#WQF zd)MGAYhnLPzWVvb;}d9F^XN9`Py5xBD)hoD90>h6-s5vNB->PZRc!RWRr@*1xcI^e z^y;g_&x&!JJ#Y91VE`2*HOrthb1tJ3?j;>hCq}a52KVT>L?-l-nSh;dCu`p1JN-rp zGT#-2Kp-1`!EifKk7NBd_(gtczz6>itr~Nrg9Ji1cO~G564ACR@!w7~MIiW*NxZv} zK$si+$|vte7i2j5qA{eedv(?ac2G7aJc{dooUh>!{s6HOy-fjb#VJ+5h6b9#Kj#+HU3uEht^?!*86n@FCFgsD+wt??BF=F5S9FK@N zCgZW$H)m)N{X?cUo;G=(UOa0AwBvJ|r~QW?_46q$+u<6q)o!6@NdPgzExq)P9eDm0 zzu8TxJJwNG4{wR*{5l9yHSW6#{h*%q$69~9Ncbr|9NudJ>(#Z*x6r?}O&*;A-~R+J ztgoTXl!+v)3T1gE16kPCznG&&>!u$&vL~}i9jH{FdiSsz8X%OB!A+eeO%*>o#C+z? z-i)y-Og9knp8XJfC*xXV?zPFQ z`}e>(K&^x(=rZ~BD@sR$R<);d!e=L)0OQkD9`DQ#1~ziXRDGdz_gBMf{}@fM<`&?& z)9EAy6%-^%U}W;RI9Ks-)(_b=gFR&3wpc={&iwWy^y~xARz+I>9ReqXW^0!}>dP13 z@P<2s>WG?3*1*sAU=v+ho_bxHE%~SKF@dg62&!S7^-owQ0M=QG-FJBbU&jQ_PlM-b zi-7Qh$;#CucgRtA{qIZD8doe%0VshUxTE8|bc;|}Mk6^=CE0q@K@g0xgKMGRNS8yM#N z^V|_q9T8F6o2uSz>^`GwF!o9cY%uytorwil@7B(mVc?JGzwno-;_sNa?F{tT`rFTK zO$976!G3KyH8E@Xg@U6+UicJm?^S6_t8sepJ3J^NYsd$ttlde9_tK9go~{@wfwi{H zclDKG7eb$w+bdR$DP~jM^bM+3iDuCT%L-#sfSr9*Wo~bmaCS_08KsWBze=~2}1VPcg$fD85 z?y;-2pAqsfFDkQblD)oFwK6aBbk@r8OjEolwJz$<4Az4G=q+*4#aKeXoo4UFOu&i206TK6{Vnb59KF(pLSS@u_{*XnwJm1iX5ruL+hi2aO1S&r&~2r$<^n7efsui zyuCy#c9+$?IcBLDtju?7oC$D&Jv03wui`KxE*v&(cXc^O zz?*c6jFx_(15f6SoOUH=?*}y<;H=K8k zTMNtxo##2%p|7S#a+d86c)gl+kXe{X(G5cUK>SJhVSFF)+mMGJa(muWJ={h`S3F_< zOG~R1-EXx{44^qMQ~qg zDceDH#L(*6k$YbaWYf2%;RPG84a+&+cbPdZRb3u9>n?RG{(IczN&1x*dn^x?j+7=a z-sD|C3$ND7oW5+AYe2+mUfp|*gULiNc4z+O{joe8}2 z7J)McRBjECbkcYcfu$Q-ONCVn+l>urZB@?AWi&@GV{O@KO#)LpO%#*^6)lLDMbxG?Uxq{lmTo3*G3_Jw0k0(g4UGZqFWC4?K%%I7ds9 z>uk+*Q9iFg8w)lk{d8R=;l?{cKQ8$deH`w)DBJkLb>XQxhM#0^tLM3lFTSNoxAvna zKENC0l<<1Me@Mg0agVM#{Bg{^q`XR<@htMv04 z$)k_sL${bV5xTtovWD(j*E(lUn&96UiZql)7`O%2K-F3XVX+BHEf@(E6hv=)E_AN}7WT;;4GAWgHGi}??;#U(y@*ect0 z2C7#G=EG2WmkrA@^i_aOc|p`mby>&H+$|>>qrEg5fCy)D*8*Vu0WsB$?Onyf4HGXAne-f^MHK_BTYv3dwr~=WGKO!_ z6sg-vr1Le<&Zr88`kIU#y?ZqYN`2L2)sPorhi<>L4uBFSGh8WAHOnuNoQixlu16{P zuSU-9WhUU1#&Gzr<0JSgMw62su2tz@p8cDkMuZ~sbx;{=oOMxD`f5p#+lJ%t(W2wi zuA?IGS5;vqh!Cf2t?IDyvi$7f>=#}8V{nOQ+%S+ zn&9#0FvjD{K{GCTtMQ@#6GP?WgZ&*(&`Do02}-(3>YcH*Y0-);LTcU11mVdX>#v*N zNtF56e9g@Tm|$I=A5wmwt#5~)+}Bt$Y2DULq3(a0O`AL~kHZZOg`mbq%>337w zU5hSaHz6*TP?HwI?z-oKJnJzPXkFjuCqhj7t1pJV=Y1#fuQ6A>7 z6pIK94opLatz7jy4wr9omvG*RKHFuw;aMcNd5zO7T9qju2&oraF>}y+US&LP9ejts zSkQl`4^KT2SU5?EeNS7Zv?fwaC~_Vv(&yHVv3${{ex5tZM#v@6EE0uZr!E4R#aNiE zbZ4C`Om2$=+dX_NA_WhMlx7G%^b^SdmEyNnNA1%peABP=c7Gb*P69 ze&XZhjjDy!N10dkhUt&zVm{`%K>z5p{u%t_w=E*}#dDTIGT6OsvM_y4N;6*a(XwC< zQL=Wts%+YCuf6L+2;<+f(Uz3z{Ap&}GqZOW2c@>Y5hHcLq%}o{3`E}R(Whie!L!uo zDd1lEq?bKse;_;*E+YGpdJ6=}(8oV!HgYGXxbmGCA1{8o{u`_aipYNSnaJ-=r@{s0 zA3D??9v&Dg$%3-ZEr;=o3JWu-nHID$7)ulk_HoS-T`tML9mVQdUNsl6E@Kt8QrL(1 zJf3a1UnB0pSSI&c0rYNL+XgU7GVr^g?QHRg=+53nL^fKlGPN*@1X9^1cdgyd?_Y=Q zP;-k+`(?0;nW-z-%Bu2rC08Ivf`yf%D-WgeVg?r#P4OPxAT_BHiM;1vBuQuCr% z`x4D@QF_LT6jk@$UA~=EEZq;|`qfZ$*Wm~@Ky^M?Z*2K3 zHIk@3^1y~FVQ=j$uYI+oz5`=Dr_9tZSU_`ha@^Z~$2qqH-jX(u>otnU5Ycr`d6{dS z>vtB`nXg~$eaRL1G)6&TE;Va;=J@5v_*(IcEefC1x3Qz|ChF_7XOC%$w=?7EGTe)f zHzHz`ek%(8b=J&#Cx>NHYVkqa3tJa~PqgQ54kGnJoi1witG^rbu%FB`Z(xu5a;~bQ zCh*r45BANj7R}{VE~|jZlraJ=pB~LE0Y`{^HT%OWHQSa!@E@Xio8ug@IO~GS^ewVD zDK#YGlB-|k$e0Ic~3$04N=U$=v`LnCbum-hkxf>XMDvBB;zfSiW%NWOauI2*$r+Ve#A@Jd76QaH!N6dcMvz3B)Rv@)V1gXG>tWd!*6{` zJ!CW_g-j+y6)ZIdywlgAD)3Xd@l^)^>wTh(E%_Gfp*mJ^kTz=ZU_z*lO^ncFA~ak* zvl4I37U^J2;yw1p%Yl^jw@cU71*aKs_*HF+H!!Vx@0m+4I(BE{{_(6JCE8!n=o=&o0IA z0lzsTVkTQj}P za^+?Mk;xca%mr@1kYdMC1h4r4AA{%9$PzW>?qTDQwtWQ}=>u;Oc5-NK=^m#+rGd|` zeHMX7iUb6W_5f9L%AL_i8GaF_x-xav6F~W?I6r+Wk~Q|Pmo-hx z6shoRV_u*_Icom4AIX*;;jIzfYko|ahbgl1RI#Dt< z2qs9J+KkP(g+7B@%aCeHy;kKt5r3Ra(x1@L6p&HzxT|Ol$PBdk1K1zxtF-XmAX^h1 zkZ3hEOGrK6-z=ZGG@P{s-}*hIg?WyP`HHk>X09M)tn)tQIfM{{h$@1zh=2Ge9Jol! zn4zx<;)N18k%1WTD4fb)KZ-&X_4~fGZyTaS%i86dCnuiiW1PEPvBglw#Mg`z;Gtxr zngTL>Ws31I16m@smJ{V{9zs4;bL1{M^U&=wPz6-;W6%(eNxjD%9aWj1op0HoiW}(k zP1WDW{DPW!z`;5R3C|VzX|&d@w7R~TM>;0O=g}j4o85u`jl<`V523Gc8`#~#QqhQM zMZJSzFW(R{N;@Vs|2hF<4mraY?Gdn=t}2Zd`D&5S58FcMp3<7oK3s%pP41LVex^K3 zXIjSB+#YRlQU_ThGPXwL@jc4s9pNgiAwaQ=cv!KsE(^)o6?taBqcaDOERS|VAN=Pz zsEwF#eElGU&@>CFUwk9$OU^oRFc529Hu`+aFbc}N8`NNE;9@jXrLWYTLw9U@Ot|dk zjC{=2OJw>OGHx0hf`4G;7j8>8Cg#=aNBWl9rwb9m%4^|oaC-^US^sh+924$ruU=53 zvGD2q7R)M>TDo%FQmug=KbwqvO6^K{?t@h|sT3S{;Bp!iKirLO9qTN5+d+rAF<{c@ zOqwyAtg&#WQbhKqzdj3X%@k((@nn@q86VA0Ma5>@&RbC-a3pC2ZLwAVy_t(rUyvnU zhUt7_@>k*E4Ugh$(K3seyG^c8W_`w_3#M1cr{?d56v(NKg;-;P{}>LCCfj2nm!$N& zFwwyWv@YVDnfy8lG8y2wyq`a^_Uz~#Q&aA|B#rPu#|Zkv8JJV2%V$EMPxral{jKb4 zO5A}66#r>-p0qe<75K9fQt%h6&mB4V%=B!j)43bw7@y9wjilPRecTq*ORpQ+d@+m? zrHjSzM+MawF9=AT4JU7$^1BCGF7O`uAFWUltTqn%u~ArC*;Nz97z5t`gJuD2qj({A z%eqPcrKe8mICK_@79zA;!$R-&f7+EnqQN_~S%mj<%*u;tu$1x9|qa1<+qD8AqI z{2x+jd1m#K4RKj=4WE5y`y%T;4+Tjn<0Fw*?03xS{k=sYwF;nY4#Ne_X~hf)U6d2M zb2HK1{wL%d2G;AeVv8i&eCr7gwsSh)^DKf-q3nWaQZ|}r-y7IbDI?OR5eBau#)?Hr z$&EXehmp}-`Zr5q-Vol zA7FDHZ($GImLvGG;fHlAx`EQ)h;~YyT7)f{nyp17N$*d7K~3QgxK{kgP9*nf_ZLP}sbFVq%xQES zzVm(z@m<)w5K1d%_Y0m!bZ?Y{%$*wBOC}kgY!3%RKaAin6G|_^+E4`zL=HLj!eo?N z%wBZ@brJsrdokpkCYTRrbbwGL^6=_d3s_c%&tOABHX6 z`OltmXHmS~%{N(}wLXveeSObIDaxlMY9l1y5M*Q~+7p&dll+Mrt5c|R zxe6D9_1o4&AMXVUM*cs4x1_&1^vuVRE zXw=eo!hxp;02SLSCDBzu9`FSLLW~1JD-ZEeD5QSHy)`eqLmWBF&?#cp?Ba^fs?P`R z*cGL-qJt9I{aI&7CnlnkQN`wI$nJ7|iQmQh3l+{th;?i_hC$1~XB60m`ikj0(=Q9} zycw<}R_Y%IRdy;-!&Qma{Jh3LBaCz?ka-Rlcw}KAx9sS93^tf+*pv-oaijL|r^qFu z9;rPVzGoDr6Px@955hYC^Hua&z*GuIblHAP{;mtu3DLnLHSwE`I=IAn9`N$}+LY+7 zWO&EK!*4;i+ie*h`vYUxbnd%spuNoT{fLN}L3L)yWXwILMoJeGo`$bX4k~NwmBo4- zYYr@Ql+v#5jf0$kRH{r5;jkPFfz`Jc>RD((7*awCOjWi8Y<3-$)R-zc1leMD= zaZpPXRkJ9n&m~9QZ8o%~WACmap=iJVPxm+9Z0iZJUFP}oZbQr~O10$M$$bF<-r3lv z7+U;fWnf<{7a-J7>X4}X994e;&iXQFAc?l^KGs*cD3C%z7OL6YVsy5*ev z7<7iP@#WZVXIVN0`7dSyq$s@(W)AQh!Q11YO%I6lDYPX3PIH-%cu1mGvZ)K20jhT&jv z<9GSMd8iega8j_nva~!hh8O9g22g)DbSRBIcSRQZkfWxjkHu76AaDHkRTQKIe+c_i zP$R3AV~5$_!tyM+$PD)6{t)9Fdi3Ay)5z|*sIfYbU<<;dAijxrU3Y;N5fh9!Qyg8y zY*#uxn3@qcnD)2Cdie^!NzXwI>k@lrz`<~&B?eaw zZamyH4Tit_H~S~r(%AH7r@qGMKBGEI9SJ+`Qv%^-ueJkxy+DFGEQ~QOPaZ;UCS&WS zpC)2AKOyx8=EaDRbB=}Mec5V3MImN@?3UCpvQ8Ur8V0*^UJ;LU2E&jf>1j5q%El~K zx$}&42$0W>7I|2~*t?25_y`DA7*Z(PzP^&-+W|;lbE+AQ_e~QFR2^ClsfqBG6j`X$ zg_^K4YlLSLYOCT4g}^Q-53HK0B~w~54qix)cm)FFp$u{Uq_<>QAsUGuFEizQiChWq zLfB04k+TTwn;GHEz_DtvTT|+U_{MDor1|a(vUft#sHjF zENT>7%}SM86B+9#I>qiSZv9#rVhG5SbW-bJ;;^ub>vz_e}Yt?#60rF{IKVYcGIT@*}D1`fZG@rWGV> z%OP@CR<4BQk5+QutuYV2Ln+3j8nSx40;MSjAs6Z>(;<>fIX+9i@{9$8 z--Yrwd7re;uA8c|FD@+>M1Lx^ITaH=5mAn$IX4o$F% znJP6V!+9{K@$L&l1BoV&Xzz!j$28@{L@3!n=j$9eaaH%#bGR_g}+J8qnkACp$dIh_*mM)pbQAQ=U&p_2g5 zBj=P-Km-v%Ka&|(Qn1(*kZ*I7DKdGu2lS2%nFr0g2be~UKDaHItye?3L}S)yWs#O0 z7>Z(LbI(?5FAK=lnZMfUM`Maq1fl_1@&Ar^VZdeggYhM?a2NW6Yr>zRtJVjVF&B#_ z+!R`?tWYz9JzaI8oQZ$*GamF`Fb+T#Fb5#XFXqjRj(-WEO=MY-o>Px-RW54U?+Hwlw>Pfgn40}2Vly4N z;NcF?J2d183@-vN?mdQONmQdM`~gelWUWx7GX=v2#10fYvYybzrdJQcg`D8xl~E+@5)_a}mK%(L`k zzS$_Yj&)lAQ>Bh)>s)<_QC~l}+oydLA4ZO8AYjx`DQV}5fxo0dHjl3BoEMYT6n4() zyg`kZ_05Z&WX(n&;bPZUSaSA{tR{Dh9!1BRUKe$MGS@`CqJ#ElAp1wQ5X0klb`8@c zDWC38>CI01?vboH=QUM)^_99hvxM8ygIcrzH_kXm%6VABwJdW5hN_BN2XvJU7qNG{ z?+B1(W7%bxPYc~z4hg<8HN4@S;^;#iF{{dYNoeUM-R;LQydzKrkY^+( z7Uh^x>6O!;ttRfs#y>&ld&v{ZUcOFQ&;PMEJ9d!G<4>m{pOeKDa$m?fRg7~Fp@~Po zFP{~km#EEI@0b(_AfRe>=^Pv{$)C1mTg6UkFQ8P|v+~;NA!nJLdDDCYi-M`mhew&nRuc^pS*Js3|qm9_X7J}MsZQZcepY}ahFN4@uC>6 zo3T+OOV(gM@g)Y*YjU3s9roeUi4aU=i7w(th-~(REGkXg$m!2>^$4<}W)B9Gs`KZB zt%zAAI3)#&cWO_l88oN8?#H<`b%`Rf3 zoqyYCYbV@m&a9DNazAYZW8CZ&tA}`Wz96dGUl;Z6?IIAumvCQ~U-z|RTU3f5LV+Q! zu1_FIFNgH9-idXyVmO2x05QKFPlG<2g$4pLbg{CY5$@~&#O*gUK;w+l6P?2B8 zmCBQ*&@v<1&Fb{^?qZ{*i!KhU2zrYP$yaMB>ch;IgMX4(eOLT@52nK7R+~aZJb&$9 z+~bAP&+7+PrP4^G8Dz&+?K4T`XquX#tBXvagyCSJV$!^s@8JohB7l+lV{c*7O(7u= z1!}U}@Sld%hwgi%2eN&#Gg(WbZx(UL{k;sKZtE*Gv?KTlIMARC+ zX*6APVmk@>Z#y=DC9Z^6Y}r^Sviw7l_|_w4`oV9rt$h0lA`v!zaDh`uO&{TC z(wc>ztdw&p4%A^pYD{d8?lol&QJixQ2UdjmWV~c%(b#@Gsj*g45K@+z;paycZ8RA| zB0kiB2`&WdY|T3`L<}jk+Ypsau_~*lC0LSlqq+{oB>1OdOMeUck+|rX!Ls}d5F(;d zl%X1N=iE>6HqRnZQXuX#yEHTi4#1fEv2QWI-?xh=9T)9MByHi}ug)^YlHCeutn0DH z80pql61{Y@`(r^MpB3kh-6tgK0Q=i6rulCio4wep~J3$&zWwKHPZ4VmWI=c!a8H?V^wD-^;IZxhJT@3Pv zvla23bpYm2^L5TY+i@mpXe*5w=qr84gfT$#ddk_hO8?%|qC8WfH0|@<^2*En%;HKE zK(roQ(qT#|iss!biuT&W3?N?&SFH#sgw8Q*WZ7VQizhlcyKQd3bg4GG4ugle4C=~@ zloBM3WW<2G5t#JznP353O3iqOux`E#0qsilbdl3m0WD2TUrkJB&G>pzAUSK3s2VO| zOqtr8j>R2M#-hWOo69zb#r0L5{+K5EAP*1dy}_XT!;oDjV5mamosnp*_HIc>7ldBx ztm&x26=XBF7$$FgCr`DWk3yJ=$u~)8Dhh;)W)$HPQ?7y#fpcA}#;IiHzBp_~IyJ&_ zA_V7e26%B2hw=?NPL_sZX8Yo@OHJu7@+_Q!46uWc7s9+36(x?|EJ_`*MmJwZ+=mbl zX$Xt1lrj1XaBm%=jD^jh8)TSKE3qx}lrz9D-zWD>G7JT`oEIg7D9Ns8uq%sb-^Lss z5g)+ZQHbNpaJQZG$yt4x_}tIjm`*NbP3BZ0pgK%7xU|2GH{KkxE)X-S zAHG=Dv8U@Nyq4FkP@mq`N*jM+F$J_T5>_(;$QT@U4TNE?g+UYwd_i{`5i5e$^HTeS z2jBfnD2-0Z7qiSdlV^^@Rh7`U8TOUbxf+~N-SUzToW#{qon@o*P00Bg=BPs4UYx>o ziMC*F0;dPTGYF*ZxsMtX?ZTu^?&8&y?fRrfh#gpev|9|tbo>x2N4SMs^@heKxPPbH zr4jQ{g%~Z8e_!r(0{zpvy_MdG@caE;SO<9jy}|tb!PmN?XzAByGJdtt1K11*7~;dp z=LF)sasuU3O7c0zTv&OIV0Q3sC?7R-Zmn)e-3eGJps!@%glD$fd=p=kr7P^`+P@lP z1G{awb@#+dP(5Gg8IEbz#z}?-$piZ65Wtb(32}t9;1>NV;UOH6;#-sXI9<_HR*zc_ z+$TKOLrzHV?l5_+p8;la7(Y0UdaqZ4eX5a`Lic0CO?+OnPI_rZ*es5@DjwCn41p>T8y3BZDoROV%t*GKuAC&Y* zex|YRQe#Emi#S6px6bJ*njb!+XW|aB zVV(NjPsQt{AUeT36zC1yH`ZM7vf1spHyc$hN(XK{VFSxqt{$m3oDyw^O+RYKr<#Bk z!gQNY9q6(D9XywPG~^efa6v3IYo)M(3jEyP&N6FmO|r*bC0Yw1z=Ip`!BqhOpUV!r1Is*j@f8DQCpRgy+IEPsLnMe%Ubw@&7J%WehO|DW*^j>TTems)M6SSZM2Ml&A?BjX4;yXml`Y3b|TS@7xs&68wJAQ>H6Yvd?H+ z<~n>#l>hk$d9WoC8;zQX0i%0^p^FLY^Ewqm>1At0ccM~R@Dbq|l0{_8O za=FZCx~l5u{hPipMopj-6&Ft^kV~(^t@9`0u5RgXN-plp&0W>c(j(&)gYih!eZhvc zAd6aDk!Iy0yy$!TmznF-D0&X2dHKtsNQ5EG_zjqFGoR&_jTS)xx^AdAf&iQfd_8k8 z&IRdZ#d-bV#c;HEhr(`e15s7UL4NUd&mC$+6&?UFS7;XocXxyGO>!<4ku6q{vF}N3 z@ku{Ea(M4zBub^}(guUA+NB%2Y6l^$!xip_aL{@!R)o+-8e!$KOwbk!>g*qDjJCFbS`+PDCHb+zW>xTpG#&>7n5hKC033=Vb@Ma*nQyF zPG{UNS*Pr5aq}B@WXG`eEt0!D+;H8E3W?Gn3l%>8pgez3pB`q;rYf>|*(vNoiLrb& zUKqgv|0^RbaR`9VT2_aABwlZ3+xhEjQy^Zyxsx5S5~;Ia!T}$5<&{Z+62Msv&Dr@l z!Pyxt+RQ0zE0N-%>}z;8+E)puV`3$(1l~9v0lcGvkOYZb4A^_E{bOY)J4N>&I}i1b zXp!{<#T9TjS*kjYxUFo_u0g(*U=10|Y=nw13Vf@9ME!T5hVI`%`oZo=W(N6~52RQ4 zbol-J<)+4+RU@7|Ln$Z*_1UU34|u6uR1~*(mC=oSnI&4|^xfg!_=^m&F_bZ7$ruq4 zJm#6|g42Y~-Zh*8Jkmtr7A8&UXK@0#0l|fcLGMJxSd4RoAYII&8#ln+FKKoKvvtBZ zbi?R_>%tpfE^ifc#pPcPuz9uF>_zf4WY8PWTOo3E!Qu|jB zyN2M(+_j4|z#4jY@R-(zE7>d5ZFy3h$u0FY((~}5!#OUM(LME`>Y|w6xD*(5g^&s zejC156F8Tz%2=VBzlzM4I~oX@&_?s@sA%~pO~ut-Uw#8c@Uyhle)&w}*VlsMiXCHe z@%xpwN(d&Z4O#U6nZ6sALHL?!7QWbXP>ohkON$^&+`smNz5AOMoHCZ#NHE zs;LEgVB8zmvg8LmKgD62UsAWA~}6 z1)t^4jKkhx1P#>1SHgqM5Sef4P`7L`H39yGzPSUl0LkhT8k2?r&&2V>fj4dOmEbJv zWyJ3BOK>f2w5&dgAY)7MeJG=KJI$~)lSQK>R!DgvyhMK9~!FD z+{UXq-S#QH@u%KyH-~OwZso2qNmBkCq<$^%n-P?F_TtENoFhV}3QoEy*jd%-`#nx5 z7G0W5mceTsSzCR-SW^6xebQUhi?DdVRI*R1Hp`}Wrqab0=SDT+=_Z%VL{Z*V>Mzz5 zq?5xxa<=LHMUVTD;}$Dn%0A5T<&Bbq5yE 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 literal 0 HcmV?d00001 diff --git a/src/current/v24.1/cutover-replication.md b/src/current/v24.1/cutover-replication.md index 731a020b99f..452d5f5c340 100644 --- a/src/current/v24.1/cutover-replication.md +++ b/src/current/v24.1/cutover-replication.md @@ -5,10 +5,6 @@ toc: true docs_area: manage --- -{{site.data.alerts.callout_info}} -{% include feature-phases/preview.md %} -{{site.data.alerts.end}} - [**Physical cluster replication (PCR)**]({% link {{ page.version.version }}/physical-cluster-replication-overview.md %}) allows you to cut over from the active primary cluster to the passive standby cluster that has ingested replicated data. When you complete the replication, it will stop the stream of new data, reset the standby virtual cluster to a point in time where all ingested data is consistent, and then mark the standby virtual cluster as ready to accept traffic. The cutover is a two-step process on the standby cluster: @@ -54,6 +50,10 @@ SHOW VIRTUAL CLUSTER main WITH REPLICATION STATUS; (1 row) ~~~ +{{site.data.alerts.callout_success}} +You can view the [**Replication Lag** graph]({% link {{ page.version.version }}/ui-physical-cluster-replication-dashboard.md %}#replication-lag) in the standby cluster's DB Console. +{{site.data.alerts.end}} + Run the following from the standby cluster's SQL shell to start the cutover: {% include_cached copy-clipboard.html %} diff --git a/src/current/v24.1/physical-cluster-replication-monitoring.md b/src/current/v24.1/physical-cluster-replication-monitoring.md index 92f8dce8315..05ffb3aa7e8 100644 --- a/src/current/v24.1/physical-cluster-replication-monitoring.md +++ b/src/current/v24.1/physical-cluster-replication-monitoring.md @@ -43,7 +43,11 @@ id | name | source_tenant_name | source_cluster_uri ## DB Console -You can use the [**Physical Cluster Replication** dashboard]({% link {{ page.version.version }}/ui-physical-cluster-replication-dashboard.md %}) of the [DB Console]({% link {{ page.version.version }}/ui-overview.md %}) to monitor [logical bytes]({% link {{ page.version.version }}/ui-physical-cluster-replication-dashboard.md %}#logical-bytes) and [SST bytes]({% link {{ page.version.version }}/ui-physical-cluster-replication-dashboard.md %}#sst-bytes) on the standby cluster. +You can use the [**Physical Cluster Replication** dashboard]({% link {{ page.version.version }}/ui-physical-cluster-replication-dashboard.md %}) of the standby cluster's [DB Console]({% link {{ page.version.version }}/ui-overview.md %}) to monitor: + +- [Logical bytes]({% link {{ page.version.version }}/ui-physical-cluster-replication-dashboard.md %}#logical-bytes) +- [SST bytes]({% link {{ page.version.version }}/ui-physical-cluster-replication-dashboard.md %}#sst-bytes) +- [Replication Lag]({% link {{ page.version.version }}/ui-physical-cluster-replication-dashboard.md %}#replication-lag) ## Prometheus @@ -60,7 +64,7 @@ We recommend tracking the following metrics: {{site.data.alerts.callout_info}} **This feature is in [preview]({% link {{ page.version.version }}/cockroachdb-feature-availability.md %}).** It is in active development and subject to change. -The `SHOW EXPERIMENTAL_FINGERPRINTS` statement verifies that the data transmission and ingestion is working as expected while a replication stream is running. Any checksum mismatch likely represents corruption or a bug in CockroachDB. Should you encounter such a mismatch, contact [Support](https://support.cockroachlabs.com/hc/en-us). +The `SHOW EXPERIMENTAL_FINGERPRINTS` statement verifies that the data transmission and ingestion is working as expected while a replication stream is running. Any checksum mismatch likely represents corruption or a bug in CockroachDB. `SHOW EXPERIMENTAL_FINGERPRINTS` is **only** to verify data. Should you encounter such a mismatch, contact [Support](https://support.cockroachlabs.com/hc/en-us). {{site.data.alerts.end}} To verify that the data at a certain point in time is correct on the standby cluster, you can use the [current replicated time]({% link {{ page.version.version }}/show-virtual-cluster.md %}#responses) from the replication job information to run a point-in-time fingerprint on both the primary and standby clusters. This will verify that the transmission and ingestion of the data on the standby cluster, at that point in time, is correct. diff --git a/src/current/v24.1/ui-physical-cluster-replication-dashboard.md b/src/current/v24.1/ui-physical-cluster-replication-dashboard.md index 936a499e1eb..aa58a3136b6 100644 --- a/src/current/v24.1/ui-physical-cluster-replication-dashboard.md +++ b/src/current/v24.1/ui-physical-cluster-replication-dashboard.md @@ -5,10 +5,6 @@ toc: true docs_area: reference.db_console --- -{{site.data.alerts.callout_info}} -{% include feature-phases/preview.md %} -{{site.data.alerts.end}} - The **Physical Cluster Replication** dashboard in the DB Console lets you monitor the [physical cluster replication]({% link {{ page.version.version }}/physical-cluster-replication-overview.md %}) streams between a primary and standby cluster. To view this dashboard, [access the DB Console]({% link {{ page.version.version }}/ui-overview.md %}#db-console-access) for your standby cluster, click **Metrics** on the left-hand navigation bar, and select **Physical Cluster Replication** from the **Dashboard** dropdown. @@ -49,6 +45,17 @@ Hovering over the graph displays: - The date and time. - The number of SST bytes replicated. +## Replication lag + +DB Console Replication Lag graph showing results over the past hour + +{% include_cached new-in.html version="v24.1" %} The **Replication Lag** graph displays the [replication lag]({% link {{ page.version.version }}/physical-cluster-replication-technical-overview.md %}) between the primary and standby cluster. This is the time between the most up-to-date replicated time and the actual time. + +Hovering over the graph displays: + +- The specific date and time of the replication lag. +- The reported replication lag time. + {% include {{ page.version.version }}/ui/ui-summary-events.md %} ## See also From c69cec0cb143a069c198f2575c5e8a21db90faf3 Mon Sep 17 00:00:00 2001 From: Ryan Kuo <8740013+taroface@users.noreply.github.com> Date: Fri, 17 May 2024 16:33:22 -0400 Subject: [PATCH 05/30] MOLT Fetch security best practices (#18559) * security best practices --- src/current/v23.2/molt-fetch.md | 131 ++++++++++++++++++++++---------- src/current/v24.1/molt-fetch.md | 131 ++++++++++++++++++++++---------- 2 files changed, 182 insertions(+), 80 deletions(-) diff --git a/src/current/v23.2/molt-fetch.md b/src/current/v23.2/molt-fetch.md index 95849eea261..c93202ac841 100644 --- a/src/current/v23.2/molt-fetch.md +++ b/src/current/v23.2/molt-fetch.md @@ -33,7 +33,7 @@ For previous binaries, see the [MOLT version manifest](https://molt.cockroachdb. Complete the following items before using MOLT Fetch: -- Follow the recommendations in [Best practices](#best-practices). +- Follow the recommendations in [Best practices](#best-practices) and [Security recommendations](#security-recommendations). - Ensure that the source and target schemas are identical, unless you enable automatic schema creation with the [`'drop-on-target-and-recreate'`](#target-table-handling) option. @@ -99,6 +99,44 @@ Complete the following items before using MOLT Fetch: - If a MySQL database is set as a [source](#source-and-target-databases), the [`--table-concurrency`](#global-flags) and [`--export-concurrency`](#global-flags) flags **cannot** be set above `1`. If these values are changed, MOLT Fetch returns an error. This guarantees consistency when moving data from MySQL, due to MySQL limitations. MySQL data is migrated to CockroachDB one table and shard at a time, using [`WITH CONSISTENT SNAPSHOT`](https://dev.mysql.com/doc/refman/8.0/en/commit.html) transactions. +## Security recommendations + +Cockroach Labs **strongly** recommends the following: + +### Secure connections + +- Use secure connections to the source and [target CockroachDB database]({% link {{ page.version.version }}/connection-parameters.md %}#additional-connection-parameters) whenever possible. +- By default, insecure connections (i.e., `sslmode=disable` on PostgreSQL; `sslmode` not set on MySQL) are disallowed. When using an insecure connection, `molt fetch` returns an error. To override this check, you can enable the `--allow-tls-mode-disable` flag. Do this **only** for testing, or if a secure SSL/TLS connection to the source or target database is not possible. + +### Connection strings + +- Avoid plaintext connection strings. +- Provide your connection strings as environment variables. +- If possible within your security infrastructure, use an external secrets manager to load the environment variables from stored secrets. + + For example, to export connection strings as environment variables: + + ~~~ shell + export SOURCE="postgres://postgres:postgres@localhost:5432/molt?sslmode=verify-full" + export TARGET="postgres://root@localhost:26257/molt?sslmode=verify-full" + ~~~ + + Afterward, to pass the environment variables in `molt fetch` commands: + + ~~~ shell + molt fetch \ + --source "$SOURCE" \ + --target "$TARGET" \ + --table-filter 'employees' \ + --bucket-path 's3://molt-test' \ + --table-handling truncate-if-exists + ~~~ + +### Secure cloud storage + +- When using [cloud storage](#cloud-storage) for your intermediate store, ensure that access control is properly configured. Refer to the [GCP](https://cloud.google.com/storage/docs/access-control) or [AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html) documentation. +- Do not use public cloud storage in production. + ## Commands | Command | Usage | @@ -115,41 +153,42 @@ Complete the following items before using MOLT Fetch: ### Global flags -| Flag | Description | -|-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `--source` | (Required) Connection string for the source database. For details, see [Source and target databases](#source-and-target-databases). | -| `--target` | (Required) Connection string for the target database. For details, see [Source and target databases](#source-and-target-databases). | -| `--bucket-path` | The path within the [cloud storage](#cloud-storage) bucket where intermediate files are written (e.g., `'s3://bucket/path'` or `'gs://bucket/path'`). | -| `--cleanup` | Whether to delete intermediate files after moving data using [cloud or local storage](#data-path). **Note:** Cleanup does not occur on [continuation](#fetch-continuation). | -| `--compression` | Compression method for data when using [`IMPORT INTO` mode](#fetch-mode) (`gzip`/`none`).

**Default:** `gzip` | -| `--continuation-file-name` | Restart fetch at the specified filename if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | -| `--continuation-token` | Restart fetch at a specific table, using the specified continuation token, if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | -| `--direct-copy` | Enables [direct copy mode](#fetch-mode), which copies data directly from source to target without using an intermediate store. | +| Flag | Description | +|-----------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `--source` | (Required) Connection string for the source database. For details, see [Source and target databases](#source-and-target-databases). | +| `--target` | (Required) Connection string for the target database. For details, see [Source and target databases](#source-and-target-databases). | +| `--allow-tls-mode-disable` | Allow insecure connections to databases. Secure SSL/TLS connections should be used by default. This should be enabled **only** if secure SSL/TLS connections to the source or target database are not possible. | +| `--bucket-path` | The path within the [cloud storage](#cloud-storage) bucket where intermediate files are written (e.g., `'s3://bucket/path'` or `'gs://bucket/path'`). | +| `--cleanup` | Whether to delete intermediate files after moving data using [cloud or local storage](#data-path). **Note:** Cleanup does not occur on [continuation](#fetch-continuation). | +| `--compression` | Compression method for data when using [`IMPORT INTO` mode](#fetch-mode) (`gzip`/`none`).

**Default:** `gzip` | +| `--continuation-file-name` | Restart fetch at the specified filename if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | +| `--continuation-token` | Restart fetch at a specific table, using the specified continuation token, if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | +| `--direct-copy` | Enables [direct copy mode](#fetch-mode), which copies data directly from source to target without using an intermediate store. | | `--export-concurrency` | Number of shards to export at a time, each on a dedicated thread. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. Refer to [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | -| `--fetch-id` | Restart fetch process corresponding to the specified ID. If `--continuation-file-name` or `--continuation-token` are not specified, fetch restarts for all failed tables. | -| `--flush-rows` | Number of rows before the source data is flushed to intermediate files. **Note:** If `--flush-size` is also specified, the fetch behavior is based on the flag whose criterion is met first. | -| `--flush-size` | Size (in bytes) before the source data is flushed to intermediate files. **Note:** If `--flush-rows` is also specified, the fetch behavior is based on the flag whose criterion is met first. | -| `--local-path` | The path within the [local file server](#local-file-server) where intermediate files are written (e.g., `data/migration/cockroach`). `--local-path-listen-addr` must be specified. | -| `--local-path-crdb-access-addr` | Address of a [local file server](#local-file-server) that is reachable by CockroachDB. This flag is only necessary if CockroachDB cannot reach the local address specified with `--local-path-listen-addr` (e.g., when moving data to a CockroachDB {{ site.data.products.cloud }} deployment).

**Default:** Value of `--local-path-listen-addr`. `--local-path` and `--local-path-listen-addr` must be specified. | -| `--local-path-listen-addr` | Write intermediate files to a [local file server](#local-file-server) at the specified address (e.g., `'localhost:3000'`). `--local-path` must be specified. | -| `--log-file` | Write messages to the specified log filename. If not specified, messages are only written to `stdout`. | -| `--logging` | Level at which to log messages (`'trace'`/`'debug'`/`'info'`/`'warn'`/`'error'`/`'fatal'`/`'panic'`).

**Default:** `'info'` | -| `--metrics-listen-addr` | Address of the metrics endpoint.

**Default:** `'127.0.0.1:3030'` | -| `--non-interactive` | Run the fetch process without interactive prompts. This is recommended **only** when running `molt fetch` in an automated process (i.e., a job or continuous integration). | -| `--ongoing-replication` | Enable continuous [replication](#replication) to begin after the fetch process succeeds (i.e., initial source data is loaded into CockroachDB). | -| `--pglogical-replication-slot-drop-if-exists` | Drop the replication slot, if specified with `--pglogical-replication-slot-name`. Otherwise, the default replication slot is not dropped. | -| `--pglogical-replication-slot-name` | The name of a replication slot to create before taking a snapshot of data (e.g., `'fetch'`). **Required** in order to perform continuous [replication](#replication) from a source PostgreSQL database. | -| `--pglogical-replication-slot-plugin` | The output plugin used for logical replication under `--pglogical-replication-slot-name`.

**Default:** `pgoutput` | -| `--pprof-listen-addr` | Address of the pprof endpoint.

**Default:** `'127.0.0.1:3031'` | -| `--replicator-flags` | If continuous [replication](#replication) is enabled with `--ongoing-replication`, specify Replicator flags ([PostgreSQL](https://github.com/cockroachdb/replicator/wiki/PGLogical#postgresql-logical-replication) or [MySQL](https://github.com/cockroachdb/replicator/wiki/MYLogical#mysqlmariadb-replication)) to override. | -| `--row-batch-size` | Number of rows to select at a time for export from the source database.

**Default:** `100000` | -| `--schema-filter` | Move schemas that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | -| `--table-concurrency` | Number of tables to export at a time. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. See [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | -| `--table-filter` | Move tables that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | -| `--table-handling` | How tables are initialized on the target database (`'none'`/`'drop-on-target-and-recreate'`/`'truncate-if-exists'`). For details, see [Target table handling](#target-table-handling).

**Default:** `'none'` | -| `--type-map-file` | Path to a JSON file that contains explicit type mappings for automatic schema creation, when enabled with `--table-handling 'drop-on-target-and-recreate'`. For details on the JSON format and valid type mappings, see [type mapping](#type-mapping). | -| `--use-console-writer` | Use the console writer, which has cleaner log output but introduces more latency.

**Default:** `false` (log as structured JSON) | -| `--use-copy` | Use [`COPY FROM` mode](#fetch-mode) to move data. This makes tables queryable during data load, but is slower than `IMPORT INTO` mode. For details, see [Fetch mode](#fetch-mode). | +| `--fetch-id` | Restart fetch process corresponding to the specified ID. If `--continuation-file-name` or `--continuation-token` are not specified, fetch restarts for all failed tables. | +| `--flush-rows` | Number of rows before the source data is flushed to intermediate files. **Note:** If `--flush-size` is also specified, the fetch behavior is based on the flag whose criterion is met first. | +| `--flush-size` | Size (in bytes) before the source data is flushed to intermediate files. **Note:** If `--flush-rows` is also specified, the fetch behavior is based on the flag whose criterion is met first. | +| `--local-path` | The path within the [local file server](#local-file-server) where intermediate files are written (e.g., `data/migration/cockroach`). `--local-path-listen-addr` must be specified. | +| `--local-path-crdb-access-addr` | Address of a [local file server](#local-file-server) that is reachable by CockroachDB. This flag is only necessary if CockroachDB cannot reach the local address specified with `--local-path-listen-addr` (e.g., when moving data to a CockroachDB {{ site.data.products.cloud }} deployment).

**Default:** Value of `--local-path-listen-addr`. `--local-path` and `--local-path-listen-addr` must be specified. | +| `--local-path-listen-addr` | Write intermediate files to a [local file server](#local-file-server) at the specified address (e.g., `'localhost:3000'`). `--local-path` must be specified. | +| `--log-file` | Write messages to the specified log filename. If not specified, messages are only written to `stdout`. | +| `--logging` | Level at which to log messages (`'trace'`/`'debug'`/`'info'`/`'warn'`/`'error'`/`'fatal'`/`'panic'`).

**Default:** `'info'` | +| `--metrics-listen-addr` | Address of the metrics endpoint.

**Default:** `'127.0.0.1:3030'` | +| `--non-interactive` | Run the fetch process without interactive prompts. This is recommended **only** when running `molt fetch` in an automated process (i.e., a job or continuous integration). | +| `--ongoing-replication` | Enable continuous [replication](#replication) to begin after the fetch process succeeds (i.e., initial source data is loaded into CockroachDB). | +| `--pglogical-replication-slot-drop-if-exists` | Drop the replication slot, if specified with `--pglogical-replication-slot-name`. Otherwise, the default replication slot is not dropped. | +| `--pglogical-replication-slot-name` | The name of a replication slot to create before taking a snapshot of data (e.g., `'fetch'`). **Required** in order to perform continuous [replication](#replication) from a source PostgreSQL database. | +| `--pglogical-replication-slot-plugin` | The output plugin used for logical replication under `--pglogical-replication-slot-name`.

**Default:** `pgoutput` | +| `--pprof-listen-addr` | Address of the pprof endpoint.

**Default:** `'127.0.0.1:3031'` | +| `--replicator-flags` | If continuous [replication](#replication) is enabled with `--ongoing-replication`, specify Replicator flags ([PostgreSQL](https://github.com/cockroachdb/replicator/wiki/PGLogical#postgresql-logical-replication) or [MySQL](https://github.com/cockroachdb/replicator/wiki/MYLogical#mysqlmariadb-replication)) to override. | +| `--row-batch-size` | Number of rows to select at a time for export from the source database.

**Default:** `100000` | +| `--schema-filter` | Move schemas that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | +| `--table-concurrency` | Number of tables to export at a time. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. See [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | +| `--table-filter` | Move tables that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | +| `--table-handling` | How tables are initialized on the target database (`'none'`/`'drop-on-target-and-recreate'`/`'truncate-if-exists'`). For details, see [Target table handling](#target-table-handling).

**Default:** `'none'` | +| `--type-map-file` | Path to a JSON file that contains explicit type mappings for automatic schema creation, when enabled with `--table-handling 'drop-on-target-and-recreate'`. For details on the JSON format and valid type mappings, see [type mapping](#type-mapping). | +| `--use-console-writer` | Use the console writer, which has cleaner log output but introduces more latency.

**Default:** `false` (log as structured JSON) | +| `--use-copy` | Use [`COPY FROM` mode](#fetch-mode) to move data. This makes tables queryable during data load, but is slower than `IMPORT INTO` mode. For details, see [Fetch mode](#fetch-mode). | ### `tokens list` flags @@ -164,6 +203,10 @@ The following sections describe how to use the `molt fetch` [flags](#flags). ### Source and target databases +{{site.data.alerts.callout_success}} +Follow the recommendations in [Connection strings](#connection-strings). +{{site.data.alerts.end}} + `--source` specifies the connection string of the source database. PostgreSQL or CockroachDB: @@ -211,6 +254,10 @@ MOLT Fetch can move the source data to CockroachDB via [cloud storage](#cloud-st #### Cloud storage +{{site.data.alerts.callout_success}} +Follow the recommendations in [Secure cloud storage](#secure-cloud-storage). +{{site.data.alerts.end}} + `--bucket-path` specifies that MOLT Fetch should write intermediate files to a path within a [Google Cloud Storage](https://cloud.google.com/storage/docs/buckets) or [Amazon S3](https://aws.amazon.com/s3/) bucket to which you have the necessary permissions. For example: Google Cloud Storage: @@ -502,7 +549,7 @@ You can use the `cdc_cursor` value with an external change data capture (CDC) to ## Examples -The following examples demonstrate how to issue `molt fetch` commands to load data into CockroachDB. +The following examples demonstrate how to issue `molt fetch` commands to load data into CockroachDB. These examples assume that [secure connections](#secure-connections) to the source and target database are used. {{site.data.alerts.callout_success}} After successfully running MOLT Fetch, you can run [`molt verify`]({% link {{ page.version.version }}/molt-verify.md %}) to confirm that replication worked successfully without missing or mismatched rows. @@ -558,7 +605,7 @@ The following `molt fetch` command uses `COPY FROM` to load a subset of tables f {% include_cached copy-clipboard.html %} ~~~ shell molt fetch \ ---source 'mysql://root:password@localhost/molt' \ +--source 'mysql://root:password@localhost/molt?sslcert=.%2fsource_certs%2fclient.root.crt&sslkey=.%2fsource_certs%2fclient.root.key&sslmode=verify-full&sslrootcert=.%2fsource_certs%2fca.crt' \ --target 'postgres://root@localhost:26257/defaultdb?sslmode=verify-full' \ --table-handling 'truncate-if-exists' \ --table-filter 'employees' \ @@ -567,6 +614,7 @@ molt fetch \ --cleanup ~~~ +- `--source` specifies the MySQL connection string and the certificates in URL-encoded format. Secure connections should be used by default. Refer to [Best practices](#best-practices). - `--table-handling` specifies that existing tables on CockroachDB should be truncated before the source data is loaded. - `--table-filter` filters for tables with the `employees` string in the name. - `--bucket-path` specifies a directory on an [Google Cloud Storage bucket](#data-path) where intermediate files will be written. @@ -599,14 +647,17 @@ The following `molt fetch` command uses `COPY FROM` to load all tables directly {% include_cached copy-clipboard.html %} ~~~ shell molt fetch \ ---source 'postgres://root@localhost:26257/defaultdb?sslmode=verify-full' \ ---target 'postgres://root@localhost:26258/defaultdb?sslmode=verify-full' \ +--source 'postgres://root@localhost:26257/defaultdb?sslmode=disable' \ +--target 'postgres://root@localhost:26258/defaultdb?sslmode=disable' \ --table-handling 'none' \ ---direct-copy +--direct-copy \ +--allow-tls-mode-disable ~~~ +- `--source` specifies `sslmode=disable` to establish an insecure connection. By default, insecure connections are disallowed and should be used **only** for testing or if a secure SSL/TLS connection to the source or target database is not possible. - `--table-handling` specifies that existing tables on the target CockroachDB database should not be modified before the source data is loaded. - `--direct-copy` specifies that `COPY FROM` is used to load the tables directly, without creating intermediate files. +- `--allow-tls-mode-disable` enables insecure connections to the source and target databases. Refer to [Secure connections](#secure-connections). ### Continue fetch after encountering an error diff --git a/src/current/v24.1/molt-fetch.md b/src/current/v24.1/molt-fetch.md index 95849eea261..c93202ac841 100644 --- a/src/current/v24.1/molt-fetch.md +++ b/src/current/v24.1/molt-fetch.md @@ -33,7 +33,7 @@ For previous binaries, see the [MOLT version manifest](https://molt.cockroachdb. Complete the following items before using MOLT Fetch: -- Follow the recommendations in [Best practices](#best-practices). +- Follow the recommendations in [Best practices](#best-practices) and [Security recommendations](#security-recommendations). - Ensure that the source and target schemas are identical, unless you enable automatic schema creation with the [`'drop-on-target-and-recreate'`](#target-table-handling) option. @@ -99,6 +99,44 @@ Complete the following items before using MOLT Fetch: - If a MySQL database is set as a [source](#source-and-target-databases), the [`--table-concurrency`](#global-flags) and [`--export-concurrency`](#global-flags) flags **cannot** be set above `1`. If these values are changed, MOLT Fetch returns an error. This guarantees consistency when moving data from MySQL, due to MySQL limitations. MySQL data is migrated to CockroachDB one table and shard at a time, using [`WITH CONSISTENT SNAPSHOT`](https://dev.mysql.com/doc/refman/8.0/en/commit.html) transactions. +## Security recommendations + +Cockroach Labs **strongly** recommends the following: + +### Secure connections + +- Use secure connections to the source and [target CockroachDB database]({% link {{ page.version.version }}/connection-parameters.md %}#additional-connection-parameters) whenever possible. +- By default, insecure connections (i.e., `sslmode=disable` on PostgreSQL; `sslmode` not set on MySQL) are disallowed. When using an insecure connection, `molt fetch` returns an error. To override this check, you can enable the `--allow-tls-mode-disable` flag. Do this **only** for testing, or if a secure SSL/TLS connection to the source or target database is not possible. + +### Connection strings + +- Avoid plaintext connection strings. +- Provide your connection strings as environment variables. +- If possible within your security infrastructure, use an external secrets manager to load the environment variables from stored secrets. + + For example, to export connection strings as environment variables: + + ~~~ shell + export SOURCE="postgres://postgres:postgres@localhost:5432/molt?sslmode=verify-full" + export TARGET="postgres://root@localhost:26257/molt?sslmode=verify-full" + ~~~ + + Afterward, to pass the environment variables in `molt fetch` commands: + + ~~~ shell + molt fetch \ + --source "$SOURCE" \ + --target "$TARGET" \ + --table-filter 'employees' \ + --bucket-path 's3://molt-test' \ + --table-handling truncate-if-exists + ~~~ + +### Secure cloud storage + +- When using [cloud storage](#cloud-storage) for your intermediate store, ensure that access control is properly configured. Refer to the [GCP](https://cloud.google.com/storage/docs/access-control) or [AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html) documentation. +- Do not use public cloud storage in production. + ## Commands | Command | Usage | @@ -115,41 +153,42 @@ Complete the following items before using MOLT Fetch: ### Global flags -| Flag | Description | -|-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `--source` | (Required) Connection string for the source database. For details, see [Source and target databases](#source-and-target-databases). | -| `--target` | (Required) Connection string for the target database. For details, see [Source and target databases](#source-and-target-databases). | -| `--bucket-path` | The path within the [cloud storage](#cloud-storage) bucket where intermediate files are written (e.g., `'s3://bucket/path'` or `'gs://bucket/path'`). | -| `--cleanup` | Whether to delete intermediate files after moving data using [cloud or local storage](#data-path). **Note:** Cleanup does not occur on [continuation](#fetch-continuation). | -| `--compression` | Compression method for data when using [`IMPORT INTO` mode](#fetch-mode) (`gzip`/`none`).

**Default:** `gzip` | -| `--continuation-file-name` | Restart fetch at the specified filename if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | -| `--continuation-token` | Restart fetch at a specific table, using the specified continuation token, if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | -| `--direct-copy` | Enables [direct copy mode](#fetch-mode), which copies data directly from source to target without using an intermediate store. | +| Flag | Description | +|-----------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `--source` | (Required) Connection string for the source database. For details, see [Source and target databases](#source-and-target-databases). | +| `--target` | (Required) Connection string for the target database. For details, see [Source and target databases](#source-and-target-databases). | +| `--allow-tls-mode-disable` | Allow insecure connections to databases. Secure SSL/TLS connections should be used by default. This should be enabled **only** if secure SSL/TLS connections to the source or target database are not possible. | +| `--bucket-path` | The path within the [cloud storage](#cloud-storage) bucket where intermediate files are written (e.g., `'s3://bucket/path'` or `'gs://bucket/path'`). | +| `--cleanup` | Whether to delete intermediate files after moving data using [cloud or local storage](#data-path). **Note:** Cleanup does not occur on [continuation](#fetch-continuation). | +| `--compression` | Compression method for data when using [`IMPORT INTO` mode](#fetch-mode) (`gzip`/`none`).

**Default:** `gzip` | +| `--continuation-file-name` | Restart fetch at the specified filename if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | +| `--continuation-token` | Restart fetch at a specific table, using the specified continuation token, if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | +| `--direct-copy` | Enables [direct copy mode](#fetch-mode), which copies data directly from source to target without using an intermediate store. | | `--export-concurrency` | Number of shards to export at a time, each on a dedicated thread. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. Refer to [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | -| `--fetch-id` | Restart fetch process corresponding to the specified ID. If `--continuation-file-name` or `--continuation-token` are not specified, fetch restarts for all failed tables. | -| `--flush-rows` | Number of rows before the source data is flushed to intermediate files. **Note:** If `--flush-size` is also specified, the fetch behavior is based on the flag whose criterion is met first. | -| `--flush-size` | Size (in bytes) before the source data is flushed to intermediate files. **Note:** If `--flush-rows` is also specified, the fetch behavior is based on the flag whose criterion is met first. | -| `--local-path` | The path within the [local file server](#local-file-server) where intermediate files are written (e.g., `data/migration/cockroach`). `--local-path-listen-addr` must be specified. | -| `--local-path-crdb-access-addr` | Address of a [local file server](#local-file-server) that is reachable by CockroachDB. This flag is only necessary if CockroachDB cannot reach the local address specified with `--local-path-listen-addr` (e.g., when moving data to a CockroachDB {{ site.data.products.cloud }} deployment).

**Default:** Value of `--local-path-listen-addr`. `--local-path` and `--local-path-listen-addr` must be specified. | -| `--local-path-listen-addr` | Write intermediate files to a [local file server](#local-file-server) at the specified address (e.g., `'localhost:3000'`). `--local-path` must be specified. | -| `--log-file` | Write messages to the specified log filename. If not specified, messages are only written to `stdout`. | -| `--logging` | Level at which to log messages (`'trace'`/`'debug'`/`'info'`/`'warn'`/`'error'`/`'fatal'`/`'panic'`).

**Default:** `'info'` | -| `--metrics-listen-addr` | Address of the metrics endpoint.

**Default:** `'127.0.0.1:3030'` | -| `--non-interactive` | Run the fetch process without interactive prompts. This is recommended **only** when running `molt fetch` in an automated process (i.e., a job or continuous integration). | -| `--ongoing-replication` | Enable continuous [replication](#replication) to begin after the fetch process succeeds (i.e., initial source data is loaded into CockroachDB). | -| `--pglogical-replication-slot-drop-if-exists` | Drop the replication slot, if specified with `--pglogical-replication-slot-name`. Otherwise, the default replication slot is not dropped. | -| `--pglogical-replication-slot-name` | The name of a replication slot to create before taking a snapshot of data (e.g., `'fetch'`). **Required** in order to perform continuous [replication](#replication) from a source PostgreSQL database. | -| `--pglogical-replication-slot-plugin` | The output plugin used for logical replication under `--pglogical-replication-slot-name`.

**Default:** `pgoutput` | -| `--pprof-listen-addr` | Address of the pprof endpoint.

**Default:** `'127.0.0.1:3031'` | -| `--replicator-flags` | If continuous [replication](#replication) is enabled with `--ongoing-replication`, specify Replicator flags ([PostgreSQL](https://github.com/cockroachdb/replicator/wiki/PGLogical#postgresql-logical-replication) or [MySQL](https://github.com/cockroachdb/replicator/wiki/MYLogical#mysqlmariadb-replication)) to override. | -| `--row-batch-size` | Number of rows to select at a time for export from the source database.

**Default:** `100000` | -| `--schema-filter` | Move schemas that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | -| `--table-concurrency` | Number of tables to export at a time. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. See [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | -| `--table-filter` | Move tables that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | -| `--table-handling` | How tables are initialized on the target database (`'none'`/`'drop-on-target-and-recreate'`/`'truncate-if-exists'`). For details, see [Target table handling](#target-table-handling).

**Default:** `'none'` | -| `--type-map-file` | Path to a JSON file that contains explicit type mappings for automatic schema creation, when enabled with `--table-handling 'drop-on-target-and-recreate'`. For details on the JSON format and valid type mappings, see [type mapping](#type-mapping). | -| `--use-console-writer` | Use the console writer, which has cleaner log output but introduces more latency.

**Default:** `false` (log as structured JSON) | -| `--use-copy` | Use [`COPY FROM` mode](#fetch-mode) to move data. This makes tables queryable during data load, but is slower than `IMPORT INTO` mode. For details, see [Fetch mode](#fetch-mode). | +| `--fetch-id` | Restart fetch process corresponding to the specified ID. If `--continuation-file-name` or `--continuation-token` are not specified, fetch restarts for all failed tables. | +| `--flush-rows` | Number of rows before the source data is flushed to intermediate files. **Note:** If `--flush-size` is also specified, the fetch behavior is based on the flag whose criterion is met first. | +| `--flush-size` | Size (in bytes) before the source data is flushed to intermediate files. **Note:** If `--flush-rows` is also specified, the fetch behavior is based on the flag whose criterion is met first. | +| `--local-path` | The path within the [local file server](#local-file-server) where intermediate files are written (e.g., `data/migration/cockroach`). `--local-path-listen-addr` must be specified. | +| `--local-path-crdb-access-addr` | Address of a [local file server](#local-file-server) that is reachable by CockroachDB. This flag is only necessary if CockroachDB cannot reach the local address specified with `--local-path-listen-addr` (e.g., when moving data to a CockroachDB {{ site.data.products.cloud }} deployment).

**Default:** Value of `--local-path-listen-addr`. `--local-path` and `--local-path-listen-addr` must be specified. | +| `--local-path-listen-addr` | Write intermediate files to a [local file server](#local-file-server) at the specified address (e.g., `'localhost:3000'`). `--local-path` must be specified. | +| `--log-file` | Write messages to the specified log filename. If not specified, messages are only written to `stdout`. | +| `--logging` | Level at which to log messages (`'trace'`/`'debug'`/`'info'`/`'warn'`/`'error'`/`'fatal'`/`'panic'`).

**Default:** `'info'` | +| `--metrics-listen-addr` | Address of the metrics endpoint.

**Default:** `'127.0.0.1:3030'` | +| `--non-interactive` | Run the fetch process without interactive prompts. This is recommended **only** when running `molt fetch` in an automated process (i.e., a job or continuous integration). | +| `--ongoing-replication` | Enable continuous [replication](#replication) to begin after the fetch process succeeds (i.e., initial source data is loaded into CockroachDB). | +| `--pglogical-replication-slot-drop-if-exists` | Drop the replication slot, if specified with `--pglogical-replication-slot-name`. Otherwise, the default replication slot is not dropped. | +| `--pglogical-replication-slot-name` | The name of a replication slot to create before taking a snapshot of data (e.g., `'fetch'`). **Required** in order to perform continuous [replication](#replication) from a source PostgreSQL database. | +| `--pglogical-replication-slot-plugin` | The output plugin used for logical replication under `--pglogical-replication-slot-name`.

**Default:** `pgoutput` | +| `--pprof-listen-addr` | Address of the pprof endpoint.

**Default:** `'127.0.0.1:3031'` | +| `--replicator-flags` | If continuous [replication](#replication) is enabled with `--ongoing-replication`, specify Replicator flags ([PostgreSQL](https://github.com/cockroachdb/replicator/wiki/PGLogical#postgresql-logical-replication) or [MySQL](https://github.com/cockroachdb/replicator/wiki/MYLogical#mysqlmariadb-replication)) to override. | +| `--row-batch-size` | Number of rows to select at a time for export from the source database.

**Default:** `100000` | +| `--schema-filter` | Move schemas that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | +| `--table-concurrency` | Number of tables to export at a time. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. See [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | +| `--table-filter` | Move tables that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | +| `--table-handling` | How tables are initialized on the target database (`'none'`/`'drop-on-target-and-recreate'`/`'truncate-if-exists'`). For details, see [Target table handling](#target-table-handling).

**Default:** `'none'` | +| `--type-map-file` | Path to a JSON file that contains explicit type mappings for automatic schema creation, when enabled with `--table-handling 'drop-on-target-and-recreate'`. For details on the JSON format and valid type mappings, see [type mapping](#type-mapping). | +| `--use-console-writer` | Use the console writer, which has cleaner log output but introduces more latency.

**Default:** `false` (log as structured JSON) | +| `--use-copy` | Use [`COPY FROM` mode](#fetch-mode) to move data. This makes tables queryable during data load, but is slower than `IMPORT INTO` mode. For details, see [Fetch mode](#fetch-mode). | ### `tokens list` flags @@ -164,6 +203,10 @@ The following sections describe how to use the `molt fetch` [flags](#flags). ### Source and target databases +{{site.data.alerts.callout_success}} +Follow the recommendations in [Connection strings](#connection-strings). +{{site.data.alerts.end}} + `--source` specifies the connection string of the source database. PostgreSQL or CockroachDB: @@ -211,6 +254,10 @@ MOLT Fetch can move the source data to CockroachDB via [cloud storage](#cloud-st #### Cloud storage +{{site.data.alerts.callout_success}} +Follow the recommendations in [Secure cloud storage](#secure-cloud-storage). +{{site.data.alerts.end}} + `--bucket-path` specifies that MOLT Fetch should write intermediate files to a path within a [Google Cloud Storage](https://cloud.google.com/storage/docs/buckets) or [Amazon S3](https://aws.amazon.com/s3/) bucket to which you have the necessary permissions. For example: Google Cloud Storage: @@ -502,7 +549,7 @@ You can use the `cdc_cursor` value with an external change data capture (CDC) to ## Examples -The following examples demonstrate how to issue `molt fetch` commands to load data into CockroachDB. +The following examples demonstrate how to issue `molt fetch` commands to load data into CockroachDB. These examples assume that [secure connections](#secure-connections) to the source and target database are used. {{site.data.alerts.callout_success}} After successfully running MOLT Fetch, you can run [`molt verify`]({% link {{ page.version.version }}/molt-verify.md %}) to confirm that replication worked successfully without missing or mismatched rows. @@ -558,7 +605,7 @@ The following `molt fetch` command uses `COPY FROM` to load a subset of tables f {% include_cached copy-clipboard.html %} ~~~ shell molt fetch \ ---source 'mysql://root:password@localhost/molt' \ +--source 'mysql://root:password@localhost/molt?sslcert=.%2fsource_certs%2fclient.root.crt&sslkey=.%2fsource_certs%2fclient.root.key&sslmode=verify-full&sslrootcert=.%2fsource_certs%2fca.crt' \ --target 'postgres://root@localhost:26257/defaultdb?sslmode=verify-full' \ --table-handling 'truncate-if-exists' \ --table-filter 'employees' \ @@ -567,6 +614,7 @@ molt fetch \ --cleanup ~~~ +- `--source` specifies the MySQL connection string and the certificates in URL-encoded format. Secure connections should be used by default. Refer to [Best practices](#best-practices). - `--table-handling` specifies that existing tables on CockroachDB should be truncated before the source data is loaded. - `--table-filter` filters for tables with the `employees` string in the name. - `--bucket-path` specifies a directory on an [Google Cloud Storage bucket](#data-path) where intermediate files will be written. @@ -599,14 +647,17 @@ The following `molt fetch` command uses `COPY FROM` to load all tables directly {% include_cached copy-clipboard.html %} ~~~ shell molt fetch \ ---source 'postgres://root@localhost:26257/defaultdb?sslmode=verify-full' \ ---target 'postgres://root@localhost:26258/defaultdb?sslmode=verify-full' \ +--source 'postgres://root@localhost:26257/defaultdb?sslmode=disable' \ +--target 'postgres://root@localhost:26258/defaultdb?sslmode=disable' \ --table-handling 'none' \ ---direct-copy +--direct-copy \ +--allow-tls-mode-disable ~~~ +- `--source` specifies `sslmode=disable` to establish an insecure connection. By default, insecure connections are disallowed and should be used **only** for testing or if a secure SSL/TLS connection to the source or target database is not possible. - `--table-handling` specifies that existing tables on the target CockroachDB database should not be modified before the source data is loaded. - `--direct-copy` specifies that `COPY FROM` is used to load the tables directly, without creating intermediate files. +- `--allow-tls-mode-disable` enables insecure connections to the source and target databases. Refer to [Secure connections](#secure-connections). ### Continue fetch after encountering an error From aaaf92d8aa879ce783be8bc43a75d9c09e2245f4 Mon Sep 17 00:00:00 2001 From: "Matt Linville (he/him)" Date: Fri, 17 May 2024 15:20:20 -0700 Subject: [PATCH 06/30] [DOC-10090][DOC-10093] v24.1.0 deprecations, backward-incompatible changes, license changes (#18530) - Also fix a display bug in v23.1.0 release notes - Also update license conversion timelines for 23.2 and 24.1 --- src/current/_includes/releases/v23.1/v23.1.0.md | 2 +- .../_includes/releases/v24.1/v24.1.0-alpha.1.md | 2 +- src/current/_includes/releases/v24.1/v24.1.0.md | 15 +++++++++++++-- src/current/v24.1/licensing-faqs.md | 2 ++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/current/_includes/releases/v23.1/v23.1.0.md b/src/current/_includes/releases/v23.1/v23.1.0.md index cd65a6571dc..bfff7511a04 100644 --- a/src/current/_includes/releases/v23.1/v23.1.0.md +++ b/src/current/_includes/releases/v23.1/v23.1.0.md @@ -224,7 +224,7 @@ Asyncpg is commonly used with ORM libraries such as SQLAlchemy to provide a simp -

Recovery and I/O

+

Recovery and I/O

Change data capture (Changefeeds)
diff --git a/src/current/_includes/releases/v24.1/v24.1.0-alpha.1.md b/src/current/_includes/releases/v24.1/v24.1.0-alpha.1.md index eeed1ab4764..02332ef2759 100644 --- a/src/current/_includes/releases/v24.1/v24.1.0-alpha.1.md +++ b/src/current/_includes/releases/v24.1/v24.1.0-alpha.1.md @@ -6,7 +6,7 @@ Release Date: March 7, 2024

Backward-incompatible changes

-- [`AS OF SYSTEM TIME`]({% link v23.2/as-of-system-time.md %}) queries can no longer use a timestamp followed by a question mark to signifiy a future-time value. This was an undocumented syntax. [#116830][#116830] +- [`AS OF SYSTEM TIME`]({% link v23.2/as-of-system-time.md %}) queries can no longer use a timestamp followed by a question mark to signify a future-time value. This was an undocumented syntax. [#116830][#116830]

{{ site.data.products.enterprise }} edition changes

diff --git a/src/current/_includes/releases/v24.1/v24.1.0.md b/src/current/_includes/releases/v24.1/v24.1.0.md index 5c9e947b332..1751218f807 100644 --- a/src/current/_includes/releases/v24.1/v24.1.0.md +++ b/src/current/_includes/releases/v24.1/v24.1.0.md @@ -237,11 +237,21 @@ In CockroachDB Self-Hosted, all available features are free to use unless their +

Enterprise features

+ +{{site.data.alerts.callout_info}} +The following are [enterprise-only](https://www.cockroachlabs.com/docs/v24.1/enterprise-licensing) features. [Request a 30-day trial license](https://www.cockroachlabs.com/get-cockroachdb/enterprise/) to try them out. +{{site.data.alerts.end}} + +- The [`READ COMMITTED`]({% link v24.1/read-committed.md %}) isolation level now requires the cluster to have a valid [enterprise license](https://cockroachlabs.com/docs/v24.1/licensing-faqs#obtain-a-license). Otherwise, transactions which are configured to run as `READ COMMITTED` will be upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), as described in [Backward-incompatible changes](#read-committed-transaction-upgrade). [#120154](https://github.com/cockroachdb/cockroach/pull/120154) +

Backward-incompatible changes

Before [upgrading to CockroachDB v24.1]({% link v24.1/upgrade-cockroach-version.md %}), be sure to review the following backward-incompatible changes, as well as [key cluster setting changes](#v24-1-0-cluster-settings), and adjust your deployment as necessary. -- TBD +- [`AS OF SYSTEM TIME`]({% link v23.2/as-of-system-time.md %}) queries can no longer use a timestamp followed by a question mark to signify a future-time value. This was an undocumented syntax. [#116830](https://github.com/cockroachdb/cockroach/pull/116830) +- The [`READ COMMITTED`]({% link v24.1/read-committed.md %}) isolation level now requires the cluster to have a valid [enterprise license](https://cockroachlabs.com/docs/v24.1/licensing-faqs#obtain-a-license). Otherwise, transactions which are configured to run as `READ COMMITTED` will be upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), as described in the next note. [#120154](https://github.com/cockroachdb/cockroach/pull/120154) +-
The `sql.txn.read_committed_isolation.enabled` [cluster setting]({% link v24.1/cluster-settings.md %}) is now `true` by default. As a result, [`READ COMMITTED`]({% link v24.1/read-committed.md %}) transactions are **not** automatically upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), and will run as `READ COMMITTED` by default. On v23.2, refer to the [**Upgrades of SQL Transaction Isolation Level**]({% link v24.1/ui-sql-dashboard.md %}#upgrades-of-sql-transaction-isolation-level) graph in the DB Console to check whether any transaction is being upgraded from a weaker isolation level to `SERIALIZABLE`, and could therefore run differently on v24.1. [#118479](https://github.com/cockroachdb/cockroach/pull/118479)

Key Cluster Setting Changes

@@ -253,7 +263,8 @@ The following changes should be reviewed prior to upgrading. Default cluster set {% comment %}TODO: Intro para? Each sibling section has one.{% endcomment %} -- TBD +- `changefeed.balance_range_distribution.enable` is now deprecated. Instead, use the new [cluster setting]({% link v23.2/cluster-settings.md %}) `changefeed.default_range_distribution_strategy`. `changefeed.default_range_distribution_strategy='balanced_simple'` has the same effect as setting `changefeed.balance_range_distribution.enable=true`. It does not require `initial_scan='only'`, which was required by the old setting. [#115166][#115166] +- The `cockroach connect` command has been removed. This command was [deprecated]({% link releases/v23.2.md %}#v23-2-0-deprecations) in CockroachDB v23.2. [#113893][#113893]

Known limitations

diff --git a/src/current/v24.1/licensing-faqs.md b/src/current/v24.1/licensing-faqs.md index 1b9bd2a5abd..ae21c3cc79c 100644 --- a/src/current/v24.1/licensing-faqs.md +++ b/src/current/v24.1/licensing-faqs.md @@ -36,6 +36,8 @@ For each BSL release all associated alpha, beta, major, and minor (point) releas CockroachDB version | License | Converts to Apache 2.0 --------------------|---------|---------------------------- +24.1 | Business Source License | May 20, 2027 +23.1 | Business Source License | Feb 5, 2027 23.1 | Business Source License | May 16, 2026 22.2 | Business Source License | Dec 6, 2025 22.1 | Business Source License | May 24, 2025 From c676cbc6e8995ce963e4a49af2803e2957e6541b Mon Sep 17 00:00:00 2001 From: Shannon Bradshaw Date: Mon, 20 May 2024 12:13:28 -0400 Subject: [PATCH 07/30] Update pci-dss.md fixes a typo --- src/current/cockroachcloud/pci-dss.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/current/cockroachcloud/pci-dss.md b/src/current/cockroachcloud/pci-dss.md index 196eff726fe..831914b6350 100644 --- a/src/current/cockroachcloud/pci-dss.md +++ b/src/current/cockroachcloud/pci-dss.md @@ -86,7 +86,7 @@ When a system complies with PCI DSS, the system meets the goals of the standard -CockroachDB {{ site.data.products.dedicated }} advanced is certified by a PCI QSA to be compliant with [PCI DSS 3.2.1](https://listings.pcisecuritystandards.org/documents/SAQ_D_v3_Merchant.pdf) within the DBaaS platform. Customers are still responsible to ensure that their applications are PCI DSS compliant. Customers may need to take the additional outlines outlined in [Responsibilities of the customer](#responsibilities-of-the-customer) to maintain their own PCI compliance when using CockroachDB {{ site.data.products.dedicated }} clusters for cardholder data or other sensitive data. +CockroachDB {{ site.data.products.dedicated }} advanced is certified by a PCI QSA to be compliant with [PCI DSS 3.2.1](https://listings.pcisecuritystandards.org/documents/SAQ_D_v3_Merchant.pdf) within the DBaaS platform. Customers are still responsible to ensure that their applications are PCI DSS compliant. Customers may need to take the additional actions outlined in [Responsibilities of the customer](#responsibilities-of-the-customer) to maintain their own PCI compliance when using CockroachDB {{ site.data.products.dedicated }} clusters for cardholder data or other sensitive data. ## Responsibilities of Cockroach Labs From d5d9782ba8b70c338fb2e6b1ef712680f4d16761 Mon Sep 17 00:00:00 2001 From: Kathryn May <44557882+kathancox@users.noreply.github.com> Date: Mon, 20 May 2024 12:28:01 -0400 Subject: [PATCH 08/30] Update docs with breaking change on Pub/Sub v2 sink message format (#18558) --- .../releases/v23.1/v23.1.0-beta.2.md | 2 +- .../releases/v23.2/v23.2.0-alpha.1.md | 1 + .../v23.1/cdc/pubsub-performance-setting.md | 2 +- .../images/v23.1/changefeed-pubsub-output.png | Bin 138928 -> 0 bytes .../images/v23.2/changefeed-pubsub-output.png | Bin 138928 -> 0 bytes .../images/v24.1/changefeed-pubsub-output.png | Bin 138928 -> 0 bytes src/current/v23.1/changefeed-examples.md | 65 ++++++++++-------- src/current/v23.1/changefeed-sinks.md | 35 +++++++++- src/current/v23.2/changefeed-examples.md | 49 +++++++------ src/current/v23.2/changefeed-sinks.md | 49 +++++++++---- src/current/v23.2/create-changefeed.md | 2 + src/current/v24.1/changefeed-examples.md | 49 +++++++------ src/current/v24.1/changefeed-sinks.md | 49 +++++++++---- src/current/v24.1/create-changefeed.md | 2 + 14 files changed, 191 insertions(+), 114 deletions(-) delete mode 100644 src/current/images/v23.1/changefeed-pubsub-output.png delete mode 100644 src/current/images/v23.2/changefeed-pubsub-output.png delete mode 100644 src/current/images/v24.1/changefeed-pubsub-output.png diff --git a/src/current/_includes/releases/v23.1/v23.1.0-beta.2.md b/src/current/_includes/releases/v23.1/v23.1.0-beta.2.md index 0e47c964ad1..7906b9dcf5b 100644 --- a/src/current/_includes/releases/v23.1/v23.1.0-beta.2.md +++ b/src/current/_includes/releases/v23.1/v23.1.0-beta.2.md @@ -30,7 +30,7 @@ Release Date: April 17, 2023

Performance improvements

-- Pubsub sink [changefeeds](https://www.cockroachlabs.com/docs/v23.1/create-changefeed) can now support higher throughputs by enabling the `changefeed.new_pubsub_sink_enabled` [cluster setting](https://www.cockroachlabs.com/docs/v23.1/cluster-settings). [#100930][#100930] +- Google Cloud Pub/Sub sink [changefeeds](https://www.cockroachlabs.com/docs/v23.1/create-changefeed) can now support higher throughputs by enabling the `changefeed.new_pubsub_sink_enabled` [cluster setting](https://www.cockroachlabs.com/docs/v23.1/cluster-settings). Enabling this setting will cause changefeeds to use a newer Pub/Sub sink, which uses capitalized top-level fields in the message: `{Key: ..., Value: ..., Topic: ...}`. As a result, you may need to reconfigure downstream systems to parse the new message format. If you do not enable `changefeed.new_pubsub_sink_enabled`, the top-level message fields remain all lowercase: `{key: ..., value: ..., topic: ...}`. [#100930][#100930]
diff --git a/src/current/_includes/releases/v23.2/v23.2.0-alpha.1.md b/src/current/_includes/releases/v23.2/v23.2.0-alpha.1.md index ee50d8cf863..63ba4aaf471 100644 --- a/src/current/_includes/releases/v23.2/v23.2.0-alpha.1.md +++ b/src/current/_includes/releases/v23.2/v23.2.0-alpha.1.md @@ -11,6 +11,7 @@ Release Date: September 26, 2023 - When customizing the [SQL shell's interactive prompt]({% link v23.2/cockroach-sql.md %}), the special sequence `%M` now expands to the full host name instead of the combination of host name and port number. To include the port number explicitly, use `%>`. The special sequence `%m` now expands to the host name up to the first period. [#105137][#105137] - The [`cockroach debug zip`]({% link v23.2/cockroach-debug-zip.md %}) command stores data retrieved from SQL tables in the remote cluster using the TSV format by default. [#107474][#107474] - The [`changefeed.protect_timestamp.max_age` cluster setting]({% link v23.2/protect-changefeed-data.md %}) will only apply to newly created changefeeds in v23.2. For existing changefeeds, you can set the [`protect_data_from_gc_on_pause`]({% link v23.2/create-changefeed.md %}#protect-pause) option so that changefeeds do not experience infinite retries and accumulate protected change data. You can use the [`ALTER CHANGEFEED`]({% link v23.2/alter-changefeed.md %}) statement to add `protect_data_from_gc_on_pause` to existing changefeeds. [#103539][#103539] +- The `changefeed.new_pubsub_sink_enabled` cluster setting is now enabled by default, which improves changefeed throughput. With this setting enabled, the top-level fields in JSON-encoded messages are capitalized: `{Key: ..., Value: ..., Topic: ...}`. After upgrading to CockroachDB v23.2, you may need to reconfigure downstream systems to parse the new message format. If you disable this setting, changefeeds emitting to Pub/Sub sinks with JSON-encoded events have the top-level message fields all lowercase: `{key: ..., value: ..., topic: ...}`.

Security updates

diff --git a/src/current/_includes/v23.1/cdc/pubsub-performance-setting.md b/src/current/_includes/v23.1/cdc/pubsub-performance-setting.md index f6b55402846..86ebed03a76 100644 --- a/src/current/_includes/v23.1/cdc/pubsub-performance-setting.md +++ b/src/current/_includes/v23.1/cdc/pubsub-performance-setting.md @@ -1,3 +1,3 @@ {{site.data.alerts.callout_info}} -{% include_cached new-in.html version="v23.1" %} Enable the `changefeed.new_pubsub_sink_enabled` [cluster setting]({% link {{ page.version.version }}/cluster-settings.md %}) to improve the throughput of changefeeds emitting to {% if page.name == "changefeed-sinks.md" %} Pub/Sub sinks. {% else %} [Pub/Sub sinks]({% link {{ page.version.version }}/changefeed-sinks.md %}#google-cloud-pub-sub). {% endif %} +{% include_cached new-in.html version="v23.1" %} Enable the `changefeed.new_pubsub_sink_enabled` [cluster setting]({% link {{ page.version.version }}/cluster-settings.md %}) to improve the throughput of changefeeds emitting to [Pub/Sub sinks]({% link {{ page.version.version }}/changefeed-sinks.md %}#google-cloud-pub-sub). Enabling this setting also alters the message format to use capitalized top-level fields in changefeeds emitting JSON-encoded messages to a Pub/Sub sink. For more details, refer to the [Pub/Sub sink messages]({% link {{ page.version.version }}/changefeed-sinks.md %}#pub-sub-sink-messages) section. {{site.data.alerts.end}} \ No newline at end of file diff --git a/src/current/images/v23.1/changefeed-pubsub-output.png b/src/current/images/v23.1/changefeed-pubsub-output.png deleted file mode 100644 index b18f4f712d32a68ea5fea73836f7375a28c45e78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138928 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 U)_~;0I0KdiLy%A-3dRhMG#JqJo0x*wVB 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 C1u>%l diff --git a/src/current/images/v23.2/changefeed-pubsub-output.png b/src/current/images/v23.2/changefeed-pubsub-output.png deleted file mode 100644 index b18f4f712d32a68ea5fea73836f7375a28c45e78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138928 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 U)_~;0I0KdiLy%A-3dRhMG#JqJo0x*wVB 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 C1u>%l diff --git a/src/current/images/v24.1/changefeed-pubsub-output.png b/src/current/images/v24.1/changefeed-pubsub-output.png deleted file mode 100644 index b18f4f712d32a68ea5fea73836f7375a28c45e78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138928 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 U)_~;0I0KdiLy%A-3dRhMG#JqJo0x*wVB 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 C1u>%l diff --git a/src/current/v23.1/changefeed-examples.md b/src/current/v23.1/changefeed-examples.md index 8bcf3f89f7e..aa0e00e728a 100644 --- a/src/current/v23.1/changefeed-examples.md +++ b/src/current/v23.1/changefeed-examples.md @@ -451,35 +451,42 @@ You'll need access to a [Google Cloud Project](https://cloud.google.com/resource NOTICE: changefeed will emit to topic movr-users ~~~ - To view all the messages delivered to your topic, you can use the Cloud Console. You'll see the messages emitted to the `movr-users-sub` subscription. - - Google Cloud Console changefeed message output from movr database - - To view published messages from your terminal, run the following command: - - {% include_cached copy-clipboard.html %} - ~~~ shell - gcloud pubsub subscriptions pull movr-users-sub --auto-ack --limit=10 - ~~~ - - This command will **only** pull these messages once per subscription. For example, if you ran this command again you would receive 10 different messages in your output. To receive more than one message at a time, pass the `--limit` flag. For more details, see the [gcloud pubsub subscriptions pull](https://cloud.google.com/sdk/gcloud/reference/pubsub/subscriptions/pull) documentation. - - ~~~ - ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────────────┬─────────────────────────────────────────────────────────┬────────────┬──────────────────┐ - │ DATA │ MESSAGE_ID │ ORDERING_KEY │ ATTRIBUTES │ DELIVERY_ATTEMPT │ - ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────┼─────────────────────────────────────────────────────────┼────────────┼──────────────────┤ - │ {"key":["boston","40ef7cfa-5e16-4bd3-9e14-2f23407a66df"],"value":{"after":{"address":"14980 Gentry Plains Apt. 64","city":"boston","credit_card":"2466765790","id":"40ef7cfa-5e16-4bd3-9e14-2f23407a66df","name":"Vickie Fitzpatrick"}},"topic":"movr-users"} │ 4466153049158588 │ ["boston", "40ef7cfa-5e16-4bd3-9e14-2f23407a66df"] │ │ │ - │ {"key":["los angeles","947ae147-ae14-4800-8000-00000000001d"],"value":{"after":{"address":"35627 Chelsey Tunnel Suite 94","city":"los angeles","credit_card":"2099932769","id":"947ae147-ae14-4800-8000-00000000001d","name":"Kenneth Barnes"}},"topic":"movr-users"} │ 4466144577818136 │ ["los angeles", "947ae147-ae14-4800-8000-00000000001d"] │ │ │ - │ {"key":["amsterdam","c28f5c28-f5c2-4000-8000-000000000026"],"value":{"after":{"address":"14729 Karen Radial","city":"amsterdam","credit_card":"5844236997","id":"c28f5c28-f5c2-4000-8000-000000000026","name":"Maria Weber"}},"topic":"movr-users"} │ 4466151194002912 │ ["amsterdam", "c28f5c28-f5c2-4000-8000-000000000026"] │ │ │ - │ {"key":["new york","6c8ab772-584a-439d-b7b4-fda37767c74c"],"value":{"after":{"address":"34196 Roger Row Suite 6","city":"new york","credit_card":"3117945420","id":"6c8ab772-584a-439d-b7b4-fda37767c74c","name":"James Lang"}},"topic":"movr-users"} │ 4466147099992681 │ ["new york", "6c8ab772-584a-439d-b7b4-fda37767c74c"] │ │ │ - │ {"key":["boston","c56dab0a-63e7-4fbb-a9af-54362c481c41"],"value":{"after":{"address":"83781 Ross Overpass","city":"boston","credit_card":"7044597874","id":"c56dab0a-63e7-4fbb-a9af-54362c481c41","name":"Mark Butler"}},"topic":"movr-users"} │ 4466150752442731 │ ["boston", "c56dab0a-63e7-4fbb-a9af-54362c481c41"] │ │ │ - │ {"key":["amsterdam","f27e09d5-d7cd-4f88-8b65-abb910036f45"],"value":{"after":{"address":"77153 Donald Road Apt. 62","city":"amsterdam","credit_card":"7531160744","id":"f27e09d5-d7cd-4f88-8b65-abb910036f45","name":"Lisa Sandoval"}},"topic":"movr-users"} │ 4466147182359256 │ ["amsterdam", "f27e09d5-d7cd-4f88-8b65-abb910036f45"] │ │ │ - │ {"key":["new york","46d200c0-6924-4cc7-b3c9-3398997acb84"],"value":{"after":{"address":"92843 Carlos Grove","city":"new york","credit_card":"8822366402","id":"46d200c0-6924-4cc7-b3c9-3398997acb84","name":"Mackenzie Malone"}},"topic":"movr-users"} │ 4466142864542016 │ ["new york", "46d200c0-6924-4cc7-b3c9-3398997acb84"] │ │ │ - │ {"key":["boston","52ecbb26-0eab-4e0b-a160-90caa6a7d350"],"value":{"after":{"address":"95044 Eric Corner Suite 33","city":"boston","credit_card":"3982363300","id":"52ecbb26-0eab-4e0b-a160-90caa6a7d350","name":"Brett Porter"}},"topic":"movr-users"} │ 4466152539161631 │ ["boston", "52ecbb26-0eab-4e0b-a160-90caa6a7d350"] │ │ │ - │ {"key":["amsterdam","ae147ae1-47ae-4800-8000-000000000022"],"value":{"after":{"address":"88194 Angela Gardens Suite 94","city":"amsterdam","credit_card":"4443538758","id":"ae147ae1-47ae-4800-8000-000000000022","name":"Tyler Dalton"}},"topic":"movr-users"} │ 4466151398997150 │ ["amsterdam", "ae147ae1-47ae-4800-8000-000000000022"] │ │ │ - │ {"key":["paris","dc28f5c2-8f5c-4800-8000-00000000002b"],"value":{"after":{"address":"2058 Rodriguez Stream","city":"paris","credit_card":"9584502537","id":"dc28f5c2-8f5c-4800-8000-00000000002b","name":"Tony Ortiz"}},"topic":"movr-users"} │ 4466146372222914 │ ["paris", "dc28f5c2-8f5c-4800-8000-00000000002b"] │ │ │ - └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────┴─────────────────────────────────────────────────────────┴────────────┴──────────────────┘ - ~~~ + To view all the messages delivered to your topic, you can use: + - The Google Cloud Console. From the Pub/Sub menu, select **Subscriptions** in the left-hand navigation and then select the subscription ID from your list of subscriptions. On the subscription's overview, click **Messages**, and then **Pull** to view messages. + - The `gcloud` CLI. From your terminal, run the following command: + + {% include_cached copy-clipboard.html %} + ~~~ shell + gcloud pubsub subscriptions pull movr-users-sub --auto-ack --limit=10 + ~~~ + + This command will **only** pull these messages once per subscription. For example, if you ran this command again you would receive 10 different messages in your output. To receive more than one message at a time, pass the `--limit` flag. For more details, refer to the [gcloud pubsub subscriptions pull](https://cloud.google.com/sdk/gcloud/reference/pubsub/subscriptions/pull) documentation. + + If you have enabled the `changefeed.new_pubsub_sink_enabled` cluster setting, the output will contain capitalized top-level fields: + + ~~~ + ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────┬──────────────┬────────────┬──────────────────┬────────────┐ + │ DATA │ MESSAGE_ID │ ORDERING_KEY │ ATTRIBUTES │ DELIVERY_ATTEMPT │ ACK_STATUS │ + ├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────┼──────────────┼────────────┼──────────────────┼────────────┤ + │ {"Key":["amsterdam", "09ee2856-5856-40c4-85d3-7d65bed978f0"],"Value":{"after": {"address": "84579 Peter Divide Apt. 47", "city": "amsterdam", "credit_card": "0100007510", "id": "09ee2856-5856-40c4-85d3-7d65bed978f0", "name": "Timothy Jackson"}},"Topic":"movr-users"} │ 11249015757941393 │ │ │ │ SUCCESS │ + │ {"Key":["new york", "8803ab9e-5001-4994-a2e6-68d587f95f1d"],"Value":{"after": {"address": "37546 Andrew Roads Apt. 68", "city": "new york", "credit_card": "4731676650", "id": "8803ab9e-5001-4994-a2e6-68d587f95f1d", "name": "Susan Harrington"}},"Topic":"movr-users"} │ 11249015757941394 │ │ │ │ SUCCESS │ + │ {"Key":["seattle", "32e27201-ca0d-4a0c-ada2-fbf47f6a4711"],"Value":{"after": {"address": "86725 Stephen Gardens", "city": "seattle", "credit_card": "3639690115", "id": "32e27201-ca0d-4a0c-ada2-fbf47f6a4711", "name": "Brad Hill"}},"Topic":"movr-users"} │ 11249015757941395 │ │ │ │ SUCCESS │ + ... + ~~~ + + If you have **not** enabled `changefeed.new_pubsub_sink_enabled`, the output will contain lowercase top-level fields: + + ~~~ + ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────────────┬─────────────────────────────────────────────────────────┬────────────┬──────────────────┐ + │ DATA │ MESSAGE_ID │ ORDERING_KEY │ ATTRIBUTES │ DELIVERY_ATTEMPT │ + ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────┼─────────────────────────────────────────────────────────┼────────────┼──────────────────┤ + │ {"key":["boston","40ef7cfa-5e16-4bd3-9e14-2f23407a66df"],"value":{"after":{"address":"14980 Gentry Plains Apt. 64","city":"boston","credit_card":"2466765790","id":"40ef7cfa-5e16-4bd3-9e14-2f23407a66df","name":"Vickie Fitzpatrick"}},"topic":"movr-users"} │ 4466153049158588 │ ["boston", "40ef7cfa-5e16-4bd3-9e14-2f23407a66df"] │ │ │ + │ {"key":["los angeles","947ae147-ae14-4800-8000-00000000001d"],"value":{"after":{"address":"35627 Chelsey Tunnel Suite 94","city":"los angeles","credit_card":"2099932769","id":"947ae147-ae14-4800-8000-00000000001d","name":"Kenneth Barnes"}},"topic":"movr-users"} │ 4466144577818136 │ ["los angeles", "947ae147-ae14-4800-8000-00000000001d"] │ │ │ + │ {"key":["amsterdam","c28f5c28-f5c2-4000-8000-000000000026"],"value":{"after":{"address":"14729 Karen Radial","city":"amsterdam","credit_card":"5844236997","id":"c28f5c28-f5c2-4000-8000-000000000026","name":"Maria Weber"}},"topic":"movr-users"} │ 4466151194002912 │ ["amsterdam", "c28f5c28-f5c2-4000-8000-000000000026"] │ │ │ + ... + ~~~ + + For more detail on the `changefeed.new_pubsub_sink_enabled` cluster setting, refer to [Pub/Sub sink messages]({% link {{ page.version.version }}/changefeed-sinks.md %}#pub-sub-sink-messages). ## Create a changefeed connected to a cloud storage sink diff --git a/src/current/v23.1/changefeed-sinks.md b/src/current/v23.1/changefeed-sinks.md index a7fc405b4c6..5f3e17f5ed1 100644 --- a/src/current/v23.1/changefeed-sinks.md +++ b/src/current/v23.1/changefeed-sinks.md @@ -198,10 +198,17 @@ See the [Changefeed Examples]({% link {{ page.version.version }}/changefeed-exam {% include feature-phases/preview.md %} {{site.data.alerts.end}} -{% include {{ page.version.version }}/cdc/pubsub-performance-setting.md %} - Changefeeds can deliver messages to a Google Cloud Pub/Sub sink, which is integrated with Google Cloud Platform. +{% include_cached new-in.html version="v23.1" %} Enable the `changefeed.new_pubsub_sink_enabled` [cluster setting]({% link {{ page.version.version }}/cluster-settings.md %}) to improve the throughput of changefeeds emitting to Pub/Sub sinks. Enabling this setting also alters the message format to use capitalized top-level fields in changefeeds emitting JSON-encoded messages. Therefore, you may need to reconfigure downstream systems to parse the new message format before enabling this setting: + +{% include_cached copy-clipboard.html %} +~~~ sql +SET CLUSTER SETTING changefeed.new_pubsub_sink_enabled = true; +~~~ + +For more details, refer to the [Pub/Sub sink messages](#pub-sub-sink-messages) section. + A Pub/Sub sink URI follows this example: ~~~ @@ -276,7 +283,29 @@ pubsub_sink_config = '{ "Flush": {"Messages": 100, "Frequency": "5s"}, "Retry": ### Pub/Sub sink messages -The following shows the default JSON messages for a changefeed emitting to Pub/Sub. These changefeed messages were emitted as part of the [Create a changefeed connected to a Google Cloud Pub/Sub sink]({% link {{ page.version.version }}/changefeed-examples.md %}#create-a-changefeed-connected-to-a-google-cloud-pub-sub-sink) example: +{{site.data.alerts.callout_info}} +In CockroachDB v23.2 and later, changefeeds will have `changefeed.new_pubsub_sink_enabled` enabled by default. +{{site.data.alerts.end}} + +When the `changefeed.new_pubsub_sink_enabled` cluster setting is enabled, changefeeds will have improved throughput and the changefeed JSON-encoded message format has top-level fields that are capitalized: + +~~~ +{Key: ..., Value: ..., Topic: ...} +~~~ + +{{site.data.alerts.callout_danger}} +Before enabling `changefeed.new_pubsub_sink_enabled`, you may need to reconfigure downstream systems to parse the new message format. +{{site.data.alerts.end}} + +With `changefeed.new_pubsub_sink_enabled` set to `false`, changefeeds emit JSON messages with the top-level fields all lowercase: + +~~~ +{key: ..., value: ..., topic: ...} +~~~ + +If `changefeed.new_pubsub_sink_enabled` is set to `false`, changefeeds will not benefit from the improved throughput performance that this setting enables. + +The following shows the default JSON messages for a changefeed created with `changefeed.new_pubsub_sink_enabled` set to `false`. These changefeed messages were emitted as part of the [Create a changefeed connected to a Google Cloud Pub/Sub sink]({% link {{ page.version.version }}/changefeed-examples.md %}#create-a-changefeed-connected-to-a-google-cloud-pub-sub-sink) example: ~~~ ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────────────┬─────────────────────────────────────────────────────────┬────────────┬──────────────────┐ diff --git a/src/current/v23.2/changefeed-examples.md b/src/current/v23.2/changefeed-examples.md index 5030499f4e0..2c1717bcd6e 100644 --- a/src/current/v23.2/changefeed-examples.md +++ b/src/current/v23.2/changefeed-examples.md @@ -462,35 +462,32 @@ You'll need access to a [Google Cloud Project](https://cloud.google.com/resource NOTICE: changefeed will emit to topic movr-users ~~~ - To view all the messages delivered to your topic, you can use the Cloud Console. You'll see the messages emitted to the `movr-users-sub` subscription. + To view all the messages delivered to your topic, you can use: + - The Google Cloud Console. From the Pub/Sub menu, select **Subscriptions** in the left-hand navigation and then select the subscription ID from your list of subscriptions. On the subscription's overview, click **Messages**, and then **Pull** to view messages. + - The `gcloud` CLI. From your terminal, run the following command: - Google Cloud Console changefeed message output from movr database - - To view published messages from your terminal, run the following command: - - {% include_cached copy-clipboard.html %} - ~~~ shell - gcloud pubsub subscriptions pull movr-users-sub --auto-ack --limit=10 - ~~~ + {% include_cached copy-clipboard.html %} + ~~~ shell + gcloud pubsub subscriptions pull movr-users-sub --auto-ack --limit=10 + ~~~ - This command will **only** pull these messages once per subscription. For example, if you ran this command again you would receive 10 different messages in your output. To receive more than one message at a time, pass the `--limit` flag. For more details, see the [gcloud pubsub subscriptions pull](https://cloud.google.com/sdk/gcloud/reference/pubsub/subscriptions/pull) documentation. + This command will **only** pull these messages once per subscription. For example, if you ran this command again you would receive 10 different messages in your output. To receive more than one message at a time, pass the `--limit` flag. For more details, refer to the [gcloud pubsub subscriptions pull](https://cloud.google.com/sdk/gcloud/reference/pubsub/subscriptions/pull) documentation. - ~~~ - ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────────────┬─────────────────────────────────────────────────────────┬────────────┬──────────────────┐ - │ DATA │ MESSAGE_ID │ ORDERING_KEY │ ATTRIBUTES │ DELIVERY_ATTEMPT │ - ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────┼─────────────────────────────────────────────────────────┼────────────┼──────────────────┤ - │ {"key":["boston","40ef7cfa-5e16-4bd3-9e14-2f23407a66df"],"value":{"after":{"address":"14980 Gentry Plains Apt. 64","city":"boston","credit_card":"2466765790","id":"40ef7cfa-5e16-4bd3-9e14-2f23407a66df","name":"Vickie Fitzpatrick"}},"topic":"movr-users"} │ 4466153049158588 │ ["boston", "40ef7cfa-5e16-4bd3-9e14-2f23407a66df"] │ │ │ - │ {"key":["los angeles","947ae147-ae14-4800-8000-00000000001d"],"value":{"after":{"address":"35627 Chelsey Tunnel Suite 94","city":"los angeles","credit_card":"2099932769","id":"947ae147-ae14-4800-8000-00000000001d","name":"Kenneth Barnes"}},"topic":"movr-users"} │ 4466144577818136 │ ["los angeles", "947ae147-ae14-4800-8000-00000000001d"] │ │ │ - │ {"key":["amsterdam","c28f5c28-f5c2-4000-8000-000000000026"],"value":{"after":{"address":"14729 Karen Radial","city":"amsterdam","credit_card":"5844236997","id":"c28f5c28-f5c2-4000-8000-000000000026","name":"Maria Weber"}},"topic":"movr-users"} │ 4466151194002912 │ ["amsterdam", "c28f5c28-f5c2-4000-8000-000000000026"] │ │ │ - │ {"key":["new york","6c8ab772-584a-439d-b7b4-fda37767c74c"],"value":{"after":{"address":"34196 Roger Row Suite 6","city":"new york","credit_card":"3117945420","id":"6c8ab772-584a-439d-b7b4-fda37767c74c","name":"James Lang"}},"topic":"movr-users"} │ 4466147099992681 │ ["new york", "6c8ab772-584a-439d-b7b4-fda37767c74c"] │ │ │ - │ {"key":["boston","c56dab0a-63e7-4fbb-a9af-54362c481c41"],"value":{"after":{"address":"83781 Ross Overpass","city":"boston","credit_card":"7044597874","id":"c56dab0a-63e7-4fbb-a9af-54362c481c41","name":"Mark Butler"}},"topic":"movr-users"} │ 4466150752442731 │ ["boston", "c56dab0a-63e7-4fbb-a9af-54362c481c41"] │ │ │ - │ {"key":["amsterdam","f27e09d5-d7cd-4f88-8b65-abb910036f45"],"value":{"after":{"address":"77153 Donald Road Apt. 62","city":"amsterdam","credit_card":"7531160744","id":"f27e09d5-d7cd-4f88-8b65-abb910036f45","name":"Lisa Sandoval"}},"topic":"movr-users"} │ 4466147182359256 │ ["amsterdam", "f27e09d5-d7cd-4f88-8b65-abb910036f45"] │ │ │ - │ {"key":["new york","46d200c0-6924-4cc7-b3c9-3398997acb84"],"value":{"after":{"address":"92843 Carlos Grove","city":"new york","credit_card":"8822366402","id":"46d200c0-6924-4cc7-b3c9-3398997acb84","name":"Mackenzie Malone"}},"topic":"movr-users"} │ 4466142864542016 │ ["new york", "46d200c0-6924-4cc7-b3c9-3398997acb84"] │ │ │ - │ {"key":["boston","52ecbb26-0eab-4e0b-a160-90caa6a7d350"],"value":{"after":{"address":"95044 Eric Corner Suite 33","city":"boston","credit_card":"3982363300","id":"52ecbb26-0eab-4e0b-a160-90caa6a7d350","name":"Brett Porter"}},"topic":"movr-users"} │ 4466152539161631 │ ["boston", "52ecbb26-0eab-4e0b-a160-90caa6a7d350"] │ │ │ - │ {"key":["amsterdam","ae147ae1-47ae-4800-8000-000000000022"],"value":{"after":{"address":"88194 Angela Gardens Suite 94","city":"amsterdam","credit_card":"4443538758","id":"ae147ae1-47ae-4800-8000-000000000022","name":"Tyler Dalton"}},"topic":"movr-users"} │ 4466151398997150 │ ["amsterdam", "ae147ae1-47ae-4800-8000-000000000022"] │ │ │ - │ {"key":["paris","dc28f5c2-8f5c-4800-8000-00000000002b"],"value":{"after":{"address":"2058 Rodriguez Stream","city":"paris","credit_card":"9584502537","id":"dc28f5c2-8f5c-4800-8000-00000000002b","name":"Tony Ortiz"}},"topic":"movr-users"} │ 4466146372222914 │ ["paris", "dc28f5c2-8f5c-4800-8000-00000000002b"] │ │ │ - └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────┴─────────────────────────────────────────────────────────┴────────────┴──────────────────┘ - ~~~ + ~~~ + ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────┬──────────────┬────────────┬──────────────────┬────────────┐ + │ DATA │ MESSAGE_ID │ ORDERING_KEY │ ATTRIBUTES │ DELIVERY_ATTEMPT │ ACK_STATUS │ + ├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────┼──────────────┼────────────┼──────────────────┼────────────┤ + │ {"Key":["amsterdam", "09ee2856-5856-40c4-85d3-7d65bed978f0"],"Value":{"after": {"address": "84579 Peter Divide Apt. 47", "city": "amsterdam", "credit_card": "0100007510", "id": "09ee2856-5856-40c4-85d3-7d65bed978f0", "name": "Timothy Jackson"}},"Topic":"movr-users"} │ 11249015757941393 │ │ │ │ SUCCESS │ + │ {"Key":["new york", "8803ab9e-5001-4994-a2e6-68d587f95f1d"],"Value":{"after": {"address": "37546 Andrew Roads Apt. 68", "city": "new york", "credit_card": "4731676650", "id": "8803ab9e-5001-4994-a2e6-68d587f95f1d", "name": "Susan Harrington"}},"Topic":"movr-users"} │ 11249015757941394 │ │ │ │ SUCCESS │ + │ {"Key":["seattle", "32e27201-ca0d-4a0c-ada2-fbf47f6a4711"],"Value":{"after": {"address": "86725 Stephen Gardens", "city": "seattle", "credit_card": "3639690115", "id": "32e27201-ca0d-4a0c-ada2-fbf47f6a4711", "name": "Brad Hill"}},"Topic":"movr-users"} │ 11249015757941395 │ │ │ │ SUCCESS │ + │ {"Key":["san francisco", "27b03637-ef9f-49a0-9b58-b16d7a9e34f4"],"Value":{"after": {"address": "85467 Tiffany Field", "city": "san francisco", "credit_card": "0016125921", "id": "27b03637-ef9f-49a0-9b58-b16d7a9e34f4", "name": "Mark Garcia"}},"Topic":"movr-users"} │ 11249015757941396 │ │ │ │ SUCCESS │ + │ {"Key":["rome", "982e1863-88d4-49cb-adee-0a35baae7e0b"],"Value":{"after": {"address": "54918 Sutton Isle Suite 74", "city": "rome", "credit_card": "6015706174", "id": "982e1863-88d4-49cb-adee-0a35baae7e0b", "name": "Kimberly Nichols"}},"Topic":"movr-users"} │ 11249015757941397 │ │ │ │ SUCCESS │ + │ {"Key":["washington dc", "7b298994-7b12-414c-90ef-353c7105f012"],"Value":{"after": {"address": "45205 Romero Ford Apt. 86", "city": "washington dc", "credit_card": "3519400314", "id": "7b298994-7b12-414c-90ef-353c7105f012", "name": "Taylor Bullock"}},"Topic":"movr-users"} │ 11249015757941398 │ │ │ │ SUCCESS │ + │ {"Key":["boston", "4f012f57-577b-4853-b5ab-0d79d0df1369"],"Value":{"after": {"address": "15765 Vang Ramp", "city": "boston", "credit_card": "6747715133", "id": "4f012f57-577b-4853-b5ab-0d79d0df1369", "name": "Ryan Garcia"}},"Topic":"movr-users"} │ 11249015757941399 │ │ │ │ SUCCESS │ + │ {"Key":["seattle", "9ba85917-5545-4674-8ab2-497fa47ac00f"],"Value":{"after": {"address": "24354 Whitney Lodge", "city": "seattle", "credit_card": "8642661685", "id": "9ba85917-5545-4674-8ab2-497fa47ac00f", "name": "Donald Walsh"}},"Topic":"movr-users"} │ 11249015757941400 │ │ │ │ SUCCESS │ + │ {"Key":["seattle", "98312fb3-230e-412d-9b22-074ec97329ff"],"Value":{"after": {"address": "72777 Carol Shoal", "city": "seattle", "credit_card": "7789799678", "id": "98312fb3-230e-412d-9b22-074ec97329ff", "name": "Christopher Davis"}},"Topic":"movr-users"} │ 11249015757941401 │ │ │ │ SUCCESS │ + └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────────┴──────────────┴────────────┴──────────────────┴────────────┘ + ~~~ ## Create a changefeed connected to a cloud storage sink diff --git a/src/current/v23.2/changefeed-sinks.md b/src/current/v23.2/changefeed-sinks.md index 1fa087b77ec..f8cf997c883 100644 --- a/src/current/v23.2/changefeed-sinks.md +++ b/src/current/v23.2/changefeed-sinks.md @@ -230,6 +230,10 @@ The following parameters are also needed, but are **set by default** in Cockroac Changefeeds can deliver messages to a Google Cloud Pub/Sub sink, which is integrated with Google Cloud Platform. +{{site.data.alerts.callout_info}} +{% include_cached new-in.html version="v23.2" %} The `changefeed.new_pubsub_sink_enabled` cluster setting is enabled by default, which provides improved throughput. Without this cluster setting enabled, changefeeds emit JSON-encoded events with the top-level message fields all lowercase. With `changefeed.new_pubsub_sink_enabled`, the top-level fields are capitalized. For more details, refer to the [Pub/Sub sink messages](#pub-sub-sink-messages) section. +{{site.data.alerts.end}} + A Pub/Sub sink URI follows this example: ~~~ @@ -304,23 +308,40 @@ pubsub_sink_config = '{ "Flush": {"Messages": 100, "Frequency": "5s"}, "Retry": ### Pub/Sub sink messages +{% include_cached new-in.html version="v23.2" %} The `changefeed.new_pubsub_sink_enabled` cluster setting is enabled by default, which provides improved changefeed throughput peformance. With `changefeed.new_pubsub_sink_enabled` enabled, the changefeed JSON-encoded message format have top-level fields that are capitalized: + +~~~ +{Key: ..., Value: ..., Topic: ...} +~~~ + +{{site.data.alerts.callout_danger}} +By default in v23.2, the capitalization of top-level fields in the message has changed. Before upgrading to CockroachDB v23.2 and later, you may need to reconfigure downstream systems to parse the new message format. +{{site.data.alerts.end}} + +With `changefeed.new_pubsub_sink_enabled` set to `false`, changefeeds emit JSON messages with the top-level fields all lowercase: + +~~~ +{key: ..., value: ..., topic: ...} +~~~ + +If `changefeed.new_pubsub_sink_enabled` is set to `false`, changefeeds will not benefit from the improved throughput performance that this setting enables. + The following shows the default JSON messages for a changefeed emitting to Pub/Sub. These changefeed messages were emitted as part of the [Create a changefeed connected to a Google Cloud Pub/Sub sink]({% link {{ page.version.version }}/changefeed-examples.md %}#create-a-changefeed-connected-to-a-google-cloud-pub-sub-sink) example: ~~~ -┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────────────┬─────────────────────────────────────────────────────────┬────────────┬──────────────────┐ -│ DATA │ MESSAGE_ID │ ORDERING_KEY │ ATTRIBUTES │ DELIVERY_ATTEMPT │ -├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────┼─────────────────────────────────────────────────────────┼────────────┼──────────────────┤ -│ {"key":["boston","40ef7cfa-5e16-4bd3-9e14-2f23407a66df"],"value":{"after":{"address":"14980 Gentry Plains Apt. 64","city":"boston","credit_card":"2466765790","id":"40ef7cfa-5e16-4bd3-9e14-2f23407a66df","name":"Vickie Fitzpatrick"}},"topic":"movr-users"} │ 4466153049158588 │ ["boston", "40ef7cfa-5e16-4bd3-9e14-2f23407a66df"] │ │ │ -│ {"key":["los angeles","947ae147-ae14-4800-8000-00000000001d"],"value":{"after":{"address":"35627 Chelsey Tunnel Suite 94","city":"los angeles","credit_card":"2099932769","id":"947ae147-ae14-4800-8000-00000000001d","name":"Kenneth Barnes"}},"topic":"movr-users"} │ 4466144577818136 │ ["los angeles", "947ae147-ae14-4800-8000-00000000001d"] │ │ │ -│ {"key":["amsterdam","c28f5c28-f5c2-4000-8000-000000000026"],"value":{"after":{"address":"14729 Karen Radial","city":"amsterdam","credit_card":"5844236997","id":"c28f5c28-f5c2-4000-8000-000000000026","name":"Maria Weber"}},"topic":"movr-users"} │ 4466151194002912 │ ["amsterdam", "c28f5c28-f5c2-4000-8000-000000000026"] │ │ │ -│ {"key":["new york","6c8ab772-584a-439d-b7b4-fda37767c74c"],"value":{"after":{"address":"34196 Roger Row Suite 6","city":"new york","credit_card":"3117945420","id":"6c8ab772-584a-439d-b7b4-fda37767c74c","name":"James Lang"}},"topic":"movr-users"} │ 4466147099992681 │ ["new york", "6c8ab772-584a-439d-b7b4-fda37767c74c"] │ │ │ -│ {"key":["boston","c56dab0a-63e7-4fbb-a9af-54362c481c41"],"value":{"after":{"address":"83781 Ross Overpass","city":"boston","credit_card":"7044597874","id":"c56dab0a-63e7-4fbb-a9af-54362c481c41","name":"Mark Butler"}},"topic":"movr-users"} │ 4466150752442731 │ ["boston", "c56dab0a-63e7-4fbb-a9af-54362c481c41"] │ │ │ -│ {"key":["amsterdam","f27e09d5-d7cd-4f88-8b65-abb910036f45"],"value":{"after":{"address":"77153 Donald Road Apt. 62","city":"amsterdam","credit_card":"7531160744","id":"f27e09d5-d7cd-4f88-8b65-abb910036f45","name":"Lisa Sandoval"}},"topic":"movr-users"} │ 4466147182359256 │ ["amsterdam", "f27e09d5-d7cd-4f88-8b65-abb910036f45"] │ │ │ -│ {"key":["new york","46d200c0-6924-4cc7-b3c9-3398997acb84"],"value":{"after":{"address":"92843 Carlos Grove","city":"new york","credit_card":"8822366402","id":"46d200c0-6924-4cc7-b3c9-3398997acb84","name":"Mackenzie Malone"}},"topic":"movr-users"} │ 4466142864542016 │ ["new york", "46d200c0-6924-4cc7-b3c9-3398997acb84"] │ │ │ -│ {"key":["boston","52ecbb26-0eab-4e0b-a160-90caa6a7d350"],"value":{"after":{"address":"95044 Eric Corner Suite 33","city":"boston","credit_card":"3982363300","id":"52ecbb26-0eab-4e0b-a160-90caa6a7d350","name":"Brett Porter"}},"topic":"movr-users"} │ 4466152539161631 │ ["boston", "52ecbb26-0eab-4e0b-a160-90caa6a7d350"] │ │ │ -│ {"key":["amsterdam","ae147ae1-47ae-4800-8000-000000000022"],"value":{"after":{"address":"88194 Angela Gardens Suite 94","city":"amsterdam","credit_card":"4443538758","id":"ae147ae1-47ae-4800-8000-000000000022","name":"Tyler Dalton"}},"topic":"movr-users"} │ 4466151398997150 │ ["amsterdam", "ae147ae1-47ae-4800-8000-000000000022"] │ │ │ -│ {"key":["paris","dc28f5c2-8f5c-4800-8000-00000000002b"],"value":{"after":{"address":"2058 Rodriguez Stream","city":"paris","credit_card":"9584502537","id":"dc28f5c2-8f5c-4800-8000-00000000002b","name":"Tony Ortiz"}},"topic":"movr-users"} │ 4466146372222914 │ ["paris", "dc28f5c2-8f5c-4800-8000-00000000002b"] │ │ │ -└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────┴─────────────────────────────────────────────────────────┴────────────┴──────────────────┘ +┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────┬──────────────┬────────────┬──────────────────┬────────────┐ +│ DATA │ MESSAGE_ID │ ORDERING_KEY │ ATTRIBUTES │ DELIVERY_ATTEMPT │ ACK_STATUS │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────┼──────────────┼────────────┼──────────────────┼────────────┤ +│ {"Key":["amsterdam", "09ee2856-5856-40c4-85d3-7d65bed978f0"],"Value":{"after": {"address": "84579 Peter Divide Apt. 47", "city": "amsterdam", "credit_card": "0100007510", "id": "09ee2856-5856-40c4-85d3-7d65bed978f0", "name": "Timothy Jackson"}},"Topic":"users"} │ 11249015757941393 │ │ │ │ SUCCESS │ +│ {"Key":["new york", "8803ab9e-5001-4994-a2e6-68d587f95f1d"],"Value":{"after": {"address": "37546 Andrew Roads Apt. 68", "city": "new york", "credit_card": "4731676650", "id": "8803ab9e-5001-4994-a2e6-68d587f95f1d", "name": "Susan Harrington"}},"Topic":"users"} │ 11249015757941394 │ │ │ │ SUCCESS │ +│ {"Key":["seattle", "32e27201-ca0d-4a0c-ada2-fbf47f6a4711"],"Value":{"after": {"address": "86725 Stephen Gardens", "city": "seattle", "credit_card": "3639690115", "id": "32e27201-ca0d-4a0c-ada2-fbf47f6a4711", "name": "Brad Hill"}},"Topic":"users"} │ 11249015757941395 │ │ │ │ SUCCESS │ +│ {"Key":["san francisco", "27b03637-ef9f-49a0-9b58-b16d7a9e34f4"],"Value":{"after": {"address": "85467 Tiffany Field", "city": "san francisco", "credit_card": "0016125921", "id": "27b03637-ef9f-49a0-9b58-b16d7a9e34f4", "name": "Mark Garcia"}},"Topic":"users"} │ 11249015757941396 │ │ │ │ SUCCESS │ +│ {"Key":["rome", "982e1863-88d4-49cb-adee-0a35baae7e0b"],"Value":{"after": {"address": "54918 Sutton Isle Suite 74", "city": "rome", "credit_card": "6015706174", "id": "982e1863-88d4-49cb-adee-0a35baae7e0b", "name": "Kimberly Nichols"}},"Topic":"users"} │ 11249015757941397 │ │ │ │ SUCCESS │ +│ {"Key":["washington dc", "7b298994-7b12-414c-90ef-353c7105f012"],"Value":{"after": {"address": "45205 Romero Ford Apt. 86", "city": "washington dc", "credit_card": "3519400314", "id": "7b298994-7b12-414c-90ef-353c7105f012", "name": "Taylor Bullock"}},"Topic":"users"} │ 11249015757941398 │ │ │ │ SUCCESS │ +│ {"Key":["boston", "4f012f57-577b-4853-b5ab-0d79d0df1369"],"Value":{"after": {"address": "15765 Vang Ramp", "city": "boston", "credit_card": "6747715133", "id": "4f012f57-577b-4853-b5ab-0d79d0df1369", "name": "Ryan Garcia"}},"Topic":"users"} │ 11249015757941399 │ │ │ │ SUCCESS │ +│ {"Key":["seattle", "9ba85917-5545-4674-8ab2-497fa47ac00f"],"Value":{"after": {"address": "24354 Whitney Lodge", "city": "seattle", "credit_card": "8642661685", "id": "9ba85917-5545-4674-8ab2-497fa47ac00f", "name": "Donald Walsh"}},"Topic":"users"} │ 11249015757941400 │ │ │ │ SUCCESS │ +│ {"Key":["seattle", "98312fb3-230e-412d-9b22-074ec97329ff"],"Value":{"after": {"address": "72777 Carol Shoal", "city": "seattle", "credit_card": "7789799678", "id": "98312fb3-230e-412d-9b22-074ec97329ff", "name": "Christopher Davis"}},"Topic":"users"} │ 11249015757941401 │ │ │ │ SUCCESS │ +└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────────┴──────────────┴────────────┴──────────────────┴────────────┘ ~~~ {% include {{ page.version.version }}/cdc/note-changefeed-message-page.md %} diff --git a/src/current/v23.2/create-changefeed.md b/src/current/v23.2/create-changefeed.md index e823f9fac61..54326575fdd 100644 --- a/src/current/v23.2/create-changefeed.md +++ b/src/current/v23.2/create-changefeed.md @@ -104,6 +104,8 @@ Example of a Google Cloud Pub/Sub sink URI: 'gcpubsub://{project name}?region={region}&topic_name={topic name}&AUTH=specified&CREDENTIALS={base64-encoded key}' ~~~ +In CockroachDB v23.2 and later, the `changefeed.new_pubsub_sink_enabled` cluster setting is enabled by default, which provides improved throughput. For details on the changes to the message format, refer to [Pub/Sub sink messages]({% link {{ page.version.version }}/changefeed-sinks.md %}#pub-sub-sink-messages). + [Use Cloud Storage for Bulk Operations]({% link {{ page.version.version }}/cloud-storage-authentication.md %}) explains the requirements for the authentication parameter with `specified` or `implicit`. Refer to [Changefeed Sinks]({% link {{ page.version.version }}/changefeed-sinks.md %}#google-cloud-pub-sub) for further consideration. #### Cloud Storage diff --git a/src/current/v24.1/changefeed-examples.md b/src/current/v24.1/changefeed-examples.md index 5a6a600e54f..2b4f83f325a 100644 --- a/src/current/v24.1/changefeed-examples.md +++ b/src/current/v24.1/changefeed-examples.md @@ -459,35 +459,32 @@ You'll need access to a [Google Cloud Project](https://cloud.google.com/resource NOTICE: changefeed will emit to topic movr-users ~~~ - To view all the messages delivered to your topic, you can use the Cloud Console. You'll see the messages emitted to the `movr-users-sub` subscription. + To view all the messages delivered to your topic, you can use: + - The Google Cloud Console. From the Pub/Sub menu, select **Subscriptions** in the left-hand navigation and then select the subscription ID from your list of subscriptions. On the subscription's overview, click **Messages**, and then **Pull** to view messages. + - The `gcloud` CLI. From your terminal, run the following command: - Google Cloud Console changefeed message output from movr database - - To view published messages from your terminal, run the following command: - - {% include_cached copy-clipboard.html %} - ~~~ shell - gcloud pubsub subscriptions pull movr-users-sub --auto-ack --limit=10 - ~~~ + {% include_cached copy-clipboard.html %} + ~~~ shell + gcloud pubsub subscriptions pull movr-users-sub --auto-ack --limit=10 + ~~~ - This command will **only** pull these messages once per subscription. For example, if you ran this command again you would receive 10 different messages in your output. To receive more than one message at a time, pass the `--limit` flag. For more details, see the [gcloud pubsub subscriptions pull](https://cloud.google.com/sdk/gcloud/reference/pubsub/subscriptions/pull) documentation. + This command will **only** pull these messages once per subscription. For example, if you ran this command again you would receive 10 different messages in your output. To receive more than one message at a time, pass the `--limit` flag. For more details, refer to the [gcloud pubsub subscriptions pull](https://cloud.google.com/sdk/gcloud/reference/pubsub/subscriptions/pull) documentation. - ~~~ - ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────────────┬─────────────────────────────────────────────────────────┬────────────┬──────────────────┐ - │ DATA │ MESSAGE_ID │ ORDERING_KEY │ ATTRIBUTES │ DELIVERY_ATTEMPT │ - ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────┼─────────────────────────────────────────────────────────┼────────────┼──────────────────┤ - │ {"key":["boston","40ef7cfa-5e16-4bd3-9e14-2f23407a66df"],"value":{"after":{"address":"14980 Gentry Plains Apt. 64","city":"boston","credit_card":"2466765790","id":"40ef7cfa-5e16-4bd3-9e14-2f23407a66df","name":"Vickie Fitzpatrick"}},"topic":"movr-users"} │ 4466153049158588 │ ["boston", "40ef7cfa-5e16-4bd3-9e14-2f23407a66df"] │ │ │ - │ {"key":["los angeles","947ae147-ae14-4800-8000-00000000001d"],"value":{"after":{"address":"35627 Chelsey Tunnel Suite 94","city":"los angeles","credit_card":"2099932769","id":"947ae147-ae14-4800-8000-00000000001d","name":"Kenneth Barnes"}},"topic":"movr-users"} │ 4466144577818136 │ ["los angeles", "947ae147-ae14-4800-8000-00000000001d"] │ │ │ - │ {"key":["amsterdam","c28f5c28-f5c2-4000-8000-000000000026"],"value":{"after":{"address":"14729 Karen Radial","city":"amsterdam","credit_card":"5844236997","id":"c28f5c28-f5c2-4000-8000-000000000026","name":"Maria Weber"}},"topic":"movr-users"} │ 4466151194002912 │ ["amsterdam", "c28f5c28-f5c2-4000-8000-000000000026"] │ │ │ - │ {"key":["new york","6c8ab772-584a-439d-b7b4-fda37767c74c"],"value":{"after":{"address":"34196 Roger Row Suite 6","city":"new york","credit_card":"3117945420","id":"6c8ab772-584a-439d-b7b4-fda37767c74c","name":"James Lang"}},"topic":"movr-users"} │ 4466147099992681 │ ["new york", "6c8ab772-584a-439d-b7b4-fda37767c74c"] │ │ │ - │ {"key":["boston","c56dab0a-63e7-4fbb-a9af-54362c481c41"],"value":{"after":{"address":"83781 Ross Overpass","city":"boston","credit_card":"7044597874","id":"c56dab0a-63e7-4fbb-a9af-54362c481c41","name":"Mark Butler"}},"topic":"movr-users"} │ 4466150752442731 │ ["boston", "c56dab0a-63e7-4fbb-a9af-54362c481c41"] │ │ │ - │ {"key":["amsterdam","f27e09d5-d7cd-4f88-8b65-abb910036f45"],"value":{"after":{"address":"77153 Donald Road Apt. 62","city":"amsterdam","credit_card":"7531160744","id":"f27e09d5-d7cd-4f88-8b65-abb910036f45","name":"Lisa Sandoval"}},"topic":"movr-users"} │ 4466147182359256 │ ["amsterdam", "f27e09d5-d7cd-4f88-8b65-abb910036f45"] │ │ │ - │ {"key":["new york","46d200c0-6924-4cc7-b3c9-3398997acb84"],"value":{"after":{"address":"92843 Carlos Grove","city":"new york","credit_card":"8822366402","id":"46d200c0-6924-4cc7-b3c9-3398997acb84","name":"Mackenzie Malone"}},"topic":"movr-users"} │ 4466142864542016 │ ["new york", "46d200c0-6924-4cc7-b3c9-3398997acb84"] │ │ │ - │ {"key":["boston","52ecbb26-0eab-4e0b-a160-90caa6a7d350"],"value":{"after":{"address":"95044 Eric Corner Suite 33","city":"boston","credit_card":"3982363300","id":"52ecbb26-0eab-4e0b-a160-90caa6a7d350","name":"Brett Porter"}},"topic":"movr-users"} │ 4466152539161631 │ ["boston", "52ecbb26-0eab-4e0b-a160-90caa6a7d350"] │ │ │ - │ {"key":["amsterdam","ae147ae1-47ae-4800-8000-000000000022"],"value":{"after":{"address":"88194 Angela Gardens Suite 94","city":"amsterdam","credit_card":"4443538758","id":"ae147ae1-47ae-4800-8000-000000000022","name":"Tyler Dalton"}},"topic":"movr-users"} │ 4466151398997150 │ ["amsterdam", "ae147ae1-47ae-4800-8000-000000000022"] │ │ │ - │ {"key":["paris","dc28f5c2-8f5c-4800-8000-00000000002b"],"value":{"after":{"address":"2058 Rodriguez Stream","city":"paris","credit_card":"9584502537","id":"dc28f5c2-8f5c-4800-8000-00000000002b","name":"Tony Ortiz"}},"topic":"movr-users"} │ 4466146372222914 │ ["paris", "dc28f5c2-8f5c-4800-8000-00000000002b"] │ │ │ - └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────┴─────────────────────────────────────────────────────────┴────────────┴──────────────────┘ - ~~~ + ~~~ + ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────┬──────────────┬────────────┬──────────────────┬────────────┐ + │ DATA │ MESSAGE_ID │ ORDERING_KEY │ ATTRIBUTES │ DELIVERY_ATTEMPT │ ACK_STATUS │ + ├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────┼──────────────┼────────────┼──────────────────┼────────────┤ + │ {"Key":["amsterdam", "09ee2856-5856-40c4-85d3-7d65bed978f0"],"Value":{"after": {"address": "84579 Peter Divide Apt. 47", "city": "amsterdam", "credit_card": "0100007510", "id": "09ee2856-5856-40c4-85d3-7d65bed978f0", "name": "Timothy Jackson"}},"Topic":"movr-users"} │ 11249015757941393 │ │ │ │ SUCCESS │ + │ {"Key":["new york", "8803ab9e-5001-4994-a2e6-68d587f95f1d"],"Value":{"after": {"address": "37546 Andrew Roads Apt. 68", "city": "new york", "credit_card": "4731676650", "id": "8803ab9e-5001-4994-a2e6-68d587f95f1d", "name": "Susan Harrington"}},"Topic":"movr-users"} │ 11249015757941394 │ │ │ │ SUCCESS │ + │ {"Key":["seattle", "32e27201-ca0d-4a0c-ada2-fbf47f6a4711"],"Value":{"after": {"address": "86725 Stephen Gardens", "city": "seattle", "credit_card": "3639690115", "id": "32e27201-ca0d-4a0c-ada2-fbf47f6a4711", "name": "Brad Hill"}},"Topic":"movr-users"} │ 11249015757941395 │ │ │ │ SUCCESS │ + │ {"Key":["san francisco", "27b03637-ef9f-49a0-9b58-b16d7a9e34f4"],"Value":{"after": {"address": "85467 Tiffany Field", "city": "san francisco", "credit_card": "0016125921", "id": "27b03637-ef9f-49a0-9b58-b16d7a9e34f4", "name": "Mark Garcia"}},"Topic":"movr-users"} │ 11249015757941396 │ │ │ │ SUCCESS │ + │ {"Key":["rome", "982e1863-88d4-49cb-adee-0a35baae7e0b"],"Value":{"after": {"address": "54918 Sutton Isle Suite 74", "city": "rome", "credit_card": "6015706174", "id": "982e1863-88d4-49cb-adee-0a35baae7e0b", "name": "Kimberly Nichols"}},"Topic":"movr-users"} │ 11249015757941397 │ │ │ │ SUCCESS │ + │ {"Key":["washington dc", "7b298994-7b12-414c-90ef-353c7105f012"],"Value":{"after": {"address": "45205 Romero Ford Apt. 86", "city": "washington dc", "credit_card": "3519400314", "id": "7b298994-7b12-414c-90ef-353c7105f012", "name": "Taylor Bullock"}},"Topic":"movr-users"} │ 11249015757941398 │ │ │ │ SUCCESS │ + │ {"Key":["boston", "4f012f57-577b-4853-b5ab-0d79d0df1369"],"Value":{"after": {"address": "15765 Vang Ramp", "city": "boston", "credit_card": "6747715133", "id": "4f012f57-577b-4853-b5ab-0d79d0df1369", "name": "Ryan Garcia"}},"Topic":"movr-users"} │ 11249015757941399 │ │ │ │ SUCCESS │ + │ {"Key":["seattle", "9ba85917-5545-4674-8ab2-497fa47ac00f"],"Value":{"after": {"address": "24354 Whitney Lodge", "city": "seattle", "credit_card": "8642661685", "id": "9ba85917-5545-4674-8ab2-497fa47ac00f", "name": "Donald Walsh"}},"Topic":"movr-users"} │ 11249015757941400 │ │ │ │ SUCCESS │ + │ {"Key":["seattle", "98312fb3-230e-412d-9b22-074ec97329ff"],"Value":{"after": {"address": "72777 Carol Shoal", "city": "seattle", "credit_card": "7789799678", "id": "98312fb3-230e-412d-9b22-074ec97329ff", "name": "Christopher Davis"}},"Topic":"movr-users"} │ 11249015757941401 │ │ │ │ SUCCESS │ + └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────────┴──────────────┴────────────┴──────────────────┴────────────┘ + ~~~ ## Create a changefeed connected to a cloud storage sink diff --git a/src/current/v24.1/changefeed-sinks.md b/src/current/v24.1/changefeed-sinks.md index 7b771659dbd..0df4882978c 100644 --- a/src/current/v24.1/changefeed-sinks.md +++ b/src/current/v24.1/changefeed-sinks.md @@ -239,6 +239,10 @@ The following parameters are also needed, but are **set by default** in Cockroac Changefeeds can deliver messages to a Google Cloud Pub/Sub sink, which is integrated with Google Cloud Platform. +{{site.data.alerts.callout_info}} +Since CockroachDB v23.2, the `changefeed.new_pubsub_sink_enabled` cluster setting is enabled by default, which provides improved throughput. Without this cluster setting enabled, changefeeds emit JSON-encoded events with the top-level message fields all lowercase. With `changefeed.new_pubsub_sink_enabled`, the top-level fields are capitalized. For more details, refer to the [Pub/Sub sink messages](#pub-sub-sink-messages) section. +{{site.data.alerts.end}} + A Pub/Sub sink URI follows this example: ~~~ @@ -313,23 +317,40 @@ pubsub_sink_config = '{ "Flush": {"Messages": 100, "Frequency": "5s"}, "Retry": ### Pub/Sub sink messages +The `changefeed.new_pubsub_sink_enabled` cluster setting is enabled by default, which provides improved changefeed throughput peformance. With `changefeed.new_pubsub_sink_enabled` enabled, the changefeed JSON-encoded message format have top-level fields that are capitalized: + +~~~ +{Key: ..., Value: ..., Topic: ...} +~~~ + +{{site.data.alerts.callout_danger}} +By default in v23.2, the capitalization of top-level fields in the message has changed. Before upgrading to CockroachDB v23.2 and later, you may need to reconfigure downstream systems to parse the new message format. +{{site.data.alerts.end}} + +With `changefeed.new_pubsub_sink_enabled` set to `false`, changefeeds emit JSON messages with the top-level fields all lowercase: + +~~~ +{key: ..., value: ..., topic: ...} +~~~ + +If `changefeed.new_pubsub_sink_enabled` is set to `false`, changefeeds will not benefit from the improved throughput performance that this setting enables. + The following shows the default JSON messages for a changefeed emitting to Pub/Sub. These changefeed messages were emitted as part of the [Create a changefeed connected to a Google Cloud Pub/Sub sink]({% link {{ page.version.version }}/changefeed-examples.md %}#create-a-changefeed-connected-to-a-google-cloud-pub-sub-sink) example: ~~~ -┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────────────┬─────────────────────────────────────────────────────────┬────────────┬──────────────────┐ -│ DATA │ MESSAGE_ID │ ORDERING_KEY │ ATTRIBUTES │ DELIVERY_ATTEMPT │ -├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────┼─────────────────────────────────────────────────────────┼────────────┼──────────────────┤ -│ {"key":["boston","40ef7cfa-5e16-4bd3-9e14-2f23407a66df"],"value":{"after":{"address":"14980 Gentry Plains Apt. 64","city":"boston","credit_card":"2466765790","id":"40ef7cfa-5e16-4bd3-9e14-2f23407a66df","name":"Vickie Fitzpatrick"}},"topic":"movr-users"} │ 4466153049158588 │ ["boston", "40ef7cfa-5e16-4bd3-9e14-2f23407a66df"] │ │ │ -│ {"key":["los angeles","947ae147-ae14-4800-8000-00000000001d"],"value":{"after":{"address":"35627 Chelsey Tunnel Suite 94","city":"los angeles","credit_card":"2099932769","id":"947ae147-ae14-4800-8000-00000000001d","name":"Kenneth Barnes"}},"topic":"movr-users"} │ 4466144577818136 │ ["los angeles", "947ae147-ae14-4800-8000-00000000001d"] │ │ │ -│ {"key":["amsterdam","c28f5c28-f5c2-4000-8000-000000000026"],"value":{"after":{"address":"14729 Karen Radial","city":"amsterdam","credit_card":"5844236997","id":"c28f5c28-f5c2-4000-8000-000000000026","name":"Maria Weber"}},"topic":"movr-users"} │ 4466151194002912 │ ["amsterdam", "c28f5c28-f5c2-4000-8000-000000000026"] │ │ │ -│ {"key":["new york","6c8ab772-584a-439d-b7b4-fda37767c74c"],"value":{"after":{"address":"34196 Roger Row Suite 6","city":"new york","credit_card":"3117945420","id":"6c8ab772-584a-439d-b7b4-fda37767c74c","name":"James Lang"}},"topic":"movr-users"} │ 4466147099992681 │ ["new york", "6c8ab772-584a-439d-b7b4-fda37767c74c"] │ │ │ -│ {"key":["boston","c56dab0a-63e7-4fbb-a9af-54362c481c41"],"value":{"after":{"address":"83781 Ross Overpass","city":"boston","credit_card":"7044597874","id":"c56dab0a-63e7-4fbb-a9af-54362c481c41","name":"Mark Butler"}},"topic":"movr-users"} │ 4466150752442731 │ ["boston", "c56dab0a-63e7-4fbb-a9af-54362c481c41"] │ │ │ -│ {"key":["amsterdam","f27e09d5-d7cd-4f88-8b65-abb910036f45"],"value":{"after":{"address":"77153 Donald Road Apt. 62","city":"amsterdam","credit_card":"7531160744","id":"f27e09d5-d7cd-4f88-8b65-abb910036f45","name":"Lisa Sandoval"}},"topic":"movr-users"} │ 4466147182359256 │ ["amsterdam", "f27e09d5-d7cd-4f88-8b65-abb910036f45"] │ │ │ -│ {"key":["new york","46d200c0-6924-4cc7-b3c9-3398997acb84"],"value":{"after":{"address":"92843 Carlos Grove","city":"new york","credit_card":"8822366402","id":"46d200c0-6924-4cc7-b3c9-3398997acb84","name":"Mackenzie Malone"}},"topic":"movr-users"} │ 4466142864542016 │ ["new york", "46d200c0-6924-4cc7-b3c9-3398997acb84"] │ │ │ -│ {"key":["boston","52ecbb26-0eab-4e0b-a160-90caa6a7d350"],"value":{"after":{"address":"95044 Eric Corner Suite 33","city":"boston","credit_card":"3982363300","id":"52ecbb26-0eab-4e0b-a160-90caa6a7d350","name":"Brett Porter"}},"topic":"movr-users"} │ 4466152539161631 │ ["boston", "52ecbb26-0eab-4e0b-a160-90caa6a7d350"] │ │ │ -│ {"key":["amsterdam","ae147ae1-47ae-4800-8000-000000000022"],"value":{"after":{"address":"88194 Angela Gardens Suite 94","city":"amsterdam","credit_card":"4443538758","id":"ae147ae1-47ae-4800-8000-000000000022","name":"Tyler Dalton"}},"topic":"movr-users"} │ 4466151398997150 │ ["amsterdam", "ae147ae1-47ae-4800-8000-000000000022"] │ │ │ -│ {"key":["paris","dc28f5c2-8f5c-4800-8000-00000000002b"],"value":{"after":{"address":"2058 Rodriguez Stream","city":"paris","credit_card":"9584502537","id":"dc28f5c2-8f5c-4800-8000-00000000002b","name":"Tony Ortiz"}},"topic":"movr-users"} │ 4466146372222914 │ ["paris", "dc28f5c2-8f5c-4800-8000-00000000002b"] │ │ │ -└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────┴─────────────────────────────────────────────────────────┴────────────┴──────────────────┘ +┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────┬──────────────┬────────────┬──────────────────┬────────────┐ +│ DATA │ MESSAGE_ID │ ORDERING_KEY │ ATTRIBUTES │ DELIVERY_ATTEMPT │ ACK_STATUS │ +├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────┼──────────────┼────────────┼──────────────────┼────────────┤ +│ {"Key":["amsterdam", "09ee2856-5856-40c4-85d3-7d65bed978f0"],"Value":{"after": {"address": "84579 Peter Divide Apt. 47", "city": "amsterdam", "credit_card": "0100007510", "id": "09ee2856-5856-40c4-85d3-7d65bed978f0", "name": "Timothy Jackson"}},"Topic":"users"} │ 11249015757941393 │ │ │ │ SUCCESS │ +│ {"Key":["new york", "8803ab9e-5001-4994-a2e6-68d587f95f1d"],"Value":{"after": {"address": "37546 Andrew Roads Apt. 68", "city": "new york", "credit_card": "4731676650", "id": "8803ab9e-5001-4994-a2e6-68d587f95f1d", "name": "Susan Harrington"}},"Topic":"users"} │ 11249015757941394 │ │ │ │ SUCCESS │ +│ {"Key":["seattle", "32e27201-ca0d-4a0c-ada2-fbf47f6a4711"],"Value":{"after": {"address": "86725 Stephen Gardens", "city": "seattle", "credit_card": "3639690115", "id": "32e27201-ca0d-4a0c-ada2-fbf47f6a4711", "name": "Brad Hill"}},"Topic":"users"} │ 11249015757941395 │ │ │ │ SUCCESS │ +│ {"Key":["san francisco", "27b03637-ef9f-49a0-9b58-b16d7a9e34f4"],"Value":{"after": {"address": "85467 Tiffany Field", "city": "san francisco", "credit_card": "0016125921", "id": "27b03637-ef9f-49a0-9b58-b16d7a9e34f4", "name": "Mark Garcia"}},"Topic":"users"} │ 11249015757941396 │ │ │ │ SUCCESS │ +│ {"Key":["rome", "982e1863-88d4-49cb-adee-0a35baae7e0b"],"Value":{"after": {"address": "54918 Sutton Isle Suite 74", "city": "rome", "credit_card": "6015706174", "id": "982e1863-88d4-49cb-adee-0a35baae7e0b", "name": "Kimberly Nichols"}},"Topic":"users"} │ 11249015757941397 │ │ │ │ SUCCESS │ +│ {"Key":["washington dc", "7b298994-7b12-414c-90ef-353c7105f012"],"Value":{"after": {"address": "45205 Romero Ford Apt. 86", "city": "washington dc", "credit_card": "3519400314", "id": "7b298994-7b12-414c-90ef-353c7105f012", "name": "Taylor Bullock"}},"Topic":"users"} │ 11249015757941398 │ │ │ │ SUCCESS │ +│ {"Key":["boston", "4f012f57-577b-4853-b5ab-0d79d0df1369"],"Value":{"after": {"address": "15765 Vang Ramp", "city": "boston", "credit_card": "6747715133", "id": "4f012f57-577b-4853-b5ab-0d79d0df1369", "name": "Ryan Garcia"}},"Topic":"users"} │ 11249015757941399 │ │ │ │ SUCCESS │ +│ {"Key":["seattle", "9ba85917-5545-4674-8ab2-497fa47ac00f"],"Value":{"after": {"address": "24354 Whitney Lodge", "city": "seattle", "credit_card": "8642661685", "id": "9ba85917-5545-4674-8ab2-497fa47ac00f", "name": "Donald Walsh"}},"Topic":"users"} │ 11249015757941400 │ │ │ │ SUCCESS │ +│ {"Key":["seattle", "98312fb3-230e-412d-9b22-074ec97329ff"],"Value":{"after": {"address": "72777 Carol Shoal", "city": "seattle", "credit_card": "7789799678", "id": "98312fb3-230e-412d-9b22-074ec97329ff", "name": "Christopher Davis"}},"Topic":"users"} │ 11249015757941401 │ │ │ │ SUCCESS │ +└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────────┴──────────────┴────────────┴──────────────────┴────────────┘ ~~~ {% include {{ page.version.version }}/cdc/note-changefeed-message-page.md %} diff --git a/src/current/v24.1/create-changefeed.md b/src/current/v24.1/create-changefeed.md index 6a084278824..0ec6017731a 100644 --- a/src/current/v24.1/create-changefeed.md +++ b/src/current/v24.1/create-changefeed.md @@ -102,6 +102,8 @@ Example of a Google Cloud Pub/Sub sink URI: 'gcpubsub://{project name}?region={region}&topic_name={topic name}&AUTH=specified&CREDENTIALS={base64-encoded key}' ~~~ +In CockroachDB v23.2 and later, the `changefeed.new_pubsub_sink_enabled` cluster setting is enabled by default, which provides improved throughput. For details on the changes to the message format, refer to [Pub/Sub sink messages]({% link {{ page.version.version }}/changefeed-sinks.md %}#pub-sub-sink-messages). + [Use Cloud Storage for Bulk Operations]({% link {{ page.version.version }}/cloud-storage-authentication.md %}) explains the requirements for the authentication parameter with `specified` or `implicit`. Refer to [Changefeed Sinks]({% link {{ page.version.version }}/changefeed-sinks.md %}#google-cloud-pub-sub) for further consideration. #### Kafka From 3c8a44541d4ef9cc8e18ffc07a30df38a7913042 Mon Sep 17 00:00:00 2001 From: "Matt Linville (he/him)" Date: Mon, 20 May 2024 09:51:34 -0700 Subject: [PATCH 09/30] [DOC-10254][DOC-10301] New regions for Dedicated (#18562) * Non-user-facing refactor to make the Cloud Regions page easier to maintain * [DOC-10254] New regions for Dedicated on GCP * [DOC-10301] New region for Dedicated on AWS --- src/current/_data/cloud_releases.csv | 1 + .../_includes/releases/cloud/2024-05-20.md | 13 ++ src/current/cockroachcloud/regions.md | 111 ++++++++++-------- 3 files changed, 79 insertions(+), 46 deletions(-) create mode 100644 src/current/_includes/releases/cloud/2024-05-20.md diff --git a/src/current/_data/cloud_releases.csv b/src/current/_data/cloud_releases.csv index 59283505e83..2e5067965b4 100644 --- a/src/current/_data/cloud_releases.csv +++ b/src/current/_data/cloud_releases.csv @@ -85,3 +85,4 @@ date,sha 2024-04-17,null 2024-04-18,null 2024-05-12,null +2024-05-20,null diff --git a/src/current/_includes/releases/cloud/2024-05-20.md b/src/current/_includes/releases/cloud/2024-05-20.md new file mode 100644 index 00000000000..9c2c0012e06 --- /dev/null +++ b/src/current/_includes/releases/cloud/2024-05-20.md @@ -0,0 +1,13 @@ +## May 20, 2024 + +

General updates

+ +- CockroachDB {{ site.data.products.dedicated }} on AWS is now available in the `me-central-1`(United Arab Emirates) [ region]({% link cockroachcloud/regions.md %}#aws-regions). +- CockroachDB {{ site.data.products.dedicated }} on GCP is now available in new [regions]({% link cockroachcloud/regions.md %}#gcp-regions): + - `europe-southwest1` (Madrid) + - `europe-west8` (Milan) + - `europe-west12` (Paris) + - `me-central1` (Doha) + - `me-west1` (Tel Aviv) + - `us-east5` (Columbus) + - `us-south1` (Dallas) diff --git a/src/current/cockroachcloud/regions.md b/src/current/cockroachcloud/regions.md index 42f7ae0f47e..5baff13815b 100644 --- a/src/current/cockroachcloud/regions.md +++ b/src/current/cockroachcloud/regions.md @@ -22,11 +22,15 @@ For optimal performance, configure your cluster's regions to be as near as possi {{site.data.alerts.callout_info}} Creating a CockroachDB {{ site.data.products.serverless }} cluster on Azure is not supported. {{site.data.alerts.end}} +
## AWS regions +
+ CockroachDB {{ site.data.products.serverless }} clusters can be deployed in the following [AWS regions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html): + Geographic Area | Region Name | Location ----------------|------------------|--------- Asia Pacific | `ap-south-1` | Mumbai @@ -35,26 +39,10 @@ North America | `us-east-1` | N. Virginia | `us-west-2` | Oregon Western Europe | `eu-central-1` | Frankfurt | `eu-west-1` | Ireland - -## GCP regions - -CockroachDB {{ site.data.products.serverless }} clusters can be deployed in the following [GCP regions](https://cloud.google.com/compute/docs/regions-zones): - -Geographic Area | Region Name | Location -----------------|---------------------------|--------- -Asia Pacific | `asia-southeast1` | Jurong West -North America | `us-central1` | Iowa - | `us-east1` | South Carolina - | `us-west2` | California -South America | `southamerica-east1` | São Paulo -Western Europe | `europe-west1` | St. Ghislain -
-## AWS regions - CockroachDB {{ site.data.products.dedicated }} clusters can be deployed in the following [AWS regions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html): Geographic Area | Region Name | Location @@ -65,6 +53,7 @@ Asia Pacific | `ap-northeast-1` | Tokyo | `ap-south-1` | Mumbai | `ap-southeast-1` | Singapore | `ap-southeast-2` | Sydney +Middle East | `me-central-1` | United Arab Emirates North America | `ca-central-1` | Central Canada | `us-east-1` | N. Virginia | `us-east-2` | Ohio @@ -76,39 +65,26 @@ Western Europe | `eu-central-1` | Frankfurt | `eu-west-2` | London | `eu-west-3` | Paris -## Azure regions +
-CockroachDB {{ site.data.products.cloud }} clusters can be deployed in the following [Azure regions](https://learn.microsoft.com/azure/reliability/availability-zones-overview#regions): +## GCP regions -Geographic Area | Region Name | Location -----------------|----------------------|--------- -Africa | `southafricanorth` | Johannesburg -Asia Pacific | `australiaeast` | New South Wales - | `japaneast` | Tokyo - | `koreacentral` | Seoul - | `centralindia` | Pune - | `eastasia` | Hong Kong - | `southeastasia` | Singapore -Middle East | `qatarcentral` | Doha - | `uaenorth` | Dubai -North America | `canadacentral` | Toronto - | `centralus` | Iowa - | `eastus` | Virginia - | `eastus2` | Virginia - | `southcentralus` | Texas - | `westus2` | Washington - | `westus3` | Washington -Western Europe | `francecentral` | Paris - | `germanywestcentral` | Frankfurt - | `northeurope` | Ireland - | `norwayeast` | Oslo - | `polandcentral` | Warsaw - | `swedencentral` | Gävle - | `switzerlandnorth` | Zürich - | `uksouth` | London - | `westeurope` | Netherlands +
-## GCP regions +CockroachDB {{ site.data.products.serverless }} clusters can be deployed in the following [GCP regions](https://cloud.google.com/compute/docs/regions-zones): + +Geographic Area | Region Name | Location +----------------|---------------------------|--------- +Asia Pacific | `asia-southeast1` | Jurong West +North America | `us-central1` | Iowa + | `us-east1` | South Carolina + | `us-west2` | California +South America | `southamerica-east1` | São Paulo +Western Europe | `europe-west1` | St. Ghislain + +
+ +
CockroachDB {{ site.data.products.dedicated }} clusters can be deployed in the following [GCP regions](https://cloud.google.com/compute/docs/regions-zones): @@ -125,11 +101,15 @@ Asia Pacific | `asia-east1` | Changhua County | `asia-southeast2` | Jakarta | `australia-southeast1` | Sydney | `australia-southeast2` | Melbourne +Middle East | `me-central1` | Doha + | `me-west1` | Tel Aviv North America | `northamerica-northeast1` | Montréal | `northamerica-northeast2` | Toronto | `us-central1` | Iowa | `us-east1` | South Carolina | `us-east4` | Virginia + | `us-east5` | Columbus + | `us-south1` | Dallas | `us-west1` | Oregon | `us-west2` | California | `us-west3` | Salt Lake City @@ -137,10 +117,49 @@ North America | `northamerica-northeast1` | Montréal South America | `southamerica-east1` | São Paulo Western Europe | `europe-central2` | Warsaw | `europe-north1` | Hamina + | `europe-southwest1` | Madrid | `europe-west1` | St. Ghislain | `europe-west2` | London | `europe-west3` | Frankfurt | `europe-west4` | Eemshaven | `europe-west6` | Zürich + | `europe-west9` | Paris + | `europe-west12` | Turin + +
+ +
+ +## Azure regions + +CockroachDB {{ site.data.products.dedicated }} clusters can be deployed in the following [Azure regions](https://learn.microsoft.com/azure/reliability/availability-zones-overview#regions): + +Geographic Area | Region Name | Location +----------------|----------------------|--------- +Africa | `southafricanorth` | Johannesburg +Asia Pacific | `australiaeast` | New South Wales + | `japaneast` | Tokyo + | `koreacentral` | Seoul + | `centralindia` | Pune + | `eastasia` | Hong Kong + | `southeastasia` | Singapore +Middle East | `qatarcentral` | Doha + | `uaenorth` | Dubai +North America | `canadacentral` | Toronto + | `centralus` | Iowa + | `eastus` | Virginia + | `eastus2` | Virginia + | `southcentralus` | Texas + | `westus2` | Washington + | `westus3` | Washington +Western Europe | `francecentral` | Paris + | `germanywestcentral` | Frankfurt + | `northeurope` | Ireland + | `norwayeast` | Oslo + | `polandcentral` | Warsaw + | `swedencentral` | Gävle + | `switzerlandnorth` | Zürich + | `uksouth` | London + | `westeurope` | Netherlands
From 0948bacffeae0764afa001a4d17fa9c342cbc585 Mon Sep 17 00:00:00 2001 From: "Matt Linville (he/him)" Date: Mon, 20 May 2024 09:57:37 -0700 Subject: [PATCH 10/30] [DOC-4851] Document Private Service Connect for Dedicated clusters on GCP (#18550) Other changes: - Consolidate private connectivity info on network auth page - Move how-to info about VPC Peering from network auth to connection page - Add AWS PrivateLink heading to connection page, link to AWS PrivateLink page - Add missing info about AWS PrivateLink for multi-region Serverless --- .../_includes/releases/cloud/2024-05-20.md | 3 + src/current/cockroachcloud/aws-privatelink.md | 2 +- .../cockroachcloud/connect-to-your-cluster.md | 61 ++++++++++++++++--- .../cockroachcloud/create-your-cluster.md | 15 +++-- .../cockroachcloud/network-authorization.md | 33 +++------- .../cockroachcloud/security-overview.md | 13 +++- .../security-reference/security-overview.md | 6 +- .../security-reference/security-overview.md | 6 +- .../security-reference/security-overview.md | 6 +- 9 files changed, 94 insertions(+), 51 deletions(-) diff --git a/src/current/_includes/releases/cloud/2024-05-20.md b/src/current/_includes/releases/cloud/2024-05-20.md index 9c2c0012e06..8c519ba8421 100644 --- a/src/current/_includes/releases/cloud/2024-05-20.md +++ b/src/current/_includes/releases/cloud/2024-05-20.md @@ -1,5 +1,8 @@ ## May 20, 2024 +

Security updates

+ +- [Configuring private connectivity using Google Cloud Private Service Connect]({% link cockroachcloud/connect-to-your-cluster.md %}#gcp-private-service-connect) is available in [preview](https://www.cockroachlabs.com/docs/{{site.current_cloud_version}}/cockroachdb-feature-availability) for CockroachDB {{ site.data.products.dedicated }} clusters on GCP. [Private connectivity]({% link cockroachcloud/network-authorization.md %}#options-for-controlling-network-access) allows you to establish SQL access to a CockroachDB {{ site.data.products.dedicated }} cluster entirely through cloud provider private infrastructure, without exposing the cluster to the public internet, affording enhanced security and performance.

General updates

- CockroachDB {{ site.data.products.dedicated }} on AWS is now available in the `me-central-1`(United Arab Emirates) [ region]({% link cockroachcloud/regions.md %}#aws-regions). diff --git a/src/current/cockroachcloud/aws-privatelink.md b/src/current/cockroachcloud/aws-privatelink.md index 97159f551b3..c093ce2808f 100644 --- a/src/current/cockroachcloud/aws-privatelink.md +++ b/src/current/cockroachcloud/aws-privatelink.md @@ -23,7 +23,7 @@ AWS PrivateLink for CockroachDB {{ site.data.products.serverless }} is in **[lim
{{site.data.alerts.callout_success}} -You must configure the AWS PrivateLink connection for your CockroachDB {{ site.data.products.dedicated }} cluster in CockroachDB {{ site.data.products.cloud }} and in AWS. For CockroachDB {{ site.data.products.cloud }}, you can use the CockroachDB {{ site.data.products.cloud }} Console, [Cloud API]({% link cockroachcloud/cloud-api.md %}) or [Terraform Provider]({% link cockroachcloud/provision-a-cluster-with-terraform.md %}). For help, refer to [Establish VPC Peering or AWS PrivateLink]({% link cockroachcloud/connect-to-your-cluster.md %}#establish-gcp-vpc-peering-or-aws-privatelink). +You must configure the AWS PrivateLink connection for your CockroachDB {{ site.data.products.dedicated }} cluster in CockroachDB {{ site.data.products.cloud }} and in AWS. For CockroachDB {{ site.data.products.cloud }}, you can use the CockroachDB {{ site.data.products.cloud }} Console, [Cloud API]({% link cockroachcloud/cloud-api.md %}) or [Terraform Provider]({% link cockroachcloud/provision-a-cluster-with-terraform.md %}). For help, refer to [Establish private connectivity]({% link cockroachcloud/connect-to-your-cluster.md %}#establish-private-connectivity). If you have multiple clusters, you will have to repeat these steps for each cluster that you want to connect to using AWS PrivateLink. {{site.data.alerts.end}} diff --git a/src/current/cockroachcloud/connect-to-your-cluster.md b/src/current/cockroachcloud/connect-to-your-cluster.md index 49bff1c4731..6671c9c6d94 100644 --- a/src/current/cockroachcloud/connect-to-your-cluster.md +++ b/src/current/cockroachcloud/connect-to-your-cluster.md @@ -21,8 +21,8 @@ By default, CockroachDB {{ site.data.products.dedicated }} clusters are locked d - Allowed IP address ranges on the internet. - Cloud-provider-specific peer networking options: - - Google Cloud Platform (GCP) VPC Peering - - Amazon Web Services (AWS) Private link + - Google Cloud Platform (GCP) VPC Peering or Private Service Connect (Preview) + - Amazon Web Services (AWS) Privatelink {{site.data.alerts.callout_info}} Removing or adding an authorized network on your CockroachDB {{ site.data.products.dedicated }} cluster may take a few seconds to take effect. @@ -36,15 +36,19 @@ Removing or adding an authorized network on your CockroachDB {{ site.data.produc 1. Click **Apply**. -### Establish GCP VPC Peering or AWS PrivateLink + +### Establish private connectivity -GCP VPC Peering and AWS PrivateLink allow customers to establish SQL access to their clusters entirely through cloud provider private infrastructure, without exposure to the public internet, affording enhanced security and performance. +Private connectivity allows you to establish SQL access to a CockroachDB {{ site.data.products.dedicated }} cluster entirely through cloud provider private infrastructure, without exposing the cluster to the public internet, affording enhanced security and performance. -VPC peering is available only for GCP clusters, and AWS PrivateLink is available for AWS clusters. +- Clusters deployed on GCP can connect privately using [GCP Private Service Connect (PSC)](#gcp-private-service-connect) or [GCP VPC peering](#gcp-vpc-peering). PSC allows you to selectively connect your cluster to a VPC within your Google Cloud project, while VPC Peering allows you to connect the Cockroach Cloud's VPC for your cluster to a VPC within your Google Cloud project. +- Clusters deployed on AWS can connect privately using AWS PrivateLink, which allows you to connect Cockroach Cloud's VPC to a VPC within your AWS account. -To configure VPC Peering or PrivateLink, you create the private connection in your cloud provider, then configure your cluster to allow connections from your VPC or private endpoint. For more information, refer to [Network Authorization for CockroachDB {{ site.data.products.dedicated }} clusters: GCP VPC Peering]({% link cockroachcloud/network-authorization.md %}#vpc-peering) and [Network Authorization for CockroachDB {{ site.data.products.dedicated }} clusters: AWS PrivateLink]({% link cockroachcloud/network-authorization.md %}#aws-privatelink). +For more information, refer to [Network authorization]({% link cockroachcloud/network-authorization.md %}). -AWS PrivateLink can be configured only after the cluster is created. For detailed instructions, refer to [Managing AWS PrivateLink for a cluster]({% link cockroachcloud/aws-privatelink.md %}). To configure VPC Peering, continue to the [VPC Peering](#vpc-peering) section below. +{{site.data.alerts.callout_success}} +GCP Private Service Connect and AWS PrivateLink can be configured only after a cluster is created. +{{site.data.alerts.end}} Azure Private Link is not yet available for [CockroachDB {{ site.data.products.dedicated }} on Azure]({% link cockroachcloud/cockroachdb-dedicated-on-azure.md %}). @@ -52,7 +56,37 @@ Azure Private Link is not yet available for [CockroachDB {{ site.data.products.d {% include cockroachcloud/cdc/kafka-vpc-limitation.md %} {{site.data.alerts.end}} -#### VPC Peering +#### GCP Private Service Connect + +{{site.data.alerts.callout_info}} +{% include_cached feature-phases/preview.md %} +{{site.data.alerts.end}} + +1. Navigate to your cluster's **Networking > Private endpoint** tab. +1. Click **Add an endpoint**. Copy the value provided for **Target service**. Do not close this browser window. +1. In a new browser window, log in to Google Cloud Console, go to **Private Service Connect** section, and create a new endpoint in the same VPC as your application. For details, refer to [Create an endpoint](https://cloud.google.com/vpc/docs/configure-private-service-connect-services#create-endpoint) in the Google Cloud documentation. + - Set **Target** to **Published service**. + - Set **Target service** to the value you copied from CockroachDB {{ site.data.products.cloud }} Console. If the endpoint's configured target service does not match, validation will fail. + - Provide a value for **Endpoint name**. This is not used by CockroachDB {{ site.data.products.cloud }}. + - If it is not enabled, enable the Service Directory API, click **Enable global access*, and create a namespace in each region where your cluster is deployed. + - Click **Add endpoint**. + - After the endpoint is created, copy the connection ID. +1. Return to the CockroachDB {{ site.data.products.cloud }} Console browser tab and click **Validate**. +1. Enter the endpoint's ID, then click **Validate**. CockroachDB {{ site.data.products.cloud }} attempts to connect to the endpoint's VPC and verifies that the target service matches the cluster. If validation fails, verify the endpoint's configuration, then try again. After validation succeeds, click **Complete** to finish creating the connection. +1. On the **Networking > Private endpoint** tab, verify that the connection status is **Available**. + +{{site.data.alerts.callout_success}} +After validation succeeds for an endpoint, additional endpoints in the same VPC are automatically automatically accepted if they are configured with the cluster's target service ID. Additional VPCs must be added separately. +{{site.data.alerts.end}} + +If you remove the endpoint from GCP or change its target service, the endpoint will be removed from the cluster automatically. + +After the connection is established, you can use it to [connect to your cluster](#connect-to-your-cluster). + + +#### GCP VPC Peering + +For GKE, we recommend deploying your application to a VPC-native cluster that uses [alias IP addresses](https://cloud.google.com/kubernetes-engine/docs/how-to/alias-ips). If you are connecting from a [routes-based GKE cluster](https://cloud.google.com/kubernetes-engine/docs/how-to/routes-based-cluster) instead, you must [export custom routes](https://cloud.google.com/vpc/docs/vpc-peering#importing-exporting-routes). CockroachDB {{ site.data.products.cloud }} will import your custom routes by default. 1. Navigate to your cluster's **Networking > VPC Peering** tab. 1. Click **Set up a VPC peering connection**. @@ -63,6 +97,15 @@ Azure Private Link is not yet available for [CockroachDB {{ site.data.products.d 1. Run the command displayed on the **Accept VPC peering connection request** window using [Google Cloud Shell](https://cloud.google.com/shell) or using the [gcloud command-line tool](https://cloud.google.com/sdk/gcloud). 1. On the **Networking** page, verify the connection status is **Available**. +After the connection is established, you can use it to [connect to your cluster](#connect-to-your-cluster). + +{{site.data.alerts.callout_info}} +Self-service VPC peering setup is not supported for CockroachDB {{ site.data.products.dedicated }} clusters deployed before March 5, 2020. If your cluster was deployed before March 5, 2020, you will have to [create a new cluster]({% link cockroachcloud/create-your-cluster.md %}) with VPC peering enabled, then [export your data]({% link cockroachcloud/use-managed-service-backups.md %}) from the old cluster to the new cluster. If your cluster was deployed on or after March 5, 2020, it will be locked into CockroachDB {{ site.data.products.dedicated }}'s default IP range (`172.28.0.0/14`) unless you explicitly configured a different IP range during cluster creation. +{{site.data.alerts.end}} + +#### AWS PrivateLink + +To establish an AWS PrivateLink connection, refer to [Managing AWS PrivateLink for a cluster]({% link cockroachcloud/aws-privatelink.md %}). After the connection is established, you can use it to [connect to your cluster](#connect-to-your-cluster). ## Connect to your cluster @@ -70,7 +113,7 @@ Azure Private Link is not yet available for [CockroachDB {{ site.data.products.d The **Setup** page of the **Connect to cluster** dialog displays. -1. If you set up a private connection, click **AWS PrivateLink** (for clusters deployed in AWS) or **VPC Peering** (for clusters deployed in GCP) to connect privately. Otherwise, click **IP Allowlist**. +1. If you have set up a private connection, select it to connect privately. Otherwise, click **IP Allowlist**. 1. Select the **SQL User**. If you have only one SQL user, it is automatically selected. {{site.data.alerts.callout_info}} diff --git a/src/current/cockroachcloud/create-your-cluster.md b/src/current/cockroachcloud/create-your-cluster.md index 9eb7f25ea07..26d994468b5 100644 --- a/src/current/cockroachcloud/create-your-cluster.md +++ b/src/current/cockroachcloud/create-your-cluster.md @@ -58,11 +58,16 @@ Select the region(s) and number of nodes for your cluster: Click **Next: Capacity**. -## Step 4. Enable VPC Peering (optional) + +## Step 4. Enable GCP VPC Peering (optional) -You can use [VPC peering]({% link cockroachcloud/network-authorization.md %}#vpc-peering) to connect a GCP application to a CockroachDB {{ site.data.products.cloud }} cluster deployed on GCP. A separate VPC Peering connection is required for each cluster. +You can use [GCP VPC peering]({% link cockroachcloud/network-authorization.md %}#gcp-vpc-peering) to establish a private connection between a GCP application and a CockroachDB {{ site.data.products.dedicated }} cluster deployed on GCP. A separate VPC Peering connection is required for each cluster. -VPC peering is only available for GCP clusters. For clusters deployed on AWS, you can [set up AWS PrivateLink]({% link cockroachcloud/network-authorization.md %}#aws-privatelink) after creating your cluster. [Azure Virtual Network Peering](https://learn.microsoft.com/azure/virtual-network/virtual-network-peering-overview) is not yet supported. Refer to [CockroachDB {{ site.data.products.dedicated }} on Azure]({% link cockroachcloud/cockroachdb-dedicated-on-azure.md %}). +If you don't want to enable VPC Peering, leave the default selection of **Use the default IP range** as is and click **Next: Capacity**. + +{{site.data.alerts.callout_success}} +You can [set up GCP Private Service Connect (Preview)]({% link cockroachcloud/connect-to-your-cluster.md %}#gcp-private-service-connect) instead of VPC peering after creating your cluster. +{{site.data.alerts.end}} You can use CockroachDB {{ site.data.products.cloud }}'s default IP range and size (`172.28.0.0/14`) as long as it doesn't overlap with the IP ranges in your network. Alternatively, you can configure the IP range: @@ -78,9 +83,7 @@ You can use CockroachDB {{ site.data.products.cloud }}'s default IP range and si 1. Click **Next: Capacity**. - Once your cluster is created, see [Establish VPC Peering or AWS PrivateLink]({% link cockroachcloud/connect-to-your-cluster.md %}#establish-gcp-vpc-peering-or-aws-privatelink) to finish setting up VPC Peering for your cluster. - -If you don't want to enable VPC Peering, leave the default selection of **Use the default IP range** as is and click **Next: Capacity**. + After your cluster is created, refer to [Establish private connectivity]({% link cockroachcloud/connect-to-your-cluster.md %}#gcp-vpc-peering) to finish setting up VPC Peering for your cluster. ## Step 5. Configure cluster capacity diff --git a/src/current/cockroachcloud/network-authorization.md b/src/current/cockroachcloud/network-authorization.md index de0cae01fc8..606d73959b2 100644 --- a/src/current/cockroachcloud/network-authorization.md +++ b/src/current/cockroachcloud/network-authorization.md @@ -16,7 +16,11 @@ You can authorize network access to your cluster by: - [Adding an authorized range of public IP addresses](#ip-allowlisting). - Setting up private connectivity so that inbound connections to your cluster from your cloud tenant are made over the cloud provider's private network rather than over the public internet, for enhanced network security and reduced network latency. If you use IP allowlisting rules together with private connectivity, private networks do not need to be added to that allowlist. - For CockroachDB {{ site.data.products.dedicated }} clusters deployed on GCP, refer to [Google Cloud Platform (GCP) Virtual Private Cloud (VPC) peering](#vpc-peering). For CockroachDB {{ site.data.products.dedicated }} clusters or multi-region CockroachDB {{ site.data.products.serverless }} clusters deployed on AWS, refer to [Amazon Web Service (AWS) PrivateLink](#aws-privatelink). + - CockroachDB {{ site.data.products.dedicated }} clusters deployed on GCP can connect privately using GCP Private Service Connect (PSC) (Preview) or GCP VPC peering. PSC allows you to selectively connect your cluster to a VPC within your Google Cloud project, while VPC Peering allows you to peer your cluster's VPC managed by Cockroach Cloud's VPC with a VPC within your Google Cloud project. + - CockroachDB {{ site.data.products.dedicated }} clusters deployed on AWS, as well as multi-region CockroachDB {{ site.data.products.serverless }} clusters deployed on AWS, can connect privately using AWS PrivateLink, which allows you to connect your cluster's VPC managed by CockroachDB {{ site.data.products.cloud }} with a VPC within your AWS account. + + For detailed instructions, refer to [Establish private connectivity]({% link cockroachcloud/connect-to-your-cluster.md %}#establish-private-connectivity). + {{site.data.alerts.callout_info}} {% include cockroachcloud/cdc/kafka-vpc-limitation.md %} @@ -24,11 +28,11 @@ You can authorize network access to your cluster by: **Prerequisite**: {% include cockroachcloud/cluster-operator-prereq.md %} -Use GCP VPC Peering or AWS PrivateLink if: +Use private connectivity if: - You need to allowlist more defined IP address ranges than the [default maximum](#ip-allowlisting). - Your servers’ IP addresses are not static. -- You want to avoid exposing your cluster to the public internet. +- You have a requirement to avoid exposing your cluster to the public internet. Learn more about [Private Clusters (Preview)]({% link cockroachcloud/private-clusters.md %}), which offer enhanced cluster security. A private cluster's nodes have no public IP addresses. @@ -72,29 +76,6 @@ Refer to: - [Connect to a CockroachDB {{ site.data.products.serverless }} Cluster: Authorize your network]({% link cockroachcloud/connect-to-a-serverless-cluster.md %}#authorize-your-network). - [Connect to a CockroachDB {{ site.data.products.dedicated }} Cluster: Authorize your network]({% link cockroachcloud/connect-to-your-cluster.md %}#authorize-your-network). -## VPC peering - -If you select GCP as your cloud provider while [creating your CockroachDB {{ site.data.products.dedicated }} cluster]({% link cockroachcloud/create-your-cluster.md %}), you can use [Google Cloud's VPC Network Peering](https://cloud.google.com/vpc/docs/vpc-peering) feature to connect your GCP application directly to your CockroachDB {{ site.data.products.dedicated }} cluster using internal IP addresses, thus limiting exposure to the public network and reducing network latency. - -GKE users should note that we recommend deploying your application to a VPC-native cluster that uses [alias IP addresses](https://cloud.google.com/kubernetes-engine/docs/how-to/alias-ips). If you are connecting from a [routes-based GKE cluster](https://cloud.google.com/kubernetes-engine/docs/how-to/routes-based-cluster) instead, you will have to [export custom routes](https://cloud.google.com/vpc/docs/vpc-peering#importing-exporting-routes). CockroachDB {{ site.data.products.cloud }} will import your custom routes by default. - -Setting up a VPC peering connection between your CockroachDB {{ site.data.products.dedicated }} cluster and GCP application is a two-part process: - -1. [Configure the IP range and size while creating the CockroachDB {{ site.data.products.dedicated }} cluster]({% link cockroachcloud/create-your-cluster.md %}#step-4-enable-vpc-peering-optional) -1. [Establish a VPC Peering connection after creating the cluster]({% link cockroachcloud/connect-to-your-cluster.md %}#establish-gcp-vpc-peering-or-aws-privatelink) - -{{site.data.alerts.callout_info}} -Self-service VPC peering setup is not supported for CockroachDB {{ site.data.products.dedicated }} clusters deployed before March 5, 2020. If your cluster was deployed before March 5, 2020, you will have to [create a new cluster]({% link cockroachcloud/create-your-cluster.md %}) with VPC peering enabled, then [export your data]({% link cockroachcloud/use-managed-service-backups.md %}) from the old cluster to the new cluster. If your cluster was deployed on or after March 5, 2020, it will be locked into CockroachDB {{ site.data.products.dedicated }}'s default IP range (`172.28.0.0/14`) unless you explicitly configured a different IP range during cluster creation. -{{site.data.alerts.end}} - -## AWS PrivateLink - -If your cloud provider is AWS, you can use [AWS PrivateLink](https://aws.amazon.com/privatelink/) to securely connect your AWS application with your CockroachDB {{ site.data.products.dedicated }} or multi-region CockroachDB {{ site.data.products.serverless }} clusters using private endpoints. Like VPC Peering, a PrivateLink connection will prevent your traffic from being exposed to the public internet and reduce network latency. - -Refer to: -- [Managing AWS PrivateLink for a CockroachDB {{ site.data.products.dedicated }} Cluster]({% link cockroachcloud/aws-privatelink.md %}) -- [Managing AWS PrivateLink for a multi-region CockroachDB {{ site.data.products.serverless }} Cluster]({% link cockroachcloud/aws-privatelink.md %}?filters=serverless) - ## DB Console The DB Console provides details about your cluster and database configuration, and helps you optimize cluster performance. diff --git a/src/current/cockroachcloud/security-overview.md b/src/current/cockroachcloud/security-overview.md index abd67ef9f72..9c6ba2e1869 100644 --- a/src/current/cockroachcloud/security-overview.md +++ b/src/current/cockroachcloud/security-overview.md @@ -106,7 +106,7 @@ The following table summarizes the CockroachDB {{ site.data.products.cloud }} se Cloud Organization users with fine-grained access roles - Network Security + Network Security ✓ ✓ SQL-level configuration of allowed authentication attempts by IP address @@ -129,12 +129,17 @@ The following table summarizes the CockroachDB {{ site.data.products.cloud }} se   ✓ - VPC Peering for GCP clusters + Private Service Connect (PSC) (Preview) for GCP clusters   ✓ - PrivateLink for AWS clusters + VPC Peering for GCP clusters + + + ✓1 + ✓ + PrivateLink for AWS clusters. Non-Repudiation @@ -154,3 +159,5 @@ The following table summarizes the CockroachDB {{ site.data.products.cloud }} se CockroachDB, as a distributed SQL database, is uniquely resilient by nature. A cluster can tolerate node failures as long as the majority of nodes remain functional. See Disaster Recovery. + +1: AWS PrivateLink is in preview for multi-region Serverless clusters, and is not supported for single-region Serverless clusters. Refer to Manage AWS PrivateLink. diff --git a/src/current/v23.1/security-reference/security-overview.md b/src/current/v23.1/security-reference/security-overview.md index 202f7a6a5e4..98fb7e3ad06 100644 --- a/src/current/v23.1/security-reference/security-overview.md +++ b/src/current/v23.1/security-reference/security-overview.md @@ -165,11 +165,11 @@ CockroachDB {{ site.data.products.core }} here refers to the situation of a user Network-level Configuration of allowed IP addresses -   + ✓1 ✓ ✓ ✓ - VPC Peering for GCP clusters and AWS PrivateLink for AWS clusters + Private Service Connect (PSC) (Preview) or VPC Peering for GCP clusters and AWS PrivateLink for AWS clusters Non-Repudiation @@ -188,3 +188,5 @@ CockroachDB {{ site.data.products.core }} here refers to the situation of a user CockroachDB, as a distributed SQL database, is uniquely resilient by nature. A cluster can tolerate node failures as long as the majority of nodes remain functional. See Disaster Recovery. + +1: AWS PrivateLink is in preview for multi-region Serverless clusters, and is not supported for single-region Serverless clusters. Refer to Manage AWS PrivateLink. diff --git a/src/current/v23.2/security-reference/security-overview.md b/src/current/v23.2/security-reference/security-overview.md index 202f7a6a5e4..98fb7e3ad06 100644 --- a/src/current/v23.2/security-reference/security-overview.md +++ b/src/current/v23.2/security-reference/security-overview.md @@ -165,11 +165,11 @@ CockroachDB {{ site.data.products.core }} here refers to the situation of a user Network-level Configuration of allowed IP addresses -   + ✓1 ✓ ✓ ✓ - VPC Peering for GCP clusters and AWS PrivateLink for AWS clusters + Private Service Connect (PSC) (Preview) or VPC Peering for GCP clusters and AWS PrivateLink for AWS clusters Non-Repudiation @@ -188,3 +188,5 @@ CockroachDB {{ site.data.products.core }} here refers to the situation of a user CockroachDB, as a distributed SQL database, is uniquely resilient by nature. A cluster can tolerate node failures as long as the majority of nodes remain functional. See Disaster Recovery. + +1: AWS PrivateLink is in preview for multi-region Serverless clusters, and is not supported for single-region Serverless clusters. Refer to Manage AWS PrivateLink. diff --git a/src/current/v24.1/security-reference/security-overview.md b/src/current/v24.1/security-reference/security-overview.md index 202f7a6a5e4..9ba3e7b937f 100644 --- a/src/current/v24.1/security-reference/security-overview.md +++ b/src/current/v24.1/security-reference/security-overview.md @@ -165,11 +165,11 @@ CockroachDB {{ site.data.products.core }} here refers to the situation of a user Network-level Configuration of allowed IP addresses -   + ✓1 ✓ ✓ ✓ - VPC Peering for GCP clusters and AWS PrivateLink for AWS clusters + GCP Private Service Connect (PSC) (Preview) or VPC Peering for GCP clusters and AWS PrivateLink for AWS clusters Non-Repudiation @@ -188,3 +188,5 @@ CockroachDB {{ site.data.products.core }} here refers to the situation of a user CockroachDB, as a distributed SQL database, is uniquely resilient by nature. A cluster can tolerate node failures as long as the majority of nodes remain functional. See Disaster Recovery. + +1: AWS PrivateLink is in preview for multi-region Serverless clusters, and is not supported for single-region Serverless clusters. Refer to Manage AWS PrivateLink. From dd013e90ab4f56c7a0892f815ca64d84766d16eb Mon Sep 17 00:00:00 2001 From: Ryan Kuo <8740013+taroface@users.noreply.github.com> Date: Mon, 20 May 2024 14:04:56 -0400 Subject: [PATCH 11/30] update and clean up migration docs (#18527) * update Migration Overview with LMS and other tweaks * update shadowing caveats and some terminology * update Verify docs * reinstate (still-outdated) Migrate from Oracle page * update & rebrand SCT doc -> MOLT SCT * fix side nav --------- Co-authored-by: Matt Linville (he/him) --- src/current/_data/redirects.yml | 6 --- .../_includes/v23.1/sidebar-data/migrate.json | 17 +++++-- .../_includes/v23.2/sidebar-data/migrate.json | 19 ++++++-- .../_includes/v24.1/sidebar-data/migrate.json | 19 ++++++-- src/current/cockroachcloud/migrations-page.md | 14 ++---- src/current/v23.1/live-migration-service.md | 2 +- src/current/v23.1/migrate-from-oracle.md | 6 +-- src/current/v23.2/live-migration-service.md | 2 +- src/current/v23.2/migrate-from-oracle.md | 6 +-- src/current/v23.2/migration-overview.md | 47 +++++++++---------- src/current/v24.1/live-migration-service.md | 2 +- src/current/v24.1/migrate-from-mysql.md | 2 +- src/current/v24.1/migrate-from-oracle.md | 4 +- src/current/v24.1/migration-overview.md | 47 +++++++++---------- src/current/v24.1/molt-verify.md | 13 +++-- 15 files changed, 116 insertions(+), 90 deletions(-) diff --git a/src/current/_data/redirects.yml b/src/current/_data/redirects.yml index 5df4a678b5c..e210ae50b86 100644 --- a/src/current/_data/redirects.yml +++ b/src/current/_data/redirects.yml @@ -79,12 +79,6 @@ # Pages undergoing maintenance -- destination: migration-overview.md - sources: - - migrate-from-oracle.md - temporary: true - versions: ['v21.2', 'v22.1', 'v22.2', 'v23.1'] - # Renamed pages - destination: admin-ui-overview.md diff --git a/src/current/_includes/v23.1/sidebar-data/migrate.json b/src/current/_includes/v23.1/sidebar-data/migrate.json index 949b2754d81..92a72d90371 100644 --- a/src/current/_includes/v23.1/sidebar-data/migrate.json +++ b/src/current/_includes/v23.1/sidebar-data/migrate.json @@ -9,7 +9,7 @@ ] }, { - "title": "Migration Tools", + "title": "MOLT Tools", "items": [ { "title": "Schema Conversion Tool", @@ -18,7 +18,7 @@ ] }, { - "title": "MOLT Verify", + "title": "Verify", "urls": [ "/${VERSION}/molt-verify.html" ] @@ -28,7 +28,12 @@ "urls": [ "/${VERSION}/live-migration-service.html" ] - }, + } + ] + }, + { + "title": "Third-Party Migration Tools", + "items": [ { "title": "AWS DMS", "urls": [ @@ -120,6 +125,12 @@ "/${VERSION}/migrate-from-mysql.html" ] }, + { + "title": "Migrate from Oracle", + "urls": [ + "/${VERSION}/migrate-from-oracle.html" + ] + }, { "title": "Migration Strategy: Lift and Shift", "urls": [ diff --git a/src/current/_includes/v23.2/sidebar-data/migrate.json b/src/current/_includes/v23.2/sidebar-data/migrate.json index 9b87e0c2f31..5b6338a628b 100644 --- a/src/current/_includes/v23.2/sidebar-data/migrate.json +++ b/src/current/_includes/v23.2/sidebar-data/migrate.json @@ -9,7 +9,7 @@ ] }, { - "title": "Migration Tools", + "title": "MOLT Tools", "items": [ { "title": "Schema Conversion Tool", @@ -18,13 +18,13 @@ ] }, { - "title": "MOLT Fetch", + "title": "Fetch", "urls": [ "/${VERSION}/molt-fetch.html" ] }, { - "title": "MOLT Verify", + "title": "Verify", "urls": [ "/${VERSION}/molt-verify.html" ] @@ -34,7 +34,12 @@ "urls": [ "/${VERSION}/live-migration-service.html" ] - }, + } + ] + }, + { + "title": "Third-Party Migration Tools", + "items": [ { "title": "AWS DMS", "urls": [ @@ -126,6 +131,12 @@ "/${VERSION}/migrate-from-mysql.html" ] }, + { + "title": "Migrate from Oracle", + "urls": [ + "/${VERSION}/migrate-from-oracle.html" + ] + }, { "title": "Migration Strategy: Lift and Shift", "urls": [ diff --git a/src/current/_includes/v24.1/sidebar-data/migrate.json b/src/current/_includes/v24.1/sidebar-data/migrate.json index 9b87e0c2f31..5b6338a628b 100644 --- a/src/current/_includes/v24.1/sidebar-data/migrate.json +++ b/src/current/_includes/v24.1/sidebar-data/migrate.json @@ -9,7 +9,7 @@ ] }, { - "title": "Migration Tools", + "title": "MOLT Tools", "items": [ { "title": "Schema Conversion Tool", @@ -18,13 +18,13 @@ ] }, { - "title": "MOLT Fetch", + "title": "Fetch", "urls": [ "/${VERSION}/molt-fetch.html" ] }, { - "title": "MOLT Verify", + "title": "Verify", "urls": [ "/${VERSION}/molt-verify.html" ] @@ -34,7 +34,12 @@ "urls": [ "/${VERSION}/live-migration-service.html" ] - }, + } + ] + }, + { + "title": "Third-Party Migration Tools", + "items": [ { "title": "AWS DMS", "urls": [ @@ -126,6 +131,12 @@ "/${VERSION}/migrate-from-mysql.html" ] }, + { + "title": "Migrate from Oracle", + "urls": [ + "/${VERSION}/migrate-from-oracle.html" + ] + }, { "title": "Migration Strategy: Lift and Shift", "urls": [ diff --git a/src/current/cockroachcloud/migrations-page.md b/src/current/cockroachcloud/migrations-page.md index 2655fb9da3d..af9f7bcae63 100644 --- a/src/current/cockroachcloud/migrations-page.md +++ b/src/current/cockroachcloud/migrations-page.md @@ -1,6 +1,6 @@ --- -title: Use the Schema Conversion Tool -summary: Use the Schema Conversion Tool to begin a database migration to CockroachDB. +title: Use the MOLT Schema Conversion Tool +summary: Use the MOLT Schema Conversion Tool to begin a database migration to CockroachDB. toc: true cloud: true docs_area: migrate @@ -8,11 +8,11 @@ docs_area: migrate {% capture version_prefix %}{{site.current_cloud_version}}/{% endcapture %} -The **Migrations** page on the CockroachDB {{ site.data.products.cloud }} Console features a **Schema Conversion Tool** that helps you: +The **Migrations** page on the CockroachDB {{ site.data.products.cloud }} Console features the MOLT Schema Conversion Tool. This tool helps you: - Convert a schema from a PostgreSQL, MySQL, Oracle, or Microsoft SQL Server database for use with CockroachDB. -- [Export the converted schema.](#export-the-schema) {% include cockroachcloud/migration/sct-self-hosted.md %} - Migrate directly to a CockroachDB {{ site.data.products.cloud }} database that uses the converted schema. You specify the target database and database owner when [migrating the schema](#migrate-the-schema). +- [Export the converted schema.](#export-the-schema) {% include cockroachcloud/migration/sct-self-hosted.md %} {{site.data.alerts.callout_info}} The **Migrations** page is used to convert a schema for use with CockroachDB and to create a new database that uses the schema. It does not include moving data to the new database. For details on all steps required to complete a database migration, see the [Migration Overview]({% link {{version_prefix}}migration-overview.md %}). @@ -102,10 +102,6 @@ The dump file must be smaller than 4 MB. `INSERT` and `COPY` statements will be
### Use Credentials -{{site.data.alerts.callout_info}} -{% include feature-phases/preview.md %} -{{site.data.alerts.end}} - The Schema Conversion Tool can connect directly to a PostgreSQL or MySQL database to obtain the schema. To add a schema using credentials: 1. In step 2 of the **Add SQL Schema** dialog, click **Use Credential**. Select the credentials to use. If the list is empty, this is because no credentials have been created for the selected database type. You can [add credentials](#add-database-credentials) directly from the pulldown menu. @@ -125,7 +121,7 @@ Credentials can be added for PostgreSQL and MySQL databases. 1. Provide the following information: - A **Credential Name** to associate with the credentials. - The **Dialect** of the database you are connecting to. Currently, PostgreSQL and MySQL are supported. - - The **Host** for accessing the database. For example, `migrations.cockroachlabs.com`. Local hosts such as `localhost` and `127.0.0.1` are not allowed. + - The **Host** (i.e., hostname or IP address) for accessing the database. Exclude the protocol (e.g., `tcp://`). For example, `migrations.cockroachlabs.com`. Local hosts such as `localhost` and `127.0.0.1` are not allowed. - The **Port** for accessing the database. - A valid **Username** and **Password** for accessing the database. - The **Database Name** to access. The Schema Conversion Tool will obtain the schema for this database. diff --git a/src/current/v23.1/live-migration-service.md b/src/current/v23.1/live-migration-service.md index 15f1ec55e75..dec3c51062d 100644 --- a/src/current/v23.1/live-migration-service.md +++ b/src/current/v23.1/live-migration-service.md @@ -9,7 +9,7 @@ docs_area: migrate {% include feature-phases/preview.md %} {{site.data.alerts.end}} -MOLT LMS (Live Migration Service) is used to perform a [live migration]({% link {{ page.version.version }}/migration-overview.md %}#minimal-downtime) to CockroachDB. +MOLT LMS (Live Migration Service) is used during a [live migration]({% link {{ page.version.version }}/migration-overview.md %}#minimal-downtime) to CockroachDB. The LMS is a self-hosted, horizontally scalable proxy that routes traffic between an application, a source database, and a target CockroachDB database. You use the LMS to control which database, as the "source of truth", is serving reads and writes to an application. You can optionally configure the LMS to [shadow production traffic](#shadowing-modes) from the source database and validate the query results on CockroachDB. When you have sufficiently tested your application and are confident with its consistency and performance on CockroachDB, you use the LMS to [perform the cutover](#perform-a-cutover) to CockroachDB. diff --git a/src/current/v23.1/migrate-from-oracle.md b/src/current/v23.1/migrate-from-oracle.md index 7606c9d9521..0709925396c 100644 --- a/src/current/v23.1/migrate-from-oracle.md +++ b/src/current/v23.1/migrate-from-oracle.md @@ -6,10 +6,10 @@ docs_area: migrate --- {{site.data.alerts.callout_danger}} -The instructions on this page require updates. We currently recommend [using AWS Database Migration Service (DMS) to migrate data]({% link {{ page.version.version }}/aws-dms.md %}) from Oracle to CockroachDB. You can also [migrate from CSV]({% link {{ page.version.version }}/migrate-from-csv.md %}). -{{site.data.alerts.end}} +The instructions on this page are outdated. Use the [Schema Conversion Tool]({% link cockroachcloud/migrations-page.md %}?filters=oracle) to convert an Oracle schema into a compatible CockroachDB schema, and a tool such as [AWS Database Migration Service (DMS)]({% link {{ page.version.version }}/aws-dms.md %}) or [Qlik]({% link {{ page.version.version }}/qlik.md %}) to migrate data from Oracle to CockroachDB. -This page has instructions for migrating data from Oracle into CockroachDB by [importing]({% link {{ page.version.version }}/import.md %}) CSV files. Note that `IMPORT` only works for creating new tables. For information on how to add CSV data to existing tables, see [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}). +`IMPORT` is deprecated. To move data into CockroachDB, use [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}). +{{site.data.alerts.end}} To illustrate this process, we use the following sample data and tools: diff --git a/src/current/v23.2/live-migration-service.md b/src/current/v23.2/live-migration-service.md index e106034bd30..7f619fd3da0 100644 --- a/src/current/v23.2/live-migration-service.md +++ b/src/current/v23.2/live-migration-service.md @@ -9,7 +9,7 @@ docs_area: migrate {% include feature-phases/preview.md %} {{site.data.alerts.end}} -MOLT LMS (Live Migration Service) is used to perform a [live migration]({% link {{ page.version.version }}/migration-overview.md %}#minimal-downtime) to CockroachDB. +MOLT LMS (Live Migration Service) is used during a [live migration]({% link {{ page.version.version }}/migration-overview.md %}#minimal-downtime) to CockroachDB. The LMS is a self-hosted, horizontally scalable proxy that routes traffic between an application, a source database, and a target CockroachDB database. You use the LMS to control which database, as the "source of truth", is serving reads and writes to an application. You can optionally configure the LMS to [shadow production traffic](#shadowing-modes) from the source database and validate the query results on CockroachDB. When you have sufficiently tested your application and are confident with its consistency and performance on CockroachDB, you use the LMS to [perform the cutover](#perform-a-cutover) to CockroachDB. diff --git a/src/current/v23.2/migrate-from-oracle.md b/src/current/v23.2/migrate-from-oracle.md index 7606c9d9521..ed8e3f901d9 100644 --- a/src/current/v23.2/migrate-from-oracle.md +++ b/src/current/v23.2/migrate-from-oracle.md @@ -6,10 +6,10 @@ docs_area: migrate --- {{site.data.alerts.callout_danger}} -The instructions on this page require updates. We currently recommend [using AWS Database Migration Service (DMS) to migrate data]({% link {{ page.version.version }}/aws-dms.md %}) from Oracle to CockroachDB. You can also [migrate from CSV]({% link {{ page.version.version }}/migrate-from-csv.md %}). -{{site.data.alerts.end}} +The instructions on this page are outdated. Use the [Schema Conversion Tool]({% link cockroachcloud/migrations-page.md %}?filters=oracle) to convert an Oracle schema into a compatible CockroachDB schema, and a tool such as [AWS Database Migration Service (DMS)]({% link {{ page.version.version }}/aws-dms.md %}) or [Qlik]({% link {{ page.version.version }}/qlik.md %}) to migrate data from Oracle to CockroachDB. -This page has instructions for migrating data from Oracle into CockroachDB by [importing]({% link {{ page.version.version }}/import.md %}) CSV files. Note that `IMPORT` only works for creating new tables. For information on how to add CSV data to existing tables, see [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}). +Note that `IMPORT` is deprecated. To move data into CockroachDB, use [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}). +{{site.data.alerts.end}} To illustrate this process, we use the following sample data and tools: diff --git a/src/current/v23.2/migration-overview.md b/src/current/v23.2/migration-overview.md index 3912952a489..3e1372af46a 100644 --- a/src/current/v23.2/migration-overview.md +++ b/src/current/v23.2/migration-overview.md @@ -62,17 +62,17 @@ A lift-and-shift approach is the most straightforward. However, it's important t - *Reduced functionality* takes some, but not all, application functionality offline. For example, you can disable writes but not reads while you migrate the application data, and queue data to be written after completing the migration. -For an overview of lift-and-shift migrations to CockroachDB, see [Lift and Shift](#lift-and-shift). For considerations and details about the pros and cons of this approach, see [Migration Strategy: Lift and Shift]({% link {{ page.version.version }}/migration-strategy-lift-and-shift.md %}). +For an overview of lift-and-shift migrations to CockroachDB, see [Lift and Shift](#lift-and-shift). #### Minimal downtime -If your application cannot tolerate downtime, then you should aim for a "zero-downtime" approach. "Zero" means that downtime is reduced to either an absolute minimum or zero, such that users do not notice the migration. +If your application cannot tolerate downtime, then you should aim for a "zero-downtime" approach. This reduces downtime to an absolute minimum, such that users do not notice the migration. The minimum possible downtime depends on whether you can tolerate inconsistency in the migrated data: -- *Consistent* migrations reduce downtime to an absolute minimum (i.e., from 30 seconds to sub-seconds) while keeping data synchronized between the source database and CockroachDB. **Consistency requires downtime.** In this approach, downtime occurs right before [cutover](#cutover-strategy), as you drain the remaining transactions from the source database to CockroachDB. +- Migrations performed using *consistent cutover* reduce downtime to an absolute minimum (i.e., seconds or sub-seconds) while keeping data synchronized between the source database and CockroachDB. **Consistency requires downtime.** In this approach, downtime occurs right before [cutover](#cutover-strategy), as you drain the remaining transactions from the source database to CockroachDB. -- *Inconsistent* migrations can reduce downtime to zero. These require the most preparation, and typically allow read/write traffic to both databases for at least a small amount of time, thereby sacrificing consistency for availability. {% comment %}You can use the CockroachDB Live Migration Service (MOLT LMS) to run application queries simultaneously on your source database and CockroachDB.{% endcomment %} Without stopping application traffic, you perform an immediate [cutover](#cutover-strategy), while assuming that some writes will not be replicated to CockroachDB. You may want to manually reconcile these data inconsistencies after switching over. +- Migrations performed using *immediate cutover* can reduce downtime to zero. These require the most preparation, and typically allow read/write traffic to both databases for at least a short period of time, sacrificing consistency for availability. {% comment %}You can use the CockroachDB Live Migration Service (MOLT LMS) to run application queries simultaneously on your source database and CockroachDB.{% endcomment %} Without stopping application traffic, you perform an **immediate** [cutover](#cutover-strategy), while assuming that some writes will not be replicated to CockroachDB. You may want to manually reconcile these data inconsistencies after switching over. For an overview of zero-downtime migrations to CockroachDB, see [Zero Downtime](#zero-downtime). {% comment %}For details, see [Migration Strategy: Zero Downtime](migration-strategy-zero-downtime).{% endcomment %} @@ -245,9 +245,11 @@ Then import the converted schema to a CockroachDB cluster: Before moving data, Cockroach Labs recommends [dropping any indexes]({% link {{ page.version.version }}/drop-index.md %}) on the CockroachDB database. The indexes can be [recreated]({% link {{ page.version.version }}/create-index.md %}) after the data is loaded. Doing so will optimize performance. {{site.data.alerts.end}} -After [converting the schema](#convert-the-schema), load your data into CockroachDB so that you can [test your application queries](#validate-queries). Then use one of the following methods to migrate the data (you may need to use additional tooling to extract and/or convert the data to an appropriate file format): +After [converting the schema](#convert-the-schema), load your data into CockroachDB so that you can [test your application queries](#validate-queries). Then use [MOLT Fetch]({% link {{ page.version.version }}/molt-fetch.md %}) to move the source data to CockroachDB. -- {% include {{ page.version.version }}/migration/load-data-import-into.md %} Typically, initial data loading during a database migration will not be running concurrently with application traffic, so the fact that `IMPORT INTO` takes the table offline may not have any observable availability impact. +Alternatively, you can use one of the following methods to migrate the data. Additional tooling may be required to extract or convert the data to a supported file format. + +- {% include {{ page.version.version }}/migration/load-data-import-into.md %} Typically during a migration, data is initially loaded before foreground application traffic begins to be served, so the impact of taking the table offline when running `IMPORT INTO` may be minimal. - {% include {{ page.version.version }}/migration/load-data-third-party.md %} Within the tool, you can select the database tables to migrate to the test cluster. - {% include {{ page.version.version }}/migration/load-data-copy-from.md %} @@ -259,9 +261,9 @@ Note that CockroachDB defaults to the [`SERIALIZABLE`]({% link {{ page.version.v ##### Shadowing -You can "shadow" your production workload by executing your source SQL statements on CockroachDB in parallel. The [CockroachDB Live Migration Service (LMS)]({% link {{ page.version.version }}/live-migration-service.md %}) can perform shadowing. You can then [test the queries](#test-query-results-and-performance) on CockroachDB for consistency, performance, and potential issues with the migration. +You can "shadow" your production workload by executing your source SQL statements on CockroachDB in parallel. You can then [validate the queries](#test-query-results-and-performance) on CockroachDB for consistency, performance, and potential issues with the migration. -Shadowing may not be necessary or practical for your workload. For example, because transactions are serialized on CockroachDB, this will limit your ability to validate the performance of high-throughput workloads. +The [CockroachDB Live Migration Service (MOLT LMS)]({% link {{ page.version.version }}/live-migration-service.md %}) can [perform shadowing]({% link {{ page.version.version }}/live-migration-service.md %}#shadowing-modes). This is intended only for [testing](#test-query-results-and-performance) or [performing a dry run](#perform-a-dry-run). Shadowing should **not** be used in production when performing a [live migration](#zero-downtime). ##### Test query results and performance @@ -310,35 +312,32 @@ Using this method, consistency is achieved by only performing the cutover once a The following is a high-level overview of the migration steps. For considerations and details about the pros and cons of this approach, see [Migration Strategy: Lift and Shift]({% link {{ page.version.version }}/migration-strategy-lift-and-shift.md %}). 1. Stop application traffic to your source database. **This begins downtime.** -1. Move data in one of the following ways: - - {% include {{ page.version.version }}/migration/load-data-import-into.md %} - - {% include {{ page.version.version }}/migration/load-data-third-party.md %} - - {% include {{ page.version.version }}/migration/load-data-copy-from.md %} -1. After the data is migrated, you can use [MOLT Verify]({% link {{ page.version.version }}/molt-verify.md %}) to validate the consistency of the data between the source database and CockroachDB. +1. Use [MOLT Fetch]({% link {{ page.version.version }}/molt-fetch.md %}) to move the source data to CockroachDB. +1. After the data is migrated, use [MOLT Verify]({% link {{ page.version.version }}/molt-verify.md %}) to validate the consistency of the data between the source database and CockroachDB. 1. Perform a [cutover](#cutover-strategy) by resuming application traffic, now to CockroachDB. {% comment %}1. If you want the ability to [roll back](#all-at-once-rollback) the migration, replicate data back to the source database.{% endcomment %} ### Zero Downtime -Using this method, downtime is minimized by performing the cutover while writes are still being replicated from the source database to CockroachDB. Inconsistencies are resolved through manual reconciliation. - -The following is a high-level overview of the migration steps. {% comment %}For details on this migration strategy, see [Migration Strategy: Zero Downtime]({% link {{ page.version.version }}/migration-strategy-lift-and-shift.md %}).{% endcomment %} +During a "live migration", downtime is minimized by performing the cutover while writes are still being replicated from the source database to CockroachDB. Inconsistencies are resolved through manual reconciliation. -{% comment %}You can use the CockroachDB Live Migration Service (MOLT LMS) to run application queries simultaneously on your source database and CockroachDB.{% endcomment %} +The following is a high-level overview of the migration steps. The two approaches are mutually exclusive, and each has [tradeoffs](#minimal-downtime). {% comment %}For details on this migration strategy, see [Migration Strategy: Zero Downtime]({% link {{ page.version.version }}/migration-strategy-lift-and-shift.md %}).{% endcomment %} To prioritize consistency and minimize downtime: -1. {% include {{ page.version.version }}/migration/load-data-third-party.md %} Select the tool's option to **replicate ongoing changes** after performing the initial load of data into CockroachDB. -1. As the data is migrating, you can use [MOLT Verify]({% link {{ page.version.version }}/molt-verify.md %}) to validate the consistency of the data between the source database and CockroachDB. -1. Once nearly all data from your source database has been moved to CockroachDB (for example, with a <1 second delay or <1000 rows), stop application traffic to your source database. **This begins downtime.** -1. Wait for replication to CockroachDB to complete. -1. Perform a [cutover](#cutover-strategy) by resuming application traffic, now to CockroachDB. +1. Set up the [CockroachDB Live Migration Service (MOLT LMS)]({% link {{ page.version.version }}/live-migration-service.md %}) to proxy for application traffic between your source database and CockroachDB. Do **not** shadow the application traffic. +1. Use [MOLT Fetch]({% link {{ page.version.version }}/molt-fetch.md %}) to move the source data to CockroachDB. Use the tool to [**replicate ongoing changes**]({% link {{ page.version.version }}/molt-fetch.md %}#replication) after it performs the initial load of data into CockroachDB. +1. As the data is migrating, use [MOLT Verify]({% link {{ page.version.version }}/molt-verify.md %}) to validate the consistency of the data between the source database and CockroachDB. +1. After nearly all data from your source database has been moved to CockroachDB (for example, with a <1-second delay or <1000 rows), use MOLT LMS to begin a [*consistent cutover*]({% link {{ page.version.version }}/live-migration-service.md %}#consistent-cutover) and stop application traffic to your source database. **This begins downtime.** +1. Wait for MOLT Fetch to finish replicating changes to CockroachDB. +1. Use MOLT LMS to commit the [consistent cutover]({% link {{ page.version.version }}/live-migration-service.md %}#consistent-cutover). This resumes application traffic, now to CockroachDB. To achieve zero downtime with inconsistency: -1. {% include {{ page.version.version }}/migration/load-data-third-party.md %} Select the tool's option to replicate ongoing changes after performing the initial load of data into CockroachDB. +1. Set up the [CockroachDB Live Migration Service (MOLT LMS)]({% link {{ page.version.version }}/live-migration-service.md %}) to proxy for application traffic between your source database and CockroachDB. Use a [shadowing mode]({% link {{ page.version.version }}/live-migration-service.md %}#shadowing-modes) to run application queries simultaneously on your source database and CockroachDB. +1. Use [MOLT Fetch]({% link {{ page.version.version }}/molt-fetch.md %}) to move the source data to CockroachDB. Use the tool to **replicate ongoing changes** after performing the initial load of data into CockroachDB. 1. As the data is migrating, you can use [MOLT Verify]({% link {{ page.version.version }}/molt-verify.md %}) to validate the consistency of the data between the source database and CockroachDB. -1. Once nearly all data from your source database has been moved to CockroachDB (for example, with a <1 second delay or <1000 rows), perform a [cutover](#cutover-strategy) by pointing application traffic to CockroachDB. +1. After nearly all data from your source database has been moved to CockroachDB (for example, with a <1 second delay or <1000 rows), perform an [*immediate cutover*](#cutover-strategy) by pointing application traffic to CockroachDB. 1. Manually reconcile any inconsistencies caused by writes that were not replicated during the cutover. 1. Close the connection to the source database when you are ready to finish the migration. diff --git a/src/current/v24.1/live-migration-service.md b/src/current/v24.1/live-migration-service.md index c3b22310421..46befbfc939 100644 --- a/src/current/v24.1/live-migration-service.md +++ b/src/current/v24.1/live-migration-service.md @@ -9,7 +9,7 @@ docs_area: migrate {% include feature-phases/preview.md %} {{site.data.alerts.end}} -MOLT LMS (Live Migration Service) is used to perform a [live migration]({% link {{ page.version.version }}/migration-overview.md %}#minimal-downtime) to CockroachDB. +MOLT LMS (Live Migration Service) is used during a [live migration]({% link {{ page.version.version }}/migration-overview.md %}#minimal-downtime) to CockroachDB. The LMS is a self-hosted, horizontally scalable proxy that routes traffic between an application, a source database, and a target CockroachDB database. You use the LMS to control which database, as the "source of truth", is serving reads and writes to an application. You can optionally configure the LMS to [shadow production traffic](#shadowing-modes) from the source database and validate the query results on CockroachDB. When you have sufficiently tested your application and are confident with its consistency and performance on CockroachDB, you use the LMS to [perform the cutover](#perform-a-cutover) to CockroachDB. diff --git a/src/current/v24.1/migrate-from-mysql.md b/src/current/v24.1/migrate-from-mysql.md index 18150b7df1e..71485a01e5b 100644 --- a/src/current/v24.1/migrate-from-mysql.md +++ b/src/current/v24.1/migrate-from-mysql.md @@ -158,7 +158,7 @@ Use the [Schema Conversion Tool](https://www.cockroachlabs.com/docs/cockroachclo Click **Save**. - This is a workaround to prevent [data validation](#step-3-validate-the-migrated-data) from failing due to collation mismatches. For more details, see the [MOLT Verify] ({% link {{ page.version.version }}/molt-verify.md %}#limitations) documentation. + This is a workaround to prevent [data validation](#step-3-validate-the-migrated-data) from failing due to collation mismatches. For more details, see the [MOLT Verify] ({% link {{ page.version.version }}/molt-verify.md %}#known-limitations) documentation. 1. Click [**Migrate Schema**](https://www.cockroachlabs.com/docs/cockroachcloud/migrations-page?filters=mysql#migrate-the-schema) to create a new {{ site.data.products.serverless }} cluster with the converted schema. Name the database `world`. diff --git a/src/current/v24.1/migrate-from-oracle.md b/src/current/v24.1/migrate-from-oracle.md index fe0dc71455d..4d47ffebdac 100644 --- a/src/current/v24.1/migrate-from-oracle.md +++ b/src/current/v24.1/migrate-from-oracle.md @@ -6,7 +6,9 @@ docs_area: migrate --- {{site.data.alerts.callout_danger}} -The instructions on this page require updates. We currently recommend [using AWS Database Migration Service (DMS) to migrate data]({% link {{ page.version.version }}/aws-dms.md %}) from Oracle to CockroachDB. You can also [migrate from CSV]({% link {{ page.version.version }}/migrate-from-csv.md %}). +The instructions on this page are outdated. Use the [Schema Conversion Tool]({% link cockroachcloud/migrations-page.md %}?filters=oracle) to convert an Oracle schema into a compatible CockroachDB schema, and a tool such as [AWS Database Migration Service (DMS)]({% link {{ page.version.version }}/aws-dms.md %}) or [Qlik]({% link {{ page.version.version }}/qlik.md %}) to migrate data from Oracle to CockroachDB. + +Note that `IMPORT` is deprecated. To move data into CockroachDB, use [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}). {{site.data.alerts.end}} This page has instructions for migrating data from Oracle into CockroachDB by [importing]({% link {{ page.version.version }}/import.md %}) CSV files. Note that `IMPORT` only works for creating new tables. For information on how to add CSV data to existing tables, see [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}). diff --git a/src/current/v24.1/migration-overview.md b/src/current/v24.1/migration-overview.md index 3912952a489..3e1372af46a 100644 --- a/src/current/v24.1/migration-overview.md +++ b/src/current/v24.1/migration-overview.md @@ -62,17 +62,17 @@ A lift-and-shift approach is the most straightforward. However, it's important t - *Reduced functionality* takes some, but not all, application functionality offline. For example, you can disable writes but not reads while you migrate the application data, and queue data to be written after completing the migration. -For an overview of lift-and-shift migrations to CockroachDB, see [Lift and Shift](#lift-and-shift). For considerations and details about the pros and cons of this approach, see [Migration Strategy: Lift and Shift]({% link {{ page.version.version }}/migration-strategy-lift-and-shift.md %}). +For an overview of lift-and-shift migrations to CockroachDB, see [Lift and Shift](#lift-and-shift). #### Minimal downtime -If your application cannot tolerate downtime, then you should aim for a "zero-downtime" approach. "Zero" means that downtime is reduced to either an absolute minimum or zero, such that users do not notice the migration. +If your application cannot tolerate downtime, then you should aim for a "zero-downtime" approach. This reduces downtime to an absolute minimum, such that users do not notice the migration. The minimum possible downtime depends on whether you can tolerate inconsistency in the migrated data: -- *Consistent* migrations reduce downtime to an absolute minimum (i.e., from 30 seconds to sub-seconds) while keeping data synchronized between the source database and CockroachDB. **Consistency requires downtime.** In this approach, downtime occurs right before [cutover](#cutover-strategy), as you drain the remaining transactions from the source database to CockroachDB. +- Migrations performed using *consistent cutover* reduce downtime to an absolute minimum (i.e., seconds or sub-seconds) while keeping data synchronized between the source database and CockroachDB. **Consistency requires downtime.** In this approach, downtime occurs right before [cutover](#cutover-strategy), as you drain the remaining transactions from the source database to CockroachDB. -- *Inconsistent* migrations can reduce downtime to zero. These require the most preparation, and typically allow read/write traffic to both databases for at least a small amount of time, thereby sacrificing consistency for availability. {% comment %}You can use the CockroachDB Live Migration Service (MOLT LMS) to run application queries simultaneously on your source database and CockroachDB.{% endcomment %} Without stopping application traffic, you perform an immediate [cutover](#cutover-strategy), while assuming that some writes will not be replicated to CockroachDB. You may want to manually reconcile these data inconsistencies after switching over. +- Migrations performed using *immediate cutover* can reduce downtime to zero. These require the most preparation, and typically allow read/write traffic to both databases for at least a short period of time, sacrificing consistency for availability. {% comment %}You can use the CockroachDB Live Migration Service (MOLT LMS) to run application queries simultaneously on your source database and CockroachDB.{% endcomment %} Without stopping application traffic, you perform an **immediate** [cutover](#cutover-strategy), while assuming that some writes will not be replicated to CockroachDB. You may want to manually reconcile these data inconsistencies after switching over. For an overview of zero-downtime migrations to CockroachDB, see [Zero Downtime](#zero-downtime). {% comment %}For details, see [Migration Strategy: Zero Downtime](migration-strategy-zero-downtime).{% endcomment %} @@ -245,9 +245,11 @@ Then import the converted schema to a CockroachDB cluster: Before moving data, Cockroach Labs recommends [dropping any indexes]({% link {{ page.version.version }}/drop-index.md %}) on the CockroachDB database. The indexes can be [recreated]({% link {{ page.version.version }}/create-index.md %}) after the data is loaded. Doing so will optimize performance. {{site.data.alerts.end}} -After [converting the schema](#convert-the-schema), load your data into CockroachDB so that you can [test your application queries](#validate-queries). Then use one of the following methods to migrate the data (you may need to use additional tooling to extract and/or convert the data to an appropriate file format): +After [converting the schema](#convert-the-schema), load your data into CockroachDB so that you can [test your application queries](#validate-queries). Then use [MOLT Fetch]({% link {{ page.version.version }}/molt-fetch.md %}) to move the source data to CockroachDB. -- {% include {{ page.version.version }}/migration/load-data-import-into.md %} Typically, initial data loading during a database migration will not be running concurrently with application traffic, so the fact that `IMPORT INTO` takes the table offline may not have any observable availability impact. +Alternatively, you can use one of the following methods to migrate the data. Additional tooling may be required to extract or convert the data to a supported file format. + +- {% include {{ page.version.version }}/migration/load-data-import-into.md %} Typically during a migration, data is initially loaded before foreground application traffic begins to be served, so the impact of taking the table offline when running `IMPORT INTO` may be minimal. - {% include {{ page.version.version }}/migration/load-data-third-party.md %} Within the tool, you can select the database tables to migrate to the test cluster. - {% include {{ page.version.version }}/migration/load-data-copy-from.md %} @@ -259,9 +261,9 @@ Note that CockroachDB defaults to the [`SERIALIZABLE`]({% link {{ page.version.v ##### Shadowing -You can "shadow" your production workload by executing your source SQL statements on CockroachDB in parallel. The [CockroachDB Live Migration Service (LMS)]({% link {{ page.version.version }}/live-migration-service.md %}) can perform shadowing. You can then [test the queries](#test-query-results-and-performance) on CockroachDB for consistency, performance, and potential issues with the migration. +You can "shadow" your production workload by executing your source SQL statements on CockroachDB in parallel. You can then [validate the queries](#test-query-results-and-performance) on CockroachDB for consistency, performance, and potential issues with the migration. -Shadowing may not be necessary or practical for your workload. For example, because transactions are serialized on CockroachDB, this will limit your ability to validate the performance of high-throughput workloads. +The [CockroachDB Live Migration Service (MOLT LMS)]({% link {{ page.version.version }}/live-migration-service.md %}) can [perform shadowing]({% link {{ page.version.version }}/live-migration-service.md %}#shadowing-modes). This is intended only for [testing](#test-query-results-and-performance) or [performing a dry run](#perform-a-dry-run). Shadowing should **not** be used in production when performing a [live migration](#zero-downtime). ##### Test query results and performance @@ -310,35 +312,32 @@ Using this method, consistency is achieved by only performing the cutover once a The following is a high-level overview of the migration steps. For considerations and details about the pros and cons of this approach, see [Migration Strategy: Lift and Shift]({% link {{ page.version.version }}/migration-strategy-lift-and-shift.md %}). 1. Stop application traffic to your source database. **This begins downtime.** -1. Move data in one of the following ways: - - {% include {{ page.version.version }}/migration/load-data-import-into.md %} - - {% include {{ page.version.version }}/migration/load-data-third-party.md %} - - {% include {{ page.version.version }}/migration/load-data-copy-from.md %} -1. After the data is migrated, you can use [MOLT Verify]({% link {{ page.version.version }}/molt-verify.md %}) to validate the consistency of the data between the source database and CockroachDB. +1. Use [MOLT Fetch]({% link {{ page.version.version }}/molt-fetch.md %}) to move the source data to CockroachDB. +1. After the data is migrated, use [MOLT Verify]({% link {{ page.version.version }}/molt-verify.md %}) to validate the consistency of the data between the source database and CockroachDB. 1. Perform a [cutover](#cutover-strategy) by resuming application traffic, now to CockroachDB. {% comment %}1. If you want the ability to [roll back](#all-at-once-rollback) the migration, replicate data back to the source database.{% endcomment %} ### Zero Downtime -Using this method, downtime is minimized by performing the cutover while writes are still being replicated from the source database to CockroachDB. Inconsistencies are resolved through manual reconciliation. - -The following is a high-level overview of the migration steps. {% comment %}For details on this migration strategy, see [Migration Strategy: Zero Downtime]({% link {{ page.version.version }}/migration-strategy-lift-and-shift.md %}).{% endcomment %} +During a "live migration", downtime is minimized by performing the cutover while writes are still being replicated from the source database to CockroachDB. Inconsistencies are resolved through manual reconciliation. -{% comment %}You can use the CockroachDB Live Migration Service (MOLT LMS) to run application queries simultaneously on your source database and CockroachDB.{% endcomment %} +The following is a high-level overview of the migration steps. The two approaches are mutually exclusive, and each has [tradeoffs](#minimal-downtime). {% comment %}For details on this migration strategy, see [Migration Strategy: Zero Downtime]({% link {{ page.version.version }}/migration-strategy-lift-and-shift.md %}).{% endcomment %} To prioritize consistency and minimize downtime: -1. {% include {{ page.version.version }}/migration/load-data-third-party.md %} Select the tool's option to **replicate ongoing changes** after performing the initial load of data into CockroachDB. -1. As the data is migrating, you can use [MOLT Verify]({% link {{ page.version.version }}/molt-verify.md %}) to validate the consistency of the data between the source database and CockroachDB. -1. Once nearly all data from your source database has been moved to CockroachDB (for example, with a <1 second delay or <1000 rows), stop application traffic to your source database. **This begins downtime.** -1. Wait for replication to CockroachDB to complete. -1. Perform a [cutover](#cutover-strategy) by resuming application traffic, now to CockroachDB. +1. Set up the [CockroachDB Live Migration Service (MOLT LMS)]({% link {{ page.version.version }}/live-migration-service.md %}) to proxy for application traffic between your source database and CockroachDB. Do **not** shadow the application traffic. +1. Use [MOLT Fetch]({% link {{ page.version.version }}/molt-fetch.md %}) to move the source data to CockroachDB. Use the tool to [**replicate ongoing changes**]({% link {{ page.version.version }}/molt-fetch.md %}#replication) after it performs the initial load of data into CockroachDB. +1. As the data is migrating, use [MOLT Verify]({% link {{ page.version.version }}/molt-verify.md %}) to validate the consistency of the data between the source database and CockroachDB. +1. After nearly all data from your source database has been moved to CockroachDB (for example, with a <1-second delay or <1000 rows), use MOLT LMS to begin a [*consistent cutover*]({% link {{ page.version.version }}/live-migration-service.md %}#consistent-cutover) and stop application traffic to your source database. **This begins downtime.** +1. Wait for MOLT Fetch to finish replicating changes to CockroachDB. +1. Use MOLT LMS to commit the [consistent cutover]({% link {{ page.version.version }}/live-migration-service.md %}#consistent-cutover). This resumes application traffic, now to CockroachDB. To achieve zero downtime with inconsistency: -1. {% include {{ page.version.version }}/migration/load-data-third-party.md %} Select the tool's option to replicate ongoing changes after performing the initial load of data into CockroachDB. +1. Set up the [CockroachDB Live Migration Service (MOLT LMS)]({% link {{ page.version.version }}/live-migration-service.md %}) to proxy for application traffic between your source database and CockroachDB. Use a [shadowing mode]({% link {{ page.version.version }}/live-migration-service.md %}#shadowing-modes) to run application queries simultaneously on your source database and CockroachDB. +1. Use [MOLT Fetch]({% link {{ page.version.version }}/molt-fetch.md %}) to move the source data to CockroachDB. Use the tool to **replicate ongoing changes** after performing the initial load of data into CockroachDB. 1. As the data is migrating, you can use [MOLT Verify]({% link {{ page.version.version }}/molt-verify.md %}) to validate the consistency of the data between the source database and CockroachDB. -1. Once nearly all data from your source database has been moved to CockroachDB (for example, with a <1 second delay or <1000 rows), perform a [cutover](#cutover-strategy) by pointing application traffic to CockroachDB. +1. After nearly all data from your source database has been moved to CockroachDB (for example, with a <1 second delay or <1000 rows), perform an [*immediate cutover*](#cutover-strategy) by pointing application traffic to CockroachDB. 1. Manually reconcile any inconsistencies caused by writes that were not replicated during the cutover. 1. Close the connection to the source database when you are ready to finish the migration. diff --git a/src/current/v24.1/molt-verify.md b/src/current/v24.1/molt-verify.md index a0e31e8bc50..0c45ca3343f 100644 --- a/src/current/v24.1/molt-verify.md +++ b/src/current/v24.1/molt-verify.md @@ -73,7 +73,7 @@ Flag | Description ----------|------------ `--source` | (Required) Connection string for the source database. `--target` | (Required) Connection string for the target database. -`--concurrency` | Number of shards to process at a time.
**Default:** 16
For faster verification, set this flag to a higher value. {% comment %}
Note: Table splitting by shard only works for [`INT`]({% link {{ page.version.version }}/int.md %}), [`UUID`]({% link {{ page.version.version }}/uuid.md %}), and [`FLOAT`]({% link {{ page.version.version }}/float.md %}) data types.{% endcomment %} +`--concurrency` | Number of threads to process at a time when reading the tables.
**Default:** 16
For faster verification, set this flag to a higher value. {% comment %}
Note: Table splitting by shard only works for [`INT`]({% link {{ page.version.version }}/int.md %}), [`UUID`]({% link {{ page.version.version }}/uuid.md %}), and [`FLOAT`]({% link {{ page.version.version }}/float.md %}) data types.{% endcomment %} `--row-batch-size` | Number of rows to get from a table at a time.
**Default:** 20000 `--table-filter` | Verify tables that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression). `--schema-filter` | Verify schemas that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression). @@ -117,15 +117,18 @@ When verification completes, the output displays a summary message like the foll - `num_success` is the number of rows that matched. - `num_conditional_success` is the number of rows that matched while having a column mismatch due to a type difference. This value indicates that all other columns that could be compared have matched successfully. You should manually review the warnings and errors in the output to determine whether the column mismatches can be ignored. -## Limitations +## Known limitations -- While verifying data, MOLT Verify pages 20,000 rows at a time by default, and row values can change between batches, which can lead to temporary inconsistencies in data. Enable `--live` mode to have the tool retry verification on these rows. You can also change the row batch size using the `--row_batch_size` [flag](#flags). -- MySQL enums and set types are not supported. +- MOLT Verify compares 20,000 rows at a time by default, and row values can change between batches, potentially resulting in temporary inconsistencies in data. If `--live` mode is enabled, MOLT Verify retries verification on these rows. To configure the row batch size, use the `--row_batch_size` [flag](#flags). - MOLT Verify checks for collation mismatches on [primary key]({% link {{ page.version.version }}/primary-key.md %}) columns. This may cause validation to fail when a [`STRING`]({% link {{ page.version.version }}/string.md %}) is used as a primary key and the source and target databases are using different [collations]({% link {{ page.version.version }}/collate.md %}). -- MOLT Verify only supports comparing one MySQL database to a whole CockroachDB schema (which is assumed to be `public`). - MOLT Verify might give an error in case of schema changes on either the source or target database. - [Geospatial types]({% link {{ page.version.version }}/spatial-data-overview.md %}#spatial-objects) cannot yet be compared. +The following limitations are specific to MySQL: + +- MySQL enums and set types are not supported. +- MOLT Verify only supports comparing one MySQL database to a whole CockroachDB schema (which is assumed to be `public`). + ## See also - [MOLT Fetch]({% link {{ page.version.version }}/molt-fetch.md %}) From 2cd426b7870f65390438d8fff9adbb1174ba2f3a Mon Sep 17 00:00:00 2001 From: "Matt Linville (he/him)" Date: Mon, 20 May 2024 11:20:33 -0700 Subject: [PATCH 12/30] Correct private connection button text (#18565) --- src/current/cockroachcloud/connect-to-your-cluster.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/current/cockroachcloud/connect-to-your-cluster.md b/src/current/cockroachcloud/connect-to-your-cluster.md index 6671c9c6d94..af311f45cd1 100644 --- a/src/current/cockroachcloud/connect-to-your-cluster.md +++ b/src/current/cockroachcloud/connect-to-your-cluster.md @@ -63,7 +63,7 @@ Azure Private Link is not yet available for [CockroachDB {{ site.data.products.d {{site.data.alerts.end}} 1. Navigate to your cluster's **Networking > Private endpoint** tab. -1. Click **Add an endpoint**. Copy the value provided for **Target service**. Do not close this browser window. +1. Click **Add a private endpoint**. Copy the value provided for **Target service**. Do not close this browser window. 1. In a new browser window, log in to Google Cloud Console, go to **Private Service Connect** section, and create a new endpoint in the same VPC as your application. For details, refer to [Create an endpoint](https://cloud.google.com/vpc/docs/configure-private-service-connect-services#create-endpoint) in the Google Cloud documentation. - Set **Target** to **Published service**. - Set **Target service** to the value you copied from CockroachDB {{ site.data.products.cloud }} Console. If the endpoint's configured target service does not match, validation will fail. From bf6bb3886f8275e8af94700a0fbb70adf81812a3 Mon Sep 17 00:00:00 2001 From: Mike Lewis <76072290+mikeCRL@users.noreply.github.com> Date: Mon, 20 May 2024 14:54:13 -0400 Subject: [PATCH 13/30] Publish release notes and update latest stable version for v24.1.0 (#18560) * Update releases.yml * Bump stable version to v24.1 * Add release and support dates in versions.csv * Add WIP key cluster settings * [DOC-10105] Announce v24.1.0 availability on Cloud * Test reverting stable version * Add feature highlights * Attempt liquid fix for sidebar-all-releases.json * Revert sidebar-all-releases.json change; had no effect * Revert sidebar json files from last change in b70d369dee51f3e28de38ee5e20161fb149052a5 to SHA preceding that PR, cba8e365fe02ed5c8984b7c770f8fd3f4ca6eb68 * One more change to rever to pre-LTS-change to releases in nav * Fix feature highlights * Fix nav * Correct date * Resolve final content additions/fixes * Fix link * Readd thead/tbody tags * Fix bad link * Fix links * Remove duplicate header row * Replace a couple backticks with html --------- Co-authored-by: Matt Linville --- src/current/_config_cockroachdb.yml | 2 +- src/current/_data/releases.yml | 34 ++ src/current/_data/versions.csv | 2 +- .../_includes/releases/cloud/2024-05-20.md | 15 +- .../_includes/releases/v23.1/v23.1.21.md | 2 +- .../releases/v24.1/v24.1.0-beta.3.md | 2 +- .../_includes/releases/v24.1/v24.1.0.md | 426 ++++++++++++++---- .../_includes/sidebar-all-releases.json | 32 +- src/current/_includes/sidebar-data-v23.2.json | 1 + src/current/_includes/sidebar-data-v24.1.json | 3 +- src/current/_includes/sidebar-releases.json | 35 +- .../v23.2/sidebar-data/releases.json | 2 +- .../v24.1/sidebar-data/latest-releases.json | 7 + .../v24.1/sidebar-data/releases.json | 4 +- src/current/releases/index.md | 4 +- 15 files changed, 429 insertions(+), 142 deletions(-) diff --git a/src/current/_config_cockroachdb.yml b/src/current/_config_cockroachdb.yml index 7f625e5c764..813558be019 100644 --- a/src/current/_config_cockroachdb.yml +++ b/src/current/_config_cockroachdb.yml @@ -3,5 +3,5 @@ current_cloud_version: v23.2 destination: _site/docs homepage_title: CockroachDB Docs versions: - stable: v23.2 + stable: v24.1 dev: v24.1 diff --git a/src/current/_data/releases.yml b/src/current/_data/releases.yml index 1ca7564b790..776e4e1cba3 100644 --- a/src/current/_data/releases.yml +++ b/src/current/_data/releases.yml @@ -6068,3 +6068,37 @@ docker_arm_limited_access: false source: true previous_release: v24.1.0-rc.1 + +- release_name: v24.1.0 + major_version: v24.1 + release_date: '2024-05-20' + release_type: Production + cloud_only: true + cloud_only_message_short: 'Available in CockroachDB Dedicated. Self-hosted binaries available June 3, 2024 per the staged release process.' + cloud_only_message: > + CockroachDB v24.1 is now generally available for CockroachDB Dedicated, + and is scheduled to be made available for CockroachDB Self-Hosted on June 3, 2024 per the staged release process. + For more information, refer to + [Upgrade to CockroachDB v24.1](https://www.cockroachlabs.com/docs/cockroachcloud/upgrade-to-v24.1). To connect to a CockroachDB Dedicated cluster on v24.1, refer to [Connect to a CockroachDB Dedicated Cluster](https://www.cockroachlabs.com/docs/cockroachcloud/connect-to-your-cluster). + go_version: go1.22.0 + sha: 6205244e922606f85761dad2137b842f43a53716 + has_sql_only: true + has_sha256sum: true + mac: + mac_arm: true + mac_arm_experimental: true + mac_arm_limited_access: false + windows: true + linux: + linux_arm: true + linux_arm_experimental: false + linux_arm_limited_access: false + linux_intel_fips: true + linux_arm_fips: false + docker: + docker_image: cockroachdb/cockroach-unstable + docker_arm: true + docker_arm_experimental: false + docker_arm_limited_access: false + source: true + previous_release: v24.1.0-rc.2 diff --git a/src/current/_data/versions.csv b/src/current/_data/versions.csv index d0f53f49767..7213217287f 100644 --- a/src/current/_data/versions.csv +++ b/src/current/_data/versions.csv @@ -13,4 +13,4 @@ v22.1,2022-05-24,2023-05-24,2023-11-24,N/A,N/A,N/A,N/A,N/A,v21.2,release-22.1 v22.2,2022-12-05,2023-12-05,2024-06-05,N/A,N/A,N/A,N/A,N/A,v22.1,release-22.2 v23.1,2023-05-15,2024-05-15,2024-11-15,23.1.11,23.1.12,2023-11-13,2024-11-13,2025-11-13,v22.2,release-23.1 v23.2,2024-02-05,2025-02-05,2025-08-05,N/A,N/A,N/A,N/A,N/A,v23.1,release-23.2 -v24.1,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,v23.2,release-24.1 +v24.1,2024-05-20,2026-05-20,2025-11-20,N/A,N/A,N/A,N/A,N/A,v23.2,release-24.1 diff --git a/src/current/_includes/releases/cloud/2024-05-20.md b/src/current/_includes/releases/cloud/2024-05-20.md index 8c519ba8421..2aed641578b 100644 --- a/src/current/_includes/releases/cloud/2024-05-20.md +++ b/src/current/_includes/releases/cloud/2024-05-20.md @@ -1,16 +1,5 @@ -## May 20, 2024 +# May 20, 2024 -

Security updates

- -- [Configuring private connectivity using Google Cloud Private Service Connect]({% link cockroachcloud/connect-to-your-cluster.md %}#gcp-private-service-connect) is available in [preview](https://www.cockroachlabs.com/docs/{{site.current_cloud_version}}/cockroachdb-feature-availability) for CockroachDB {{ site.data.products.dedicated }} clusters on GCP. [Private connectivity]({% link cockroachcloud/network-authorization.md %}#options-for-controlling-network-access) allows you to establish SQL access to a CockroachDB {{ site.data.products.dedicated }} cluster entirely through cloud provider private infrastructure, without exposing the cluster to the public internet, affording enhanced security and performance.

General updates

-- CockroachDB {{ site.data.products.dedicated }} on AWS is now available in the `me-central-1`(United Arab Emirates) [ region]({% link cockroachcloud/regions.md %}#aws-regions). -- CockroachDB {{ site.data.products.dedicated }} on GCP is now available in new [regions]({% link cockroachcloud/regions.md %}#gcp-regions): - - `europe-southwest1` (Madrid) - - `europe-west8` (Milan) - - `europe-west12` (Paris) - - `me-central1` (Doha) - - `me-west1` (Tel Aviv) - - `us-east5` (Columbus) - - `us-south1` (Dallas) +- CockroachDB v24.1 is now generally available for CockroachDB {{ site.data.products.dedicated }}, and is scheduled to be made available for CockroachDB {{ site.data.products.core }} on June 3, 2024{% comment %}Verify{% endcomment %}. For more information, refer to [Create a CockroachDB Dedicated Cluster]({% link cockroachcloud/create-your-cluster.md %}) or [Upgrade to CockroachDB v24.1]({% link cockroachcloud/upgrade-to-v24.1.md %}). diff --git a/src/current/_includes/releases/v23.1/v23.1.21.md b/src/current/_includes/releases/v23.1/v23.1.21.md index fc4d6200ddf..4c60598830f 100644 --- a/src/current/_includes/releases/v23.1/v23.1.21.md +++ b/src/current/_includes/releases/v23.1/v23.1.21.md @@ -8,7 +8,7 @@ Release Date: May 7, 2024 - The `FORCE_INVERTED_INDEX` hint causes the [optimizer]({% link v23.1/cost-based-optimizer.md %}) to prefer a query plan scan over any [inverted index]({% link v23.1/inverted-indexes.md %}) of the hinted table. An error is emitted if no such query plan can be generated. [#122301][#122301] - Introduced three new [cluster settings]({% link v23.1/cluster-settings.md %}) for controlling [table statistics]({% link v23.1/cost-based-optimizer.md %}#table-statistics) forecasting: - - [`sql.stats.forecasts.min_observations`]({% link v23.1/cluster-settings.md %}#setting-sql-stats-forecasts-min-observations) is the minimum number of observed statistics required to produce a forecast. + - [`sql.stats.forecasts.min_observations`]({% link v23.1/cluster-settings.md %}) is the minimum number of observed statistics required to produce a forecast. - [`sql.stats.forecasts.min_goodness_of_fit`]({% link v23.1/cluster-settings.md %}#setting-sql-stats-forecasts-min-goodness-of-fit) is the minimum R² (goodness of fit) measurement required from all predictive models to use a forecast. - [`sql.stats.forecasts.max_decrease`]({% link v23.1/cluster-settings.md %}#setting-sql-stats-forecasts-max-decrease) is the most a prediction can decrease, expressed as the minimum ratio of the prediction to the lowest prior observation. [#122990][#122990] - Added a [session variable]({% link v23.1/set-vars.md %}) `optimizer_use_improved_multi_column_selectivity_estimate`, which if enabled, causes the [optimizer]({% link v23.1/cost-based-optimizer.md %}) to use an improved selectivity estimate for multi-column predicates. This setting will default to `true` on v24.2 and later, and `false` on prior versions. [#123068][#123068] diff --git a/src/current/_includes/releases/v24.1/v24.1.0-beta.3.md b/src/current/_includes/releases/v24.1/v24.1.0-beta.3.md index 0852831e401..c4bd4dc4f69 100644 --- a/src/current/_includes/releases/v24.1/v24.1.0-beta.3.md +++ b/src/current/_includes/releases/v24.1/v24.1.0-beta.3.md @@ -9,7 +9,7 @@ Release Date: April 30, 2024 - Updated the [`SHOW GRANTS`]({% link v24.1/show-grants.md %}) responses to display the `object_type` and `object_name`, which has replaced the `relation_name` column. [#122823][#122823] - Added [external connection]({% link v24.1/create-external-connection.md %}) granted privileges to the [`SHOW GRANTS`]({% link v24.1/show-grants.md %}) command. [#122823][#122823] - Introduced three new [cluster settings]({% link v24.1/cluster-settings.md %}) for controlling table statistics forecasting: - - [`sql.stats.forecasts.min_observations`]({% link v24.1/cluster-settings.md %}#setting-sql-stats-forecasts-min-observations) is the minimum number of observed statistics required to produce a forecast. + - [`sql.stats.forecasts.min_observations`]({% link v24.1/cluster-settings.md %}) is the minimum number of observed statistics required to produce a forecast. - [`sql.stats.forecasts.min_goodness_of_fit`]({% link v24.1/cluster-settings.md %}#setting-sql-stats-forecasts-min-goodness-of-fit) is the minimum R² (goodness of fit) measurement required from all predictive models to use a forecast. - [`sql.stats.forecasts.max_decrease`]({% link v24.1/cluster-settings.md %}#setting-sql-stats-forecasts-max-decrease) is the most a prediction can decrease, expressed as the minimum ratio of the prediction to the lowest prior observation. [#122459][#122459] diff --git a/src/current/_includes/releases/v24.1/v24.1.0.md b/src/current/_includes/releases/v24.1/v24.1.0.md index 1751218f807..1b8f6db00ca 100644 --- a/src/current/_includes/releases/v24.1/v24.1.0.md +++ b/src/current/_includes/releases/v24.1/v24.1.0.md @@ -1,6 +1,6 @@ ## v24.1.0 -Release Date: TBD TBD, 2024 +Release Date: May 20, 2024 With the release of CockroachDB v24.1, we've added new capabilities to help you migrate, build, and operate more efficiently. Refer to our summary of the most significant user-facing changes under [Feature Highlights](#v24-1-0-feature-highlights). @@ -11,12 +11,14 @@ With the release of CockroachDB v24.1, we've added new capabilities to help you This section summarizes the most significant user-facing changes in v24.1.0 and other features recently made available to CockroachDB users across versions. For a complete list of features and changes in v24.1, including bug fixes and performance improvements, refer to the [release notes]({% link releases/index.md %}#testing-releases) for previous v24.1 testing releases. You can also search the docs for sections labeled [New in v24.1](https://www.cockroachlabs.com/docs/search?query=new+in+v24.1). - **Feature categories** - - [Observability](#v24-1-0-observability) + - [Performance](#v24-1-0-performance) + - [Change data capture](#v24-1-0-change-data-capture) + - [Recovery](#v24-1-0-recovery) + - [Security](#v24-1-0-security) - [Migrations](#v24-1-0-migrations) - - [Security and compliance](#v24-1-0-security-and-compliance) - - [Disaster recovery](#v24-1-0-disaster-recovery) - - [Deployment and operations](#v24-1-0-deployment-and-operations) - [SQL](#v24-1-0-sql) + - [Operations](#v24-1-0-operations) + - [Observability](#v24-1-0-observability) - **Additional information** - [Backward-incompatible changes](#v24-1-0-backward-incompatible-changes) - [Deprecations](#v24-1-0-deprecations) @@ -29,7 +31,7 @@ In CockroachDB Self-Hosted, all available features are free to use unless their
-

Observability

+

Performance

@@ -44,22 +46,70 @@ In CockroachDB Self-Hosted, all available features are free to use unless their - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-

TBD

-

TBD

-
TBD{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-no.html %}
+

WAL (Write-Ahead Logging) Failover

+

When a CockroachDB node is configured to run with multiple stores, you can mitigate some effects of disk stalls by configuring the node to failover the store's write-ahead log (WAL) to another store's data directory.

+

This feature is in preview.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

Autocommit DDL

+

In 24.1 we have added the autocommit_before_ddl session +variable. When set to true, any schema change statement that is sent +during an explicit transaction will cause the transaction to commit +before executing the schema change. +This setting can be used to improve compatibility with some tools that +do not work well due to our limitations with schema changes in explicit +transactions. It also can be used to use schema changes under READ +COMMITTED more easily, without needing to teach the schema changer about +READ COMMITTED.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

Statistics for virtual computed columns

+

CockroachDB now collects statistics for virtual computed columns, making it possible to optimize query plans for tables that have these columns. Customers will see better query performance for queries that involve virtual computed columns.

+

For more information, you can also view a video demo.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

Write Amplification Improvements

+

A number of Pebble improvements are now on by default, leading to a reduction in write amplification. Of particular note, a vast majority of range snapshots previously ingested into L0 are now ingested directly into L6 in the LSM, reducing write and read amplification with positive effects to node stability and SQL performance.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

Increased SLA for multi-region Dedicated clusters

+

CockroachDB Dedicated multi-region clusters now offer a five-nines (99.999%) availability target.

+
All*{% include icon-no.html %}{% include icon-yes.html %}{% include icon-no.html %}
-

Migrations

- +

Change Data Capture

@@ -74,22 +124,60 @@ In CockroachDB Self-Hosted, all available features are free to use unless their - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-

TBD

-

TBD

-
TBD{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

Improved performance for changefeeds at scale

+

Mux rangefeed is a subsystem that improves the performance of rangefeeds with scale. In v24.1, Mux rangefeeds are enabled by default.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

Emit changefeed messages to an Azure Event Hub

+

Changefeeds can emit messages to an Azure Event Hub, which is compatible with Apache Kafka. You can use the Kafka changefeed and sink configuration options.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

Google Cloud Pub/Sub sink for changefeeds is now generally available

+

The changefeed sink for Google Cloud Pub/Sub is GA.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

Filter changefeed messages based on cluster, SQL session, or row-level TTL jobs

+

Use the disable_changefeed_replication session variable to prevent changefeeds from emitting messages for any changes during that session. Also in v24.1, you can enable the ignore_disable_changefeed_replication option to ignore the storage parameter or cluster setting that disables changefeed replication. These settings can be useful to manage multiple changefeed use cases on the same table.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

Set Kafka quotas per changefeed

+

For Kafka sinks, implement a resource usage limit per changefeed by setting a client ID and quota in your Kafka server's configuration.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
-

Disaster recovery

- +

Recovery

@@ -104,22 +192,20 @@ In CockroachDB Self-Hosted, all available features are free to use unless their - - + - + - +
-

TBD

-

TBD.

+

Physical Cluster Replication is now generally available

+

Physical Cluster Replication is an asynchonous replication feature that allows your cluster to recover from full-cluster failure with a low RPO and RTO. In 24.1, it is a GA feature, requiring an Enterprise license, and only available for self-hosted CockroachDB deployments.

TBD24.1 {% include icon-yes.html %} {% include icon-no.html %} {% include icon-no.html %}
-

Security and compliance

- +

Security

@@ -134,22 +220,65 @@ In CockroachDB Self-Hosted, all available features are free to use unless their - - + - + - + + + + + + + +
-

TBD

-

TBD

+

Private connectivity in CockroachDB Dedicated with Google Cloud Private Service Connect

+

Private connectivity using Private Service Connect is now available in preview for CockroachDB Dedicated clusters on GCP.

TBDAll* {% include icon-no.html %} {% include icon-yes.html %} {% include icon-no.html %}
+

Support for matching against SUBJECT

+

When using certificate based authentication, CockroachDB now supports mapping of SQL user roles to values in the Subject field of the X.509 certificate used for TLS authentication.

+

Subject mapping is useful if: +

    +
  • You run your own Certificate Authority (CA) infrastructure.
  • +
  • You need to use your existing CA infrastructure to manage SQL user authentication.
  • +
  • You need to use the same CA for multiple CockroachDB clusters.
  • +
+

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-no.html %}
-

Deployment and operations

+

Migrations

+ + + + + + + + + + + + + + + + + + + + + + +
FeatureAvailability
Ver.Self-HostedDedicatedServerless
+

+

MOLT Fetch is GA. MOLT Fetch automatically imports data from a PostgreSQL, MySQL, or CockroachDB source to a target CockroachDB database. If the fetch process encounters an error, data import can be continued from the point where it was interrupted. MOLT Fetch can be configured to replicate ongoing changes on the source database to CockroachDB following the initial data load.

+
All*{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

SQL

@@ -164,22 +293,108 @@ In CockroachDB Self-Hosted, all available features are free to use unless their - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Stored Procedures and UDF Improvements

+

Support for PL/pgSQL, user-defined functions, and stored procedures is now expanded: +

+

For more information, you can also view a video demo.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

Read Committed Isolation in GA

+

Read Committed isolation is now GA. Under READ COMMITTED isolation, DDL operations can be auto-committed, and RETRY_SERIALIZABLE errors are absent. This offers a simpler migration path for applications and removes the need for client-side retry handling, which is necessary under SERIALIZABLE isolation.

+

For more information, you can also view a video demo.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

SELECT FOR SHARE updates

+

A shared lock that is acquired explicitly using SELECT FOR SHARE or implicitly by a read-committed transaction, can now be re-acquired with higher strength by either using a SELECT FOR UPDATE statement or by writing to the key

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

SHOW DEFAULT SESSION VARIABLES FOR ROLE

+

Previously, if a database administrator wanted to know which session variables they had set by default for a role, they would need to switch into that user or scan a system table manually. This could be more time consuming or difficult to use. To address this, we have added a new command: SHOW DEFAULT SESSION VARIABLES FOR ROLE, which allows the database administrator to easily view the default values for session variables applied to a given user.

+
24.1{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+ +

Operations

+ + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + +
FeatureAvailability
Ver.Self-HostedDedicatedServerless
-

TBD

-

TBD

+

New Regions for CockroachDB Dedicated

+

Cockroach Cloud is now available in additional Azure regions. This expansion enhances our global reach and offers more options for deploying resilient, distributed databases with low latency and high availability.

+

With these new regions, you can now select a geographical location that best fits your needs, reducing data latency and ensuring compliance with regional data residency regulations. Deploying in a region close to your service or customers means improved performance and a better user experience.

TBDAll* {% include icon-no.html %} {% include icon-yes.html %} {% include icon-no.html %}
+

Organize Cloud clusters using Folders

+

Folders help users organize and manage access for Clusters by projects, teams or business units. This feature is now in public preview and available to all Cloud organizations. For additional details, refer to the release note.

+
All*{% include icon-no.html %}{% include icon-yes.html %}{% include icon-yes.html %}
+

CockroachDB Cloud Terraform provider IAM enhancements

+

The CockroachDB Cloud Terraform provider has new resources for User Role Grant and Service Accounts, and a new data source for Folders. These new features improve customers’ ability to manage secure access to data, API, and infrastructure on CockroachDB Cloud.

+
All*{% include icon-no.html %}{% include icon-yes.html %}{% include icon-yes.html %}
-

SQL

- +

Observability

@@ -194,21 +409,53 @@ In CockroachDB Self-Hosted, all available features are free to use unless their - - + - + - + + + + + + + + + + + + + + +
-

TBD

-

TBD

+

CockroachDB Dedicated supports a Prometheus-compatibile metric scrape endpoint.

+

The Prometheus-compatibile metric scrape endpoint for CockroachDB Dedicated is generally available.

TBDAll* {% include icon-no.html %} {% include icon-yes.html %} {% include icon-no.html %}
+

Export CockroachDB Dedicated metrics to Azure Monitor

+

CockroachDB Dedicated supports exporting metrics to Azure Monitor in limited access. Contact your Cockroach Labs account team for access.

+
All*{% include icon-no.html %}{% include icon-yes.html %}{% include icon-no.html %}
+

Export CockroachDB Dedicated logs to Azure Monitor

+

CockroachDB Dedicated supports exporting logs to Azure Monitor in limited access. Contact your Cockroach Labs account team for access.

+
All*{% include icon-no.html %}{% include icon-yes.html %}{% include icon-no.html %}
+ + + + + + + + + + + + + @@ -234,36 +481,44 @@ In CockroachDB Self-Hosted, all available features are free to use unless their
FeatureAvailability
Ver.Self-HostedDedicatedServerless
Feature detail key
-
-

Enterprise features

- -{{site.data.alerts.callout_info}} -The following are [enterprise-only](https://www.cockroachlabs.com/docs/v24.1/enterprise-licensing) features. [Request a 30-day trial license](https://www.cockroachlabs.com/get-cockroachdb/enterprise/) to try them out. -{{site.data.alerts.end}} - -- The [`READ COMMITTED`]({% link v24.1/read-committed.md %}) isolation level now requires the cluster to have a valid [enterprise license](https://cockroachlabs.com/docs/v24.1/licensing-faqs#obtain-a-license). Otherwise, transactions which are configured to run as `READ COMMITTED` will be upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), as described in [Backward-incompatible changes](#read-committed-transaction-upgrade). [#120154](https://github.com/cockroachdb/cockroach/pull/120154) -

Backward-incompatible changes

Before [upgrading to CockroachDB v24.1]({% link v24.1/upgrade-cockroach-version.md %}), be sure to review the following backward-incompatible changes, as well as [key cluster setting changes](#v24-1-0-cluster-settings), and adjust your deployment as necessary. - [`AS OF SYSTEM TIME`]({% link v23.2/as-of-system-time.md %}) queries can no longer use a timestamp followed by a question mark to signify a future-time value. This was an undocumented syntax. [#116830](https://github.com/cockroachdb/cockroach/pull/116830) - The [`READ COMMITTED`]({% link v24.1/read-committed.md %}) isolation level now requires the cluster to have a valid [enterprise license](https://cockroachlabs.com/docs/v24.1/licensing-faqs#obtain-a-license). Otherwise, transactions which are configured to run as `READ COMMITTED` will be upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), as described in the next note. [#120154](https://github.com/cockroachdb/cockroach/pull/120154) -- The `sql.txn.read_committed_isolation.enabled` [cluster setting]({% link v24.1/cluster-settings.md %}) is now `true` by default. As a result, [`READ COMMITTED`]({% link v24.1/read-committed.md %}) transactions are **not** automatically upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), and will run as `READ COMMITTED` by default. On v23.2, refer to the [**Upgrades of SQL Transaction Isolation Level**]({% link v24.1/ui-sql-dashboard.md %}#upgrades-of-sql-transaction-isolation-level) graph in the DB Console to check whether any transaction is being upgraded from a weaker isolation level to `SERIALIZABLE`, and could therefore run differently on v24.1. [#118479](https://github.com/cockroachdb/cockroach/pull/118479) +- The `sql.txn.read_committed_isolation.enabled` [cluster setting]({% link v24.1/cluster-settings.md %}) is now `true` by default. As a result, [`READ COMMITTED`]({% link v24.1/read-committed.md %}) transactions are **not** automatically upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), and will run as `READ COMMITTED` by default. On v23.2, refer to the [**Upgrades of SQL Transaction Isolation Level**](https://www.cockroachlabs.com/docs/v24.1/ui-sql-dashboard#upgrades-of-sql-transaction-isolation-level) graph in the DB Console to check whether any transaction is being upgraded from a weaker isolation level to `SERIALIZABLE`, and could therefore run differently on v24.1. [#118479](https://github.com/cockroachdb/cockroach/pull/118479)

Key Cluster Setting Changes

The following changes should be reviewed prior to upgrading. Default cluster settings will be used unless you have manually set a value for a setting. This can be confirmed by checking the `system.settings` table (`select * from system.settings`) to view the non-default settings. -- TBD +- `sql.txn.read_committed_isolation.enabled` is now `true` by default. When set to `true`, transactions use the `READ COMMITTED` isolation level if specified by `BEGIN`/`SET` commands. + - If the cluster setting is `false`, as was the default in v23.2, such `READ COMMITTED` transactions will instead run as `SERIALIZABLE`. + - To check whether any transactions are being upgraded to `SERIALIZABLE`, see the [**Upgrades of SQL Transaction Isolation Level**](https://www.cockroachlabs.com/docs/v24.1/ui-sql-dashboard#upgrades-of-sql-transaction-isolation-level) graph in the DB Console." +- `changefeed.balance_range_distribution.enable` is now deprecated. Instead, use the new [cluster setting]({% link v23.2/cluster-settings.md %}) `changefeed.default_range_distribution_strategy`. `changefeed.default_range_distribution_strategy='balanced_simple'` has the same effect as setting `changefeed.balance_range_distribution.enable=true`. It does not require `initial_scan='only'`, which was required by the old setting. [#115166][#115166] +- Added the [cluster setting]({% link v24.1/cluster-settings.md %}) `security.client_cert.subject_required.enabled` which enforces a mandatory requirement for the client certificate's role subject to be set. The subject can be defined through either the subject role option or by specifying the `root-cert-distinguished-name` and `node-cert-distinguished-name` properties. This setting applies to both RPC access and login via authCert. [#122368][#122368] +- The [cluster setting]({% link v23.2/cluster-settings.md %}) `sql.contention.record_serialization_conflicts.enabled` is now `on` by default. This means any [`40001` errors]({% link v23.2/transaction-retry-error-reference.md %}) that are returned containing conflicting transaction information will be recorded by the contention registry, improving the ability to troubleshoot. For more information, refer to the [Insights page]({% link v24.1/ui-insights-page.md %}) documentation. [#116664][#116664] +- The new [cluster setting]({% link v24.1/cluster-settings.md %}) `storage.sstable.compression_algorithm` configures the compression algorithm used when compressing sstable blocks. Supported values are: "snappy" and "zstd" [snappy = `1`, zstd = `2`]. Changing the default of snappy to zstd can result in substantial performance improvement, however, the effects this change may be highly dependent on the workload and data, so experimentation is recommended before enabling zstd in production environments. +- The new setting `storage.wal_failover.unhealthy_op_threshold` allows you to set the latency threshold at which a WAL (Write-Ahead Logging) write is considered unhealthy. When exceeded, the node will attempt to write WAL entries to a secondary store's volume. For more information, refer to [#120509][#120509] +- Added the `server.max_open_transactions_per_gateway` [cluster setting]({% link v23.2/cluster-settings.md %}). When set to a non-negative value, non-`admin` users cannot execute a query if the number of transactions open on the current gateway node is already at the configured limit. [#118781][#118781] +- Introduced the `server.redact_sensitive_settings.enabled` [cluster setting](https://www.cockroachlabs.com/docs/v23.2/cluster-settings), which is false by default. If set to `true`, then the values of the following settings will be redacted when accessed through `SHOW` commands or other introspection interfaces. In the future, any other sensitive cluster settings that are added will be redacted as well. Users who have the `MODIFYCLUSTERSETTING` [privilege](https://www.cockroachlabs.com/docs/v23.2/security-reference/authorization#managing-privileges) can always view the unredacted settings. [#117729][#117729] +- The new boolean changefeed option [`ignore_disable_changefeed_replication`](../v24.1/create-changefeed.html#ignore-disable-changefeed), when set to `true`, prevents the changefeed from filtering events even if CDC filtering is configured via the `disable_changefeed_replication` [session variable](../v24.1/session-variables.html), `sql.ttl.changefeed_replication.disabled` [cluster setting](../v24.1/cluster-settings.html), or the `ttl_disable_changefeed_replication` [table storage parameter](../v24.1/alter-table.html#table-storage-parameters). [#120255][#120255] +- The provisioned-rate field, if specified, +should no longer accept a disk-name or an optional bandwidth field. To +use the disk bandwidth constraint the store-spec must contain +`provisioned-rate=bandwidth=`, otherwise the cluster +setting `kvadmission.store.provisioned_bandwidth` will be used. When set to a non-zero value, this is used as the provisioned bandwidth (in bytes/s), for each store. It can be overridden on a per-store basis using the --store flag. Note that setting the provisioned bandwidth to a positive value may enable disk bandwidth based admission control, since `admission.disk_bandwidth_tokens.elastic.enabled` defaults to `true`. +- Removed in v24.1: + - `sql.show_ranges_deprecated_behavior.enabled` + - `sql.trace.session_eventlog.enabled` + - `changefeed.balance_range_distribution.enabled`

Deprecations

-{% comment %}TODO: Intro para? Each sibling section has one.{% endcomment %} - -- `changefeed.balance_range_distribution.enable` is now deprecated. Instead, use the new [cluster setting]({% link v23.2/cluster-settings.md %}) `changefeed.default_range_distribution_strategy`. `changefeed.default_range_distribution_strategy='balanced_simple'` has the same effect as setting `changefeed.balance_range_distribution.enable=true`. It does not require `initial_scan='only'`, which was required by the old setting. [#115166][#115166] +- `changefeed.balance_range_distribution.enable` is now deprecated. Instead, use the new [cluster setting]({% link v24.1/cluster-settings.md %}) `changefeed.default_range_distribution_strategy`. `changefeed.default_range_distribution_strategy='balanced_simple'` has the same effect as setting `changefeed.balance_range_distribution.enable=true`. It does not require `initial_scan='only'`, which was required by the old setting. [#115166][#115166] - The `cockroach connect` command has been removed. This command was [deprecated]({% link releases/v23.2.md %}#v23-2-0-deprecations) in CockroachDB v23.2. [#113893][#113893]

Known limitations

@@ -274,7 +529,22 @@ For information about new and unresolved limitations in CockroachDB v24.1, with Resource | Topic | Description ---------------------+--------------------------------------------+------------- -Cockroach University | [Example link](https://example.com/course1)| Summary here -Cockroach University | [Example link](https://example.com/course2)| Summary here -Docs | [Example link](https://example.com/doc1) | Summary here -Docs | [Example link](https://example.com/doc2) | Summary here +Cockroach University | [Introduction to Distributed SQL and CockroachDB](https://university.cockroachlabs.com/courses/course-v1:crl+intro-to-distributed-sql-and-cockroachdb+self-paced/about) | This course introduces the core concepts behind distributed SQL databases and describes how CockroachDB fits into this landscape. You will learn what differentiates CockroachDB from both legacy SQL and NoSQL databases and how CockroachDB ensures consistent transactions without sacrificing scale and resiliency. You'll learn about CockroachDB's seamless horizontal scalability, distributed transactions with strict ACID guarantees, and high availability and resilience. +Cockroach University | [Practical First Steps with CockroachDB](https://university.cockroachlabs.com/courses/course-v1:crl+practical-first-steps-with-crdb+self-paced/about) | This course will give you the tools you need to get started with CockroachDB. During the course, you will learn how to spin up a cluster, use the Admin UI to monitor cluster activity, and use SQL shell to solve a set of hands-on exercises. +Cockroach University | [Enterprise Application Development with CockroachDB](https://university.cockroachlabs.com/courses/course-v1:crl+client-side-txn-handling+self-paced/about) | This course is the first in a series designed to equip you with best practices for mastering application-level (client-side) transaction management in CockroachDB. We'll dive deep on common differences between CockroachDB and legacy SQL databases and help you sidestep challenges you might encounter when migrating to CockroachDB from Oracle, PostgreSQL, and MySQL. +Cockroach University | [Building a Highly Resilient Multi-region Database using CockroachDB](https://university.cockroachlabs.com/courses/course-v1:crl+intro-to-resilience-in-multi-region+self-paced/about) | This course is part of a series introducing solutions to running low-latency, highly resilient applications for data-intensive workloads on CockroachDB. In this course we focus on surviving large-scale infrastructure failures like losing an entire cloud region without losing data during recovery. We’ll show you how to use CockroachDB survival goals in a multi-region cluster to implement a highly resilient database that survives node or network failures across multiple regions with zero data loss. +Docs | [Migration Overview](https://www.cockroachlabs.com/docs/v23.2/migration-overview) | This page summarizes the steps of migrating a database to CockroachDB, which include testing and updating your schema to work with CockroachDB, moving your data into CockroachDB, and testing and updating your application. +Docs | [Architecture Overview](https://www.cockroachlabs.com/docs/v23.2/architecture/overview) | This page provides a starting point for understanding the architecture and design choices that enable CockroachDB's scalability and consistency capabilities. +Docs | [SQL Feature Support](https://www.cockroachlabs.com/docs/v23.2/sql-feature-support) | The page summarizes the standard SQL features CockroachDB supports as well as common extensions to the standard. +Docs | [Change Data Capture Overview](https://www.cockroachlabs.com/docs/v23.2/change-data-capture-overview) | This page summarizes CockroachDB's data streaming capabilities. Change data capture (CDC) provides efficient, distributed, row-level changefeeds into a configurable sink for downstream processing such as reporting, caching, or full-text indexing. +Docs | [Backup Architecture](https://www.cockroachlabs.com/docs/v23.2/backup-architecture) | This page describes the backup job workflow with a high-level overview, diagrams, and more details on each phase of the job. + +[#115166]: https://github.com/cockroachdb/cockroach/pull/115166 +[#113893]: https://github.com/cockroachdb/cockroach/pull/113893 +[#115166]: https://github.com/cockroachdb/cockroach/pull/115166 +[#122368]: https://github.com/cockroachdb/cockroach/pull/122368 +[#116664]: https://github.com/cockroachdb/cockroach/pull/116664 +[#120509]: https://github.com/cockroachdb/cockroach/pull/120509 +[#118781]: https://github.com/cockroachdb/cockroach/pull/118781 +[#117729]: https://github.com/cockroachdb/cockroach/pull/117729 +[#120255]: https://github.com/cockroachdb/cockroach/pull/120255 diff --git a/src/current/_includes/sidebar-all-releases.json b/src/current/_includes/sidebar-all-releases.json index 266f6be8432..ec03c02ae25 100644 --- a/src/current/_includes/sidebar-all-releases.json +++ b/src/current/_includes/sidebar-all-releases.json @@ -1,17 +1,5 @@ {%- assign versions = site.data.versions | where_exp: "versions", "versions.major_version != site.versions['dev']" | where_exp: "versions", "versions.major_version != site.versions['stable']" | map: "major_version" -%} {%- comment -%} versions iterates through the list of major versions (e.g., v21.2) in _data/versions.csv and returns all releases that are not dev or stable. We then pull only the major version name instead of the whole dictionary with map: "major_version" {%- endcomment -%} -{ - "title": "Latest Production Release", - "urls": [ - "/releases/{{ site.versions["stable"] }}.html" - ] -}{% unless site.versions["stable"] == site.versions["dev"] %}, -{ - "title": "Latest Testing Release", - "urls": [ - "/releases/{{ site.versions["dev"] }}.html" - ] -}{% endunless %}, { "title": "CockroachDB Releases", "urls": [ @@ -19,7 +7,13 @@ "/releases/" {% for v in versions %} ,"/releases/{{ v }}.html" - {% endfor %} + {% endfor %} + ] +}, +{ + "title": "CockroachDB Kubernetes Operator", + "urls": [ + "/releases/kubernetes-operator.html" ] }, { @@ -49,16 +43,4 @@ ,"{{ x.url }}" {% endfor %} ] -}, -{ - "title": "Cloud Releases", - "urls": [ - "/releases/cloud.html" - ] -}, -{ - "title": "Kubernetes Operator", - "urls": [ - "/releases/kubernetes-operator.html" - ] } diff --git a/src/current/_includes/sidebar-data-v23.2.json b/src/current/_includes/sidebar-data-v23.2.json index f2aedcaf392..85e0a95ba8a 100644 --- a/src/current/_includes/sidebar-data-v23.2.json +++ b/src/current/_includes/sidebar-data-v23.2.json @@ -22,5 +22,6 @@ {% include_cached v23.2/sidebar-data/sql.json %}, {% include_cached v23.2/sidebar-data/reference.json %}, {% include_cached v23.2/sidebar-data/faqs.json %}, + {% include_cached v23.2/sidebar-data/releases.json %}, {% include_cached sidebar-data-cockroach-university.json %} ] diff --git a/src/current/_includes/sidebar-data-v24.1.json b/src/current/_includes/sidebar-data-v24.1.json index d9eb75825d8..5401d2dd934 100644 --- a/src/current/_includes/sidebar-data-v24.1.json +++ b/src/current/_includes/sidebar-data-v24.1.json @@ -7,7 +7,7 @@ ] }, {% include_cached v24.1/sidebar-data/get-started.json %}, - {% include_cached v24.1/sidebar-data/releases.json %}, + {% include_cached v24.1/sidebar-data/latest-releases.json %}, {% include_cached v24.1/sidebar-data/feature-overview.json %}, {% include_cached v24.1/sidebar-data/connect-to-cockroachdb.json %}, {% include_cached v24.1/sidebar-data/migrate.json %}, @@ -22,5 +22,6 @@ {% include_cached v24.1/sidebar-data/sql.json %}, {% include_cached v24.1/sidebar-data/reference.json %}, {% include_cached v24.1/sidebar-data/faqs.json %}, + {% include_cached v24.1/sidebar-data/releases.json %}, {% include_cached sidebar-data-cockroach-university.json %} ] diff --git a/src/current/_includes/sidebar-releases.json b/src/current/_includes/sidebar-releases.json index 26a6c95da8a..351e4192850 100644 --- a/src/current/_includes/sidebar-releases.json +++ b/src/current/_includes/sidebar-releases.json @@ -7,7 +7,7 @@ {% assign v_test = site.data.versions | where_exp: "v_test", "v_test.release_date == 'N/A'" | sort: "release_date" | last | map: "major_version" %} {% comment %} v_test iterates through the list of major versions in _data/versions.csv and returns the single latest testing version (if the release date is in the future or not otherwise specified). It's possible there is no testing release (in between GA of a version and the first alpha of the following version). {% endcomment %} { - "title": "CockroachDB Releases", + "title": "CockroachDB", "items": [ { "title": "Latest Production Release", @@ -20,7 +20,7 @@ "urls": [ "/releases/{{ site.versions["dev"] }}.html" ] - },{% endunless %} + }{% endunless %}, { "title": "All Releases", "urls": [ @@ -35,12 +35,15 @@ ] }, {% endfor %} + {% if v_test[0] %} {% comment %} check if a testing version is available {% endcomment %} { - "title": "Staged Release Process", + "title": "Latest Testing Release", "urls": [ - "/releases/staged-release-process.html" + {% comment %} check if a testing version is available and pull the latest testing version {% endcomment %} + "/releases/{{ v_test[0] }}.html" ] }, + {% endif %} { "title": "Release Support Policy", "urls": [ @@ -55,25 +58,25 @@ } ] }, -{% assign advisories = site.pages | where_exp: "advisories", "advisories.path contains 'advisories'" | where_exp: "advisories", "advisories.index != 'true'" %} -{ - "title": "Technical Advisories", - "urls": [ - "/advisories/index.html" - {% for x in advisories %} - ,"{{ x.url }}" - {% endfor %} - ] -}, { - "title": "Cloud Releases", + "title": "CockroachDB Cloud", "urls": [ "/releases/cloud.html" ] }, { - "title": "Kubernetes Operator", + "title": "CockroachDB Kubernetes Operator", "urls": [ "/releases/kubernetes-operator.html" ] +}, +{% assign advisories = site.pages | where_exp: "advisories", "advisories.path contains 'advisories'" | where_exp: "advisories", "advisories.index != 'true'" %} +{ + "title": "Technical Advisories", + "urls": [ + "/advisories/index.html" + {% for x in advisories %} + ,"{{ x.url }}" + {% endfor %} + ] } diff --git a/src/current/_includes/v23.2/sidebar-data/releases.json b/src/current/_includes/v23.2/sidebar-data/releases.json index 8ee555fdc9a..fb49f7c9acc 100644 --- a/src/current/_includes/v23.2/sidebar-data/releases.json +++ b/src/current/_includes/v23.2/sidebar-data/releases.json @@ -1,5 +1,5 @@ { - "title": "Releases", + "title": "CockroachDB Releases", "is_top_level": true, "items": [ {% include_cached sidebar-all-releases.json %} diff --git a/src/current/_includes/v24.1/sidebar-data/latest-releases.json b/src/current/_includes/v24.1/sidebar-data/latest-releases.json index e69de29bb2d..e25f8c0fa7a 100644 --- a/src/current/_includes/v24.1/sidebar-data/latest-releases.json +++ b/src/current/_includes/v24.1/sidebar-data/latest-releases.json @@ -0,0 +1,7 @@ +{ + "title": "Latest Releases", + "is_top_level": true, + "items": [ + {% include_cached sidebar-latest-releases.json %} + ] + } diff --git a/src/current/_includes/v24.1/sidebar-data/releases.json b/src/current/_includes/v24.1/sidebar-data/releases.json index 18f2a1b7c6a..fb49f7c9acc 100644 --- a/src/current/_includes/v24.1/sidebar-data/releases.json +++ b/src/current/_includes/v24.1/sidebar-data/releases.json @@ -1,7 +1,7 @@ { - "title": "Releases", + "title": "CockroachDB Releases", "is_top_level": true, "items": [ - {% include_cached sidebar-releases.json %} + {% include_cached sidebar-all-releases.json %} ] } diff --git a/src/current/releases/index.md b/src/current/releases/index.md index 19655d9ffea..6dd8b41ec3b 100644 --- a/src/current/releases/index.md +++ b/src/current/releases/index.md @@ -109,7 +109,7 @@ As of 2024, CockroachDB is released under a staged delivery process. New release {% for r in releases %} - {% capture lts_link_linux %}{% if r.lts == true %} ([LTS]({% link releases/release-support-policy.md %}#support-types)){% endif %}{% endcapture %} + {% capture lts_link_linux %}{% if r.lts == true %} ([LTS]({% link releases/release-support-policy.md %})){% endif %}{% endcapture %} {% comment %} Add "Latest" class to release if it's the latest release. {% endcomment %} @@ -272,7 +272,7 @@ macOS downloads are **experimental**. Experimental downloads are not yet qualifi {% for r in releases %} - {% capture lts_link_docker %}{% if r.lts == true %} ([LTS]({% link releases/release-support-policy.md %}#support-types)){% endif %}{% endcapture %} + {% capture lts_link_docker %}{% if r.lts == true %} ([LTS]({% link releases/release-support-policy.md %})){% endif %}{% endcapture %} {% comment %} Add "Latest" class to release if it's the latest release. {% endcomment %} From 740291d6ce97d93361c93860440424686eb69018 Mon Sep 17 00:00:00 2001 From: Mike Lewis <76072290+mikeCRL@users.noreply.github.com> Date: Mon, 20 May 2024 15:07:52 -0400 Subject: [PATCH 14/30] Fix support date (#18569) --- src/current/_data/versions.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/current/_data/versions.csv b/src/current/_data/versions.csv index 7213217287f..8de94d3dfd4 100644 --- a/src/current/_data/versions.csv +++ b/src/current/_data/versions.csv @@ -13,4 +13,4 @@ v22.1,2022-05-24,2023-05-24,2023-11-24,N/A,N/A,N/A,N/A,N/A,v21.2,release-22.1 v22.2,2022-12-05,2023-12-05,2024-06-05,N/A,N/A,N/A,N/A,N/A,v22.1,release-22.2 v23.1,2023-05-15,2024-05-15,2024-11-15,23.1.11,23.1.12,2023-11-13,2024-11-13,2025-11-13,v22.2,release-23.1 v23.2,2024-02-05,2025-02-05,2025-08-05,N/A,N/A,N/A,N/A,N/A,v23.1,release-23.2 -v24.1,2024-05-20,2026-05-20,2025-11-20,N/A,N/A,N/A,N/A,N/A,v23.2,release-24.1 +v24.1,2024-05-20,2025-05-20,2025-11-20,N/A,N/A,N/A,N/A,N/A,v23.2,release-24.1 From a10ae2cfa6eda3e873a7708c00f0b74d9418842d Mon Sep 17 00:00:00 2001 From: "Matt Linville (he/him)" Date: Mon, 20 May 2024 12:19:45 -0700 Subject: [PATCH 15/30] Attempt to revert nav changes (#18568) --- .../_includes/sidebar-all-releases.json | 32 +++++++++++++++---- src/current/_includes/sidebar-data-v24.1.json | 3 +- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/current/_includes/sidebar-all-releases.json b/src/current/_includes/sidebar-all-releases.json index ec03c02ae25..266f6be8432 100644 --- a/src/current/_includes/sidebar-all-releases.json +++ b/src/current/_includes/sidebar-all-releases.json @@ -1,5 +1,17 @@ {%- assign versions = site.data.versions | where_exp: "versions", "versions.major_version != site.versions['dev']" | where_exp: "versions", "versions.major_version != site.versions['stable']" | map: "major_version" -%} {%- comment -%} versions iterates through the list of major versions (e.g., v21.2) in _data/versions.csv and returns all releases that are not dev or stable. We then pull only the major version name instead of the whole dictionary with map: "major_version" {%- endcomment -%} +{ + "title": "Latest Production Release", + "urls": [ + "/releases/{{ site.versions["stable"] }}.html" + ] +}{% unless site.versions["stable"] == site.versions["dev"] %}, +{ + "title": "Latest Testing Release", + "urls": [ + "/releases/{{ site.versions["dev"] }}.html" + ] +}{% endunless %}, { "title": "CockroachDB Releases", "urls": [ @@ -7,13 +19,7 @@ "/releases/" {% for v in versions %} ,"/releases/{{ v }}.html" - {% endfor %} - ] -}, -{ - "title": "CockroachDB Kubernetes Operator", - "urls": [ - "/releases/kubernetes-operator.html" + {% endfor %} ] }, { @@ -43,4 +49,16 @@ ,"{{ x.url }}" {% endfor %} ] +}, +{ + "title": "Cloud Releases", + "urls": [ + "/releases/cloud.html" + ] +}, +{ + "title": "Kubernetes Operator", + "urls": [ + "/releases/kubernetes-operator.html" + ] } diff --git a/src/current/_includes/sidebar-data-v24.1.json b/src/current/_includes/sidebar-data-v24.1.json index 5401d2dd934..d9eb75825d8 100644 --- a/src/current/_includes/sidebar-data-v24.1.json +++ b/src/current/_includes/sidebar-data-v24.1.json @@ -7,7 +7,7 @@ ] }, {% include_cached v24.1/sidebar-data/get-started.json %}, - {% include_cached v24.1/sidebar-data/latest-releases.json %}, + {% include_cached v24.1/sidebar-data/releases.json %}, {% include_cached v24.1/sidebar-data/feature-overview.json %}, {% include_cached v24.1/sidebar-data/connect-to-cockroachdb.json %}, {% include_cached v24.1/sidebar-data/migrate.json %}, @@ -22,6 +22,5 @@ {% include_cached v24.1/sidebar-data/sql.json %}, {% include_cached v24.1/sidebar-data/reference.json %}, {% include_cached v24.1/sidebar-data/faqs.json %}, - {% include_cached v24.1/sidebar-data/releases.json %}, {% include_cached sidebar-data-cockroach-university.json %} ] From 4c5a6f4d5aa9dee91ce653ff0690018e763fec8a Mon Sep 17 00:00:00 2001 From: Mike Lewis <76072290+mikeCRL@users.noreply.github.com> Date: Mon, 20 May 2024 15:45:06 -0400 Subject: [PATCH 16/30] Minor HTML fixes in 24.1 release notes (#18570) --- src/current/_includes/releases/v24.1/v24.1.0.md | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/current/_includes/releases/v24.1/v24.1.0.md b/src/current/_includes/releases/v24.1/v24.1.0.md index 1b8f6db00ca..029c8bbb70c 100644 --- a/src/current/_includes/releases/v24.1/v24.1.0.md +++ b/src/current/_includes/releases/v24.1/v24.1.0.md @@ -364,7 +364,7 @@ COMMITTED more easily, without needing to teach the schema changer about

New Regions for CockroachDB Dedicated

Cockroach Cloud is now available in additional Azure regions. This expansion enhances our global reach and offers more options for deploying resilient, distributed databases with low latency and high availability.

-

With these new regions, you can now select a geographical location that best fits your needs, reducing data latency and ensuring compliance with regional data residency regulations. Deploying in a region close to your service or customers means improved performance and a better user experience.

+

With these new regions, you can now select a geographical location that best fits your needs, reducing data latency and ensuring compliance with regional data residency regulations. Deploying in a region close to your service or customers means improved performance and a better user experience.

All* {% include icon-no.html %} @@ -443,19 +443,6 @@ COMMITTED more easily, without needing to teach the schema changer about - - - - - - - - - - - - - From 74595c659636931ca50b83f767bc59543073b6a7 Mon Sep 17 00:00:00 2001 From: "Matt Linville (he/him)" Date: Mon, 20 May 2024 12:49:40 -0700 Subject: [PATCH 17/30] Fix display bug in Cloud release notes (#18564) * Fix display bug in Cloud release notes * Put General Updates before Security Updates --- src/current/_includes/releases/cloud/2024-05-20.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/current/_includes/releases/cloud/2024-05-20.md b/src/current/_includes/releases/cloud/2024-05-20.md index 2aed641578b..dd64098ba83 100644 --- a/src/current/_includes/releases/cloud/2024-05-20.md +++ b/src/current/_includes/releases/cloud/2024-05-20.md @@ -3,3 +3,17 @@

General updates

- CockroachDB v24.1 is now generally available for CockroachDB {{ site.data.products.dedicated }}, and is scheduled to be made available for CockroachDB {{ site.data.products.core }} on June 3, 2024{% comment %}Verify{% endcomment %}. For more information, refer to [Create a CockroachDB Dedicated Cluster]({% link cockroachcloud/create-your-cluster.md %}) or [Upgrade to CockroachDB v24.1]({% link cockroachcloud/upgrade-to-v24.1.md %}). +- CockroachDB {{ site.data.products.dedicated }} on AWS is now available in the `me-central-1`(United Arab Emirates) [ region]({% link cockroachcloud/regions.md %}#aws-regions). +- CockroachDB {{ site.data.products.dedicated }} on GCP is now available in new [regions]({% link cockroachcloud/regions.md %}#gcp-regions): + - `europe-southwest1` (Madrid) + - `europe-west8` (Milan) + - `europe-west12` (Paris) + - `me-central1` (Doha) + - `me-west1` (Tel Aviv) + - `us-east5` (Columbus) + - `us-south1` (Dallas) + +

Security updates

+ +- [Configuring private connectivity using Google Cloud Private Service Connect]({% link cockroachcloud/connect-to-your-cluster.md %}#gcp-private-service-connect) is available in [preview](https://www.cockroachlabs.com/docs/{{site.current_cloud_version}}/cockroachdb-feature-availability) for CockroachDB {{ site.data.products.dedicated }} clusters on GCP. [Private connectivity]({% link cockroachcloud/network-authorization.md %}#options-for-controlling-network-access) allows you to establish SQL access to a CockroachDB {{ site.data.products.dedicated }} cluster entirely through cloud provider private infrastructure, without exposing the cluster to the public internet, affording enhanced security and performance. + From fdbf04ede1651fc6419e1c78ef9ade3b0051a262 Mon Sep 17 00:00:00 2001 From: Ryan Kuo <8740013+taroface@users.noreply.github.com> Date: Mon, 20 May 2024 16:20:51 -0400 Subject: [PATCH 18/30] clarify Read Committed note (#18571) --- src/current/_includes/releases/v24.1/v24.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/current/_includes/releases/v24.1/v24.1.0.md b/src/current/_includes/releases/v24.1/v24.1.0.md index 029c8bbb70c..fe36305e67f 100644 --- a/src/current/_includes/releases/v24.1/v24.1.0.md +++ b/src/current/_includes/releases/v24.1/v24.1.0.md @@ -476,7 +476,7 @@ Before [upgrading to CockroachDB v24.1]({% link v24.1/upgrade-cockroach-version. - [`AS OF SYSTEM TIME`]({% link v23.2/as-of-system-time.md %}) queries can no longer use a timestamp followed by a question mark to signify a future-time value. This was an undocumented syntax. [#116830](https://github.com/cockroachdb/cockroach/pull/116830) - The [`READ COMMITTED`]({% link v24.1/read-committed.md %}) isolation level now requires the cluster to have a valid [enterprise license](https://cockroachlabs.com/docs/v24.1/licensing-faqs#obtain-a-license). Otherwise, transactions which are configured to run as `READ COMMITTED` will be upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), as described in the next note. [#120154](https://github.com/cockroachdb/cockroach/pull/120154) -- The `sql.txn.read_committed_isolation.enabled` [cluster setting]({% link v24.1/cluster-settings.md %}) is now `true` by default. As a result, [`READ COMMITTED`]({% link v24.1/read-committed.md %}) transactions are **not** automatically upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), and will run as `READ COMMITTED` by default. On v23.2, refer to the [**Upgrades of SQL Transaction Isolation Level**](https://www.cockroachlabs.com/docs/v24.1/ui-sql-dashboard#upgrades-of-sql-transaction-isolation-level) graph in the DB Console to check whether any transaction is being upgraded from a weaker isolation level to `SERIALIZABLE`, and could therefore run differently on v24.1. [#118479](https://github.com/cockroachdb/cockroach/pull/118479) +- The `sql.txn.read_committed_isolation.enabled` [cluster setting]({% link v24.1/cluster-settings.md %}) is now `true` by default. As a result for enterprise users, [`READ COMMITTED`]({% link v24.1/read-committed.md %}) transactions are **not** automatically upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), and will run as `READ COMMITTED` by default. On v23.2, refer to the [**Upgrades of SQL Transaction Isolation Level**](https://www.cockroachlabs.com/docs/v24.1/ui-sql-dashboard#upgrades-of-sql-transaction-isolation-level) graph in the DB Console to check whether any transaction is being upgraded from a weaker isolation level to `SERIALIZABLE`, and could therefore run differently on v24.1. [#118479](https://github.com/cockroachdb/cockroach/pull/118479)

Key Cluster Setting Changes

From c3aa96305f7a947c5af16854c15c3a0afb24f0fd Mon Sep 17 00:00:00 2001 From: Kathryn May <44557882+kathancox@users.noreply.github.com> Date: Tue, 21 May 2024 11:04:32 -0400 Subject: [PATCH 19/30] Add missing option to restore SQL page (#18572) --- src/current/v23.1/restore.md | 17 +++++++++-------- src/current/v23.2/restore.md | 17 +++++++++-------- src/current/v24.1/restore.md | 17 +++++++++-------- 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/current/v23.1/restore.md b/src/current/v23.1/restore.md index 56127599cc5..8690ae760c0 100644 --- a/src/current/v23.1/restore.md +++ b/src/current/v23.1/restore.md @@ -117,20 +117,21 @@ You can control `RESTORE` behavior using any of the following in the `restore_op Option |
Value
| Description -------------------------------------------------------------------+---------------+------------------------------------------------------- +`debug_pause_on` | `"error" ` | Use to have a `RESTORE` [job]({% link {{ page.version.version }}/show-jobs.md %}) self pause when it encounters an error. The `RESTORE` job can then be [resumed]({% link {{ page.version.version }}/resume-job.md %}) after the error has been fixed or [canceled]({% link {{ page.version.version }}/cancel-job.md %}) to rollback the job.

Example: `WITH debug_pause_on='error'` +`DETACHED` | N/A | When `RESTORE` runs with `DETACHED`, the job will execute asynchronously. The job ID is returned after the restore job creation completes. Note that with `DETACHED` specified, further job information and the job completion status will not be returned. For more on the differences between the returned job data, see the [example]({% link {{ page.version.version }}/restore.md %}#restore-a-backup-asynchronously) below. To check on the job status, use the [`SHOW JOBS`]({% link {{ page.version.version }}/show-jobs.md %}) statement.

To run a restore within a [transaction]({% link {{ page.version.version }}/transactions.md %}), use the `DETACHED` option. +`encryption_passphrase` | Passphrase used to create the [encrypted backup]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) | The passphrase used to decrypt the file(s) that were encrypted by the [`BACKUP`]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) statement. +New in v23.1.12:`EXECUTION LOCALITY` | Key-value pairs | Restricts the execution of the restore to nodes that match the defined [locality filter]({% link {{ page.version.version }}/take-locality-restricted-backups.md %}) requirements.

Example: `WITH EXECUTION LOCALITY = 'region=us-west-1a,cloud=aws'` +`incremental_location` | [`STRING`]({% link {{ page.version.version }}/string.md %}) | Restore an incremental backup from the alternate collection URI the backup was originally taken with.

Refer to [Restore incremental backups](#restore-the-most-recent-full-or-incremental-backup) for more detail. `into_db` | Database name | Use to [change the target database](#restore-tables-into-a-different-database) for table restores. The target database must exist before a restore with `into_db`. (Does not apply to database or cluster restores.)

Example: `WITH into_db = 'newdb'` +`kms` | [`STRING`]({% link {{ page.version.version }}/string.md %}) | The URI of the cryptographic key stored in a key management service (KMS), or a comma-separated list of key URIs, used to [take and restore encrypted backups]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}#examples). Refer to [URI Formats]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}#uri-formats) on the Encrypted Backups page. The key or keys are used to encrypt the manifest and data files that the `BACKUP` statement generates, decrypt them during a [restore]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}#examples) operation, and list the contents of the backup when using [`SHOW BACKUP`]({% link {{ page.version.version }}/show-backup.md %}).

AWS KMS, Google Cloud KMS, and Azure Key Vault are supported. `new_db_name` | Database name | [Rename a database during a restore](#rename-a-database-on-restore). The existing backed-up database can remain active while the same database is restored with a different name.

Example: `RESTORE DATABASE movr ... WITH new_db_name = 'new_movr'` +`schema_only` | N/A | Verify that a backup is valid by running `RESTORE ... schema_only`, which will restore the backed-up schema without any user data. Refer to [Backup Validation]({% link {{ page.version.version }}/backup-validation.md %}#validate-a-backup-is-restorable) for detail and an example. +`skip_localities_check` | N/A | Use to skip checking localities of a cluster before a restore when there are mismatched [cluster regions]({% link {{ page.version.version }}/multiregion-overview.md %}#cluster-regions) between the backup's cluster and the target cluster.

Example: `WITH skip_localities_check` `skip_missing_foreign_keys` | N/A | Use to remove the missing [foreign key]({% link {{ page.version.version }}/foreign-key.md %}) constraints before restoring.

Example: `WITH skip_missing_foreign_keys` `skip_missing_sequences` | N/A | Use to ignore [sequence]({% link {{ page.version.version }}/show-sequences.md %}) dependencies (i.e., the `DEFAULT` expression that uses the sequence).

Example: `WITH skip_missing_sequences` `skip_missing_sequence_owners` | N/A | Must be used when restoring either a table that was previously a [sequence owner]({% link {{ page.version.version }}/create-sequence.md %}#owned-by) or a sequence that was previously owned by a table.

Example: `WITH skip_missing_sequence_owners` -`skip_missing_views` | N/A | Use to skip restoring [views]({% link {{ page.version.version }}/views.md %}) that cannot be restored because their dependencies are not being restored at the same time.

Example: `WITH skip_missing_views` -`skip_localities_check` | N/A | Use to skip checking localities of a cluster before a restore when there are mismatched [cluster regions]({% link {{ page.version.version }}/multiregion-overview.md %}#cluster-regions) between the backup's cluster and the target cluster.

Example: `WITH skip_localities_check` New in v23.1:`skip_missing_udfs` | N/A | Must be used when restoring a table with referenced [UDF]({% link {{ page.version.version }}/user-defined-functions.md %}) dependencies. Any column's `DEFAULT` expression using UDFs is dropped.

Example: `WITH skip_missing_udfs` -`encryption_passphrase` | Passphrase used to create the [encrypted backup]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) | The passphrase used to decrypt the file(s) that were encrypted by the [`BACKUP`]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) statement. -`DETACHED` | N/A | When `RESTORE` runs with `DETACHED`, the job will execute asynchronously. The job ID is returned after the restore job creation completes. Note that with `DETACHED` specified, further job information and the job completion status will not be returned. For more on the differences between the returned job data, see the [example]({% link {{ page.version.version }}/restore.md %}#restore-a-backup-asynchronously) below. To check on the job status, use the [`SHOW JOBS`]({% link {{ page.version.version }}/show-jobs.md %}) statement.

To run a restore within a [transaction]({% link {{ page.version.version }}/transactions.md %}), use the `DETACHED` option. -New in v23.1.12:`EXECUTION LOCALITY` | Key-value pairs | Restricts the execution of the restore to nodes that match the defined [locality filter]({% link {{ page.version.version }}/take-locality-restricted-backups.md %}) requirements.

Example: `WITH EXECUTION LOCALITY = 'region=us-west-1a,cloud=aws'` -`debug_pause_on` | `"error" ` | Use to have a `RESTORE` [job]({% link {{ page.version.version }}/show-jobs.md %}) self pause when it encounters an error. The `RESTORE` job can then be [resumed]({% link {{ page.version.version }}/resume-job.md %}) after the error has been fixed or [canceled]({% link {{ page.version.version }}/cancel-job.md %}) to rollback the job.

Example: `WITH debug_pause_on='error'` -`incremental_location` | [`STRING`]({% link {{ page.version.version }}/string.md %}) | Restore an incremental backup from the alternate collection URI the backup was originally taken with.

Refer to [Restore incremental backups](#restore-the-most-recent-full-or-incremental-backup) for more detail. -`schema_only` | N/A | Verify that a backup is valid by running `RESTORE ... schema_only`, which will restore the backed-up schema without any user data. Refer to [Backup Validation]({% link {{ page.version.version }}/backup-validation.md %}#validate-a-backup-is-restorable) for detail and an example. +`skip_missing_views` | N/A | Use to skip restoring [views]({% link {{ page.version.version }}/views.md %}) that cannot be restored because their dependencies are not being restored at the same time.

Example: `WITH skip_missing_views` `verify_backup_table_data` | N/A | Run a `schema_only` restore **and** have the restore read all user data from external storage, verify checksums, and discard the user data before writing it to disk. You must also include the `schema_only` option in the `RESTORE` statement with `verify_backup_table_data`. For more detail, see [Backup Validation]({% link {{ page.version.version }}/backup-validation.md %}#validate-backup-table-data-is-restorable). ### Backup file URLs diff --git a/src/current/v23.2/restore.md b/src/current/v23.2/restore.md index 1d2b99d7868..840886cb548 100644 --- a/src/current/v23.2/restore.md +++ b/src/current/v23.2/restore.md @@ -117,20 +117,21 @@ You can control `RESTORE` behavior using any of the following in the `restore_op Option |
Value
| Description -------------------------------------------------------------------+---------------+------------------------------------------------------- +`debug_pause_on` | `"error" ` | Use to have a `RESTORE` [job]({% link {{ page.version.version }}/show-jobs.md %}) self pause when it encounters an error. The `RESTORE` job can then be [resumed]({% link {{ page.version.version }}/resume-job.md %}) after the error has been fixed or [canceled]({% link {{ page.version.version }}/cancel-job.md %}) to rollback the job.

Example: `WITH debug_pause_on='error'` +`DETACHED` | N/A | When `RESTORE` runs with `DETACHED`, the job will execute asynchronously. The job ID is returned after the restore job creation completes. Note that with `DETACHED` specified, further job information and the job completion status will not be returned. For more on the differences between the returned job data, see the [example]({% link {{ page.version.version }}/restore.md %}#restore-a-backup-asynchronously) below. To check on the job status, use the [`SHOW JOBS`]({% link {{ page.version.version }}/show-jobs.md %}) statement.

To run a restore within a [transaction]({% link {{ page.version.version }}/transactions.md %}), use the `DETACHED` option. +`encryption_passphrase` | Passphrase used to create the [encrypted backup]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) | The passphrase used to decrypt the file(s) that were encrypted by the [`BACKUP`]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) statement. +New in v23.2:`EXECUTION LOCALITY` | Key-value pairs | Restricts the execution of the restore to nodes that match the defined [locality filter]({% link {{ page.version.version }}/take-locality-restricted-backups.md %}) requirements.

Example: `WITH EXECUTION LOCALITY = 'region=us-west-1a,cloud=aws'` +`incremental_location` | [`STRING`]({% link {{ page.version.version }}/string.md %}) | Restore an incremental backup from the alternate collection URI the backup was originally taken with.

See [Restore incremental backups](#restore-a-specific-full-or-incremental-backup) for more detail. `into_db` | Database name | Use to [change the target database](#restore-tables-into-a-different-database) for table restores. The target database must exist before a restore with `into_db`. (Does not apply to database or cluster restores.)

Example: `WITH into_db = 'newdb'` +`kms` | [`STRING`]({% link {{ page.version.version }}/string.md %}) | The URI of the cryptographic key stored in a key management service (KMS), or a comma-separated list of key URIs, used to [take and restore encrypted backups]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}#examples). Refer to [URI Formats]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}#uri-formats) on the Encrypted Backups page. The key or keys are used to encrypt the manifest and data files that the `BACKUP` statement generates, decrypt them during a [restore]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}#examples) operation, and list the contents of the backup when using [`SHOW BACKUP`]({% link {{ page.version.version }}/show-backup.md %}).

AWS KMS, Google Cloud KMS, and Azure Key Vault are supported. `new_db_name` | Database name | [Rename a database during a restore](#rename-a-database-on-restore). The existing backed-up database can remain active while the same database is restored with a different name.

Example: `RESTORE DATABASE movr ... WITH new_db_name = 'new_movr'` +`schema_only` | N/A | Verify that a backup is valid by running `RESTORE ... schema_only`, which will restore the backed-up schema without any user data. Refer to [Backup Validation]({% link {{ page.version.version }}/backup-validation.md %}#validate-a-backup-is-restorable) for detail and an example. +`skip_localities_check` | N/A | Use to skip checking localities of a cluster before a restore when there are mismatched [cluster regions]({% link {{ page.version.version }}/multiregion-overview.md %}#cluster-regions) between the backup's cluster and the target cluster.

Example: `WITH skip_localities_check` `skip_missing_foreign_keys` | N/A | Use to remove the missing [foreign key]({% link {{ page.version.version }}/foreign-key.md %}) constraints before restoring.

Example: `WITH skip_missing_foreign_keys` `skip_missing_sequences` | N/A | Use to ignore [sequence]({% link {{ page.version.version }}/show-sequences.md %}) dependencies (i.e., the `DEFAULT` expression that uses the sequence).

Example: `WITH skip_missing_sequences` `skip_missing_sequence_owners` | N/A | Must be used when restoring either a table that was previously a [sequence owner]({% link {{ page.version.version }}/create-sequence.md %}#owned-by) or a sequence that was previously owned by a table.

Example: `WITH skip_missing_sequence_owners` -`skip_missing_views` | N/A | Use to skip restoring [views]({% link {{ page.version.version }}/views.md %}) that cannot be restored because their dependencies are not being restored at the same time.

Example: `WITH skip_missing_views` -`skip_localities_check` | N/A | Use to skip checking localities of a cluster before a restore when there are mismatched [cluster regions]({% link {{ page.version.version }}/multiregion-overview.md %}#cluster-regions) between the backup's cluster and the target cluster.

Example: `WITH skip_localities_check` `skip_missing_udfs` | N/A | Must be used when restoring a table with referenced [UDF]({% link {{ page.version.version }}/user-defined-functions.md %}) dependencies. Any column's `DEFAULT` expression using UDFs is dropped.

Example: `WITH skip_missing_udfs` -`encryption_passphrase` | Passphrase used to create the [encrypted backup]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) | The passphrase used to decrypt the file(s) that were encrypted by the [`BACKUP`]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) statement. -`DETACHED` | N/A | When `RESTORE` runs with `DETACHED`, the job will execute asynchronously. The job ID is returned after the restore job creation completes. Note that with `DETACHED` specified, further job information and the job completion status will not be returned. For more on the differences between the returned job data, see the [example]({% link {{ page.version.version }}/restore.md %}#restore-a-backup-asynchronously) below. To check on the job status, use the [`SHOW JOBS`]({% link {{ page.version.version }}/show-jobs.md %}) statement.

To run a restore within a [transaction]({% link {{ page.version.version }}/transactions.md %}), use the `DETACHED` option. -New in v23.2:`EXECUTION LOCALITY` | Key-value pairs | Restricts the execution of the restore to nodes that match the defined [locality filter]({% link {{ page.version.version }}/take-locality-restricted-backups.md %}) requirements.

Example: `WITH EXECUTION LOCALITY = 'region=us-west-1a,cloud=aws'` -`debug_pause_on` | `"error" ` | Use to have a `RESTORE` [job]({% link {{ page.version.version }}/show-jobs.md %}) self pause when it encounters an error. The `RESTORE` job can then be [resumed]({% link {{ page.version.version }}/resume-job.md %}) after the error has been fixed or [canceled]({% link {{ page.version.version }}/cancel-job.md %}) to rollback the job.

Example: `WITH debug_pause_on='error'` -`incremental_location` | [`STRING`]({% link {{ page.version.version }}/string.md %}) | Restore an incremental backup from the alternate collection URI the backup was originally taken with.

See [Restore incremental backups](#restore-a-specific-full-or-incremental-backup) for more detail. -`schema_only` | N/A | Verify that a backup is valid by running `RESTORE ... schema_only`, which will restore the backed-up schema without any user data. Refer to [Backup Validation]({% link {{ page.version.version }}/backup-validation.md %}#validate-a-backup-is-restorable) for detail and an example. +`skip_missing_views` | N/A | Use to skip restoring [views]({% link {{ page.version.version }}/views.md %}) that cannot be restored because their dependencies are not being restored at the same time.

Example: `WITH skip_missing_views` `verify_backup_table_data` | N/A | Run a `schema_only` restore **and** have the restore read all user data from external storage, verify checksums, and discard the user data before writing it to disk. You must also include the `schema_only` option in the `RESTORE` statement with `verify_backup_table_data`. For more detail, see [Backup Validation]({% link {{ page.version.version }}/backup-validation.md %}#validate-backup-table-data-is-restorable). ### Backup file URLs diff --git a/src/current/v24.1/restore.md b/src/current/v24.1/restore.md index 36d4295b84f..76c6cdda5e3 100644 --- a/src/current/v24.1/restore.md +++ b/src/current/v24.1/restore.md @@ -117,20 +117,21 @@ You can control `RESTORE` behavior using any of the following in the `restore_op Option |
Value
| Description -------------------------------------------------------------------+---------------+------------------------------------------------------- +`debug_pause_on` | `"error" ` | Use to have a `RESTORE` [job]({% link {{ page.version.version }}/show-jobs.md %}) self pause when it encounters an error. The `RESTORE` job can then be [resumed]({% link {{ page.version.version }}/resume-job.md %}) after the error has been fixed or [canceled]({% link {{ page.version.version }}/cancel-job.md %}) to rollback the job.

Example: `WITH debug_pause_on='error'` +`DETACHED` | N/A | When `RESTORE` runs with `DETACHED`, the job will execute asynchronously. The job ID is returned after the restore job creation completes. Note that with `DETACHED` specified, further job information and the job completion status will not be returned. For more on the differences between the returned job data, see the [example]({% link {{ page.version.version }}/restore.md %}#restore-a-backup-asynchronously) below. To check on the job status, use the [`SHOW JOBS`]({% link {{ page.version.version }}/show-jobs.md %}) statement.

To run a restore within a [transaction]({% link {{ page.version.version }}/transactions.md %}), use the `DETACHED` option. +`encryption_passphrase` | Passphrase used to create the [encrypted backup]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) | The passphrase used to decrypt the file(s) that were encrypted by the [`BACKUP`]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) statement. +`EXECUTION LOCALITY` | Key-value pairs | Restricts the execution of the restore to nodes that match the defined [locality filter]({% link {{ page.version.version }}/take-locality-restricted-backups.md %}) requirements.

Example: `WITH EXECUTION LOCALITY = 'region=us-west-1a,cloud=aws'` +`incremental_location` | [`STRING`]({% link {{ page.version.version }}/string.md %}) | Restore an incremental backup from the alternate collection URI the backup was originally taken with.

See [Restore incremental backups](#restore-a-specific-full-or-incremental-backup) for more detail. `into_db` | Database name | Use to [change the target database](#restore-tables-into-a-different-database) for table restores. The target database must exist before a restore with `into_db`. (Does not apply to database or cluster restores.)

Example: `WITH into_db = 'newdb'` +`kms` | [`STRING`]({% link {{ page.version.version }}/string.md %}) | The URI of the cryptographic key stored in a key management service (KMS), or a comma-separated list of key URIs, used to [take and restore encrypted backups]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}#examples). Refer to [URI Formats]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}#uri-formats) on the Encrypted Backups page. The key or keys are used to encrypt the manifest and data files that the `BACKUP` statement generates, decrypt them during a [restore]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}#examples) operation, and list the contents of the backup when using [`SHOW BACKUP`]({% link {{ page.version.version }}/show-backup.md %}).

AWS KMS, Google Cloud KMS, and Azure Key Vault are supported. `new_db_name` | Database name | [Rename a database during a restore](#rename-a-database-on-restore). The existing backed-up database can remain active while the same database is restored with a different name.

Example: `RESTORE DATABASE movr ... WITH new_db_name = 'new_movr'` +`schema_only` | N/A | Verify that a backup is valid by running `RESTORE ... schema_only`, which will restore the backed-up schema without any user data. Refer to [Backup Validation]({% link {{ page.version.version }}/backup-validation.md %}#validate-a-backup-is-restorable) for detail and an example. +`skip_localities_check` | N/A | Use to skip checking localities of a cluster before a restore when there are mismatched [cluster regions]({% link {{ page.version.version }}/multiregion-overview.md %}#cluster-regions) between the backup's cluster and the target cluster.

Example: `WITH skip_localities_check` `skip_missing_foreign_keys` | N/A | Use to remove the missing [foreign key]({% link {{ page.version.version }}/foreign-key.md %}) constraints before restoring.

Example: `WITH skip_missing_foreign_keys` `skip_missing_sequences` | N/A | Use to ignore [sequence]({% link {{ page.version.version }}/show-sequences.md %}) dependencies (i.e., the `DEFAULT` expression that uses the sequence).

Example: `WITH skip_missing_sequences` `skip_missing_sequence_owners` | N/A | Must be used when restoring either a table that was previously a [sequence owner]({% link {{ page.version.version }}/create-sequence.md %}#owned-by) or a sequence that was previously owned by a table.

Example: `WITH skip_missing_sequence_owners` -`skip_missing_views` | N/A | Use to skip restoring [views]({% link {{ page.version.version }}/views.md %}) that cannot be restored because their dependencies are not being restored at the same time.

Example: `WITH skip_missing_views` -`skip_localities_check` | N/A | Use to skip checking localities of a cluster before a restore when there are mismatched [cluster regions]({% link {{ page.version.version }}/multiregion-overview.md %}#cluster-regions) between the backup's cluster and the target cluster.

Example: `WITH skip_localities_check` `skip_missing_udfs` | N/A | Must be used when restoring a table with referenced [UDF]({% link {{ page.version.version }}/user-defined-functions.md %}) dependencies. Any column's `DEFAULT` expression using UDFs is dropped.

Example: `WITH skip_missing_udfs` -`encryption_passphrase` | Passphrase used to create the [encrypted backup]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) | The passphrase used to decrypt the file(s) that were encrypted by the [`BACKUP`]({% link {{ page.version.version }}/take-and-restore-encrypted-backups.md %}) statement. -`DETACHED` | N/A | When `RESTORE` runs with `DETACHED`, the job will execute asynchronously. The job ID is returned after the restore job creation completes. Note that with `DETACHED` specified, further job information and the job completion status will not be returned. For more on the differences between the returned job data, see the [example]({% link {{ page.version.version }}/restore.md %}#restore-a-backup-asynchronously) below. To check on the job status, use the [`SHOW JOBS`]({% link {{ page.version.version }}/show-jobs.md %}) statement.

To run a restore within a [transaction]({% link {{ page.version.version }}/transactions.md %}), use the `DETACHED` option. -`EXECUTION LOCALITY` | Key-value pairs | Restricts the execution of the restore to nodes that match the defined [locality filter]({% link {{ page.version.version }}/take-locality-restricted-backups.md %}) requirements.

Example: `WITH EXECUTION LOCALITY = 'region=us-west-1a,cloud=aws'` -`debug_pause_on` | `"error" ` | Use to have a `RESTORE` [job]({% link {{ page.version.version }}/show-jobs.md %}) self pause when it encounters an error. The `RESTORE` job can then be [resumed]({% link {{ page.version.version }}/resume-job.md %}) after the error has been fixed or [canceled]({% link {{ page.version.version }}/cancel-job.md %}) to rollback the job.

Example: `WITH debug_pause_on='error'` -`incremental_location` | [`STRING`]({% link {{ page.version.version }}/string.md %}) | Restore an incremental backup from the alternate collection URI the backup was originally taken with.

See [Restore incremental backups](#restore-a-specific-full-or-incremental-backup) for more detail. -`schema_only` | N/A | Verify that a backup is valid by running `RESTORE ... schema_only`, which will restore the backed-up schema without any user data. Refer to [Backup Validation]({% link {{ page.version.version }}/backup-validation.md %}#validate-a-backup-is-restorable) for detail and an example. +`skip_missing_views` | N/A | Use to skip restoring [views]({% link {{ page.version.version }}/views.md %}) that cannot be restored because their dependencies are not being restored at the same time.

Example: `WITH skip_missing_views` `verify_backup_table_data` | N/A | Run a `schema_only` restore **and** have the restore read all user data from external storage, verify checksums, and discard the user data before writing it to disk. You must also include the `schema_only` option in the `RESTORE` statement with `verify_backup_table_data`. For more detail, see [Backup Validation]({% link {{ page.version.version }}/backup-validation.md %}#validate-backup-table-data-is-restorable). ### Backup file URLs From d8a92825614c3aebd5d52c13f7374cbfb7031017 Mon Sep 17 00:00:00 2001 From: Ryan Kuo <8740013+taroface@users.noreply.github.com> Date: Tue, 21 May 2024 11:40:47 -0400 Subject: [PATCH 20/30] update Read Committed intro (#18561) --- src/current/v24.1/read-committed.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/current/v24.1/read-committed.md b/src/current/v24.1/read-committed.md index c90dd3c0ba0..f361ab71aa6 100644 --- a/src/current/v24.1/read-committed.md +++ b/src/current/v24.1/read-committed.md @@ -15,7 +15,7 @@ docs_area: deploy - You are [migrating an application to CockroachDB]({% link {{ page.version.version }}/migration-overview.md %}) that was built at a `READ COMMITTED` isolation level on the source database, and it is not feasible to modify your application to use `SERIALIZABLE` isolation. -Whereas `SERIALIZABLE` isolation guarantees data correctness by placing transactions into a [serializable ordering]({% link {{ page.version.version }}/demo-serializable.md %}), `READ COMMITTED` isolation permits some [concurrency anomalies](#concurrency-anomalies) in exchange for minimizing transaction aborts, [retries]({% link {{ page.version.version }}/developer-basics.md %}#transaction-retries), and blocking. Compared to `SERIALIZABLE` transactions, `READ COMMITTED` transactions return fewer [serialization errors]({% link {{ page.version.version }}/transaction-retry-error-reference.md %}) that require client-side handling. See [`READ COMMITTED` transaction behavior](#read-committed-transaction-behavior). +Whereas `SERIALIZABLE` isolation guarantees data correctness by placing transactions into a [serializable ordering]({% link {{ page.version.version }}/demo-serializable.md %}), `READ COMMITTED` isolation permits some [concurrency anomalies](#concurrency-anomalies) in exchange for minimizing transaction aborts, [retries]({% link {{ page.version.version }}/developer-basics.md %}#transaction-retries), and blocking. Compared to `SERIALIZABLE` transactions, `READ COMMITTED` transactions do **not** return [serialization errors]({% link {{ page.version.version }}/transaction-retry-error-reference.md %}) that require client-side handling. See [`READ COMMITTED` transaction behavior](#read-committed-transaction-behavior). If your workload is already running well under `SERIALIZABLE` isolation, Cockroach Labs does not recommend changing to `READ COMMITTED` isolation unless there is a specific need. From cd0df613c957461e8255eb14a2e7eb1993e84bc8 Mon Sep 17 00:00:00 2001 From: Mike Lewis <76072290+mikeCRL@users.noreply.github.com> Date: Tue, 21 May 2024 12:51:03 -0400 Subject: [PATCH 21/30] Add more links to 24.1 Feature Highlights, standardize internal URLs (#18576) For 24.1 Feature Highlights (Update src/current/_includes/releases/v24.1/v24.1.0.md), add some links to videos/blog, standardize internal URL version paths, and, as part of the PR review, refine some language. Co-authored-by: Matt Linville (he/him) --- .../_includes/releases/v24.1/v24.1.0.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/current/_includes/releases/v24.1/v24.1.0.md b/src/current/_includes/releases/v24.1/v24.1.0.md index fe36305e67f..e531586294f 100644 --- a/src/current/_includes/releases/v24.1/v24.1.0.md +++ b/src/current/_includes/releases/v24.1/v24.1.0.md @@ -89,7 +89,7 @@ COMMITTED more easily, without needing to teach the schema changer about
@@ -127,7 +127,7 @@ COMMITTED more easily, without needing to teach the schema changer about @@ -147,7 +147,7 @@ COMMITTED more easily, without needing to teach the schema changer about @@ -167,7 +167,7 @@ COMMITTED more easily, without needing to teach the schema changer about @@ -195,7 +195,7 @@ COMMITTED more easily, without needing to teach the schema changer about @@ -223,7 +223,7 @@ COMMITTED more easily, without needing to teach the schema changer about @@ -315,7 +315,7 @@ COMMITTED more easily, without needing to teach the schema changer about @@ -325,7 +325,7 @@ COMMITTED more easily, without needing to teach the schema changer about @@ -335,7 +335,7 @@ COMMITTED more easily, without needing to teach the schema changer about @@ -474,9 +474,9 @@ COMMITTED more easily, without needing to teach the schema changer about Before [upgrading to CockroachDB v24.1]({% link v24.1/upgrade-cockroach-version.md %}), be sure to review the following backward-incompatible changes, as well as [key cluster setting changes](#v24-1-0-cluster-settings), and adjust your deployment as necessary. -- [`AS OF SYSTEM TIME`]({% link v23.2/as-of-system-time.md %}) queries can no longer use a timestamp followed by a question mark to signify a future-time value. This was an undocumented syntax. [#116830](https://github.com/cockroachdb/cockroach/pull/116830) +- [`AS OF SYSTEM TIME`]({% link v24.1/as-of-system-time.md %}) queries can no longer use a timestamp followed by a question mark to signify a future-time value. This was an undocumented syntax. [#116830](https://github.com/cockroachdb/cockroach/pull/116830) - The [`READ COMMITTED`]({% link v24.1/read-committed.md %}) isolation level now requires the cluster to have a valid [enterprise license](https://cockroachlabs.com/docs/v24.1/licensing-faqs#obtain-a-license). Otherwise, transactions which are configured to run as `READ COMMITTED` will be upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), as described in the next note. [#120154](https://github.com/cockroachdb/cockroach/pull/120154) -- The `sql.txn.read_committed_isolation.enabled` [cluster setting]({% link v24.1/cluster-settings.md %}) is now `true` by default. As a result for enterprise users, [`READ COMMITTED`]({% link v24.1/read-committed.md %}) transactions are **not** automatically upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), and will run as `READ COMMITTED` by default. On v23.2, refer to the [**Upgrades of SQL Transaction Isolation Level**](https://www.cockroachlabs.com/docs/v24.1/ui-sql-dashboard#upgrades-of-sql-transaction-isolation-level) graph in the DB Console to check whether any transaction is being upgraded from a weaker isolation level to `SERIALIZABLE`, and could therefore run differently on v24.1. [#118479](https://github.com/cockroachdb/cockroach/pull/118479) +- The `sql.txn.read_committed_isolation.enabled` [cluster setting]({% link v24.1/cluster-settings.md %}) is now `true` by default. As a result for enterprise users, [`READ COMMITTED`]({% link v24.1/read-committed.md %}) transactions are **not** automatically upgraded to [`SERIALIZABLE`]({% link v24.1/demo-serializable.md %}), and will run as `READ COMMITTED` by default. On v23.2, refer to the [Upgrades of SQL Transaction Isolation Level](https://www.cockroachlabs.com/docs/v24.1/ui-sql-dashboard#upgrades-of-sql-transaction-isolation-level) graph in the DB Console to check whether any transaction is being upgraded from a weaker isolation level to `SERIALIZABLE`, and could therefore run differently on v24.1. [#118479](https://github.com/cockroachdb/cockroach/pull/118479)

Key Cluster Setting Changes

@@ -485,13 +485,13 @@ The following changes should be reviewed prior to upgrading. Default cluster set - `sql.txn.read_committed_isolation.enabled` is now `true` by default. When set to `true`, transactions use the `READ COMMITTED` isolation level if specified by `BEGIN`/`SET` commands. - If the cluster setting is `false`, as was the default in v23.2, such `READ COMMITTED` transactions will instead run as `SERIALIZABLE`. - To check whether any transactions are being upgraded to `SERIALIZABLE`, see the [**Upgrades of SQL Transaction Isolation Level**](https://www.cockroachlabs.com/docs/v24.1/ui-sql-dashboard#upgrades-of-sql-transaction-isolation-level) graph in the DB Console." -- `changefeed.balance_range_distribution.enable` is now deprecated. Instead, use the new [cluster setting]({% link v23.2/cluster-settings.md %}) `changefeed.default_range_distribution_strategy`. `changefeed.default_range_distribution_strategy='balanced_simple'` has the same effect as setting `changefeed.balance_range_distribution.enable=true`. It does not require `initial_scan='only'`, which was required by the old setting. [#115166][#115166] +- The `changefeed.balance_range_distribution.enable` [cluster setting]({% link v24.1/cluster-settings.md %}) is now deprecated. Instead, use the new cluster setting `changefeed.default_range_distribution_strategy`. `changefeed.default_range_distribution_strategy='balanced_simple'` has the same effect as setting `changefeed.balance_range_distribution.enable=true`. It does not require `initial_scan='only'`, which was required by the old setting. [#115166][#115166] - Added the [cluster setting]({% link v24.1/cluster-settings.md %}) `security.client_cert.subject_required.enabled` which enforces a mandatory requirement for the client certificate's role subject to be set. The subject can be defined through either the subject role option or by specifying the `root-cert-distinguished-name` and `node-cert-distinguished-name` properties. This setting applies to both RPC access and login via authCert. [#122368][#122368] -- The [cluster setting]({% link v23.2/cluster-settings.md %}) `sql.contention.record_serialization_conflicts.enabled` is now `on` by default. This means any [`40001` errors]({% link v23.2/transaction-retry-error-reference.md %}) that are returned containing conflicting transaction information will be recorded by the contention registry, improving the ability to troubleshoot. For more information, refer to the [Insights page]({% link v24.1/ui-insights-page.md %}) documentation. [#116664][#116664] +- The [cluster setting]({% link v24.1/cluster-settings.md %}) `sql.contention.record_serialization_conflicts.enabled` is now `on` by default. As a result, any [`40001` error]({% link v24.1/transaction-retry-error-reference.md %}) that contains conflicting transaction information will be recorded by the contention registry, improving the ability to troubleshoot. For more information, refer to the [Insights page]({% link v24.1/ui-insights-page.md %}) documentation. [#116664][#116664] - The new [cluster setting]({% link v24.1/cluster-settings.md %}) `storage.sstable.compression_algorithm` configures the compression algorithm used when compressing sstable blocks. Supported values are: "snappy" and "zstd" [snappy = `1`, zstd = `2`]. Changing the default of snappy to zstd can result in substantial performance improvement, however, the effects this change may be highly dependent on the workload and data, so experimentation is recommended before enabling zstd in production environments. - The new setting `storage.wal_failover.unhealthy_op_threshold` allows you to set the latency threshold at which a WAL (Write-Ahead Logging) write is considered unhealthy. When exceeded, the node will attempt to write WAL entries to a secondary store's volume. For more information, refer to [#120509][#120509] -- Added the `server.max_open_transactions_per_gateway` [cluster setting]({% link v23.2/cluster-settings.md %}). When set to a non-negative value, non-`admin` users cannot execute a query if the number of transactions open on the current gateway node is already at the configured limit. [#118781][#118781] -- Introduced the `server.redact_sensitive_settings.enabled` [cluster setting](https://www.cockroachlabs.com/docs/v23.2/cluster-settings), which is false by default. If set to `true`, then the values of the following settings will be redacted when accessed through `SHOW` commands or other introspection interfaces. In the future, any other sensitive cluster settings that are added will be redacted as well. Users who have the `MODIFYCLUSTERSETTING` [privilege](https://www.cockroachlabs.com/docs/v23.2/security-reference/authorization#managing-privileges) can always view the unredacted settings. [#117729][#117729] +- The new `server.max_open_transactions_per_gateway` [cluster setting]({% link v24.1/cluster-settings.md %}), when set to a non-negative value, allows only admin users to execute a query if the number of open transactions on the current gateway node is already at the configured limit. [#118781][#118781] +- The new `server.redact_sensitive_settings.enabled` [cluster setting](https://www.cockroachlabs.com/docs/v24.1/cluster-settings) (`false` by default), when set to `true`, redacts the values of the following settings in the output of `SHOW` commands or other introspection interfaces. In the future, newly-added sensitive cluster settings will be redacted as well. Users with the `MODIFYCLUSTERSETTING` [privilege](https://www.cockroachlabs.com/docs/v24.1/security-reference/authorization#managing-privileges) can always view the unredacted settings. [#117729][#117729] - The new boolean changefeed option [`ignore_disable_changefeed_replication`](../v24.1/create-changefeed.html#ignore-disable-changefeed), when set to `true`, prevents the changefeed from filtering events even if CDC filtering is configured via the `disable_changefeed_replication` [session variable](../v24.1/session-variables.html), `sql.ttl.changefeed_replication.disabled` [cluster setting](../v24.1/cluster-settings.html), or the `ttl_disable_changefeed_replication` [table storage parameter](../v24.1/alter-table.html#table-storage-parameters). [#120255][#120255] - The provisioned-rate field, if specified, should no longer accept a disk-name or an optional bandwidth field. To @@ -520,11 +520,11 @@ Cockroach University | [Introduction to Distributed SQL and CockroachDB](https:/ Cockroach University | [Practical First Steps with CockroachDB](https://university.cockroachlabs.com/courses/course-v1:crl+practical-first-steps-with-crdb+self-paced/about) | This course will give you the tools you need to get started with CockroachDB. During the course, you will learn how to spin up a cluster, use the Admin UI to monitor cluster activity, and use SQL shell to solve a set of hands-on exercises. Cockroach University | [Enterprise Application Development with CockroachDB](https://university.cockroachlabs.com/courses/course-v1:crl+client-side-txn-handling+self-paced/about) | This course is the first in a series designed to equip you with best practices for mastering application-level (client-side) transaction management in CockroachDB. We'll dive deep on common differences between CockroachDB and legacy SQL databases and help you sidestep challenges you might encounter when migrating to CockroachDB from Oracle, PostgreSQL, and MySQL. Cockroach University | [Building a Highly Resilient Multi-region Database using CockroachDB](https://university.cockroachlabs.com/courses/course-v1:crl+intro-to-resilience-in-multi-region+self-paced/about) | This course is part of a series introducing solutions to running low-latency, highly resilient applications for data-intensive workloads on CockroachDB. In this course we focus on surviving large-scale infrastructure failures like losing an entire cloud region without losing data during recovery. We’ll show you how to use CockroachDB survival goals in a multi-region cluster to implement a highly resilient database that survives node or network failures across multiple regions with zero data loss. -Docs | [Migration Overview](https://www.cockroachlabs.com/docs/v23.2/migration-overview) | This page summarizes the steps of migrating a database to CockroachDB, which include testing and updating your schema to work with CockroachDB, moving your data into CockroachDB, and testing and updating your application. -Docs | [Architecture Overview](https://www.cockroachlabs.com/docs/v23.2/architecture/overview) | This page provides a starting point for understanding the architecture and design choices that enable CockroachDB's scalability and consistency capabilities. -Docs | [SQL Feature Support](https://www.cockroachlabs.com/docs/v23.2/sql-feature-support) | The page summarizes the standard SQL features CockroachDB supports as well as common extensions to the standard. -Docs | [Change Data Capture Overview](https://www.cockroachlabs.com/docs/v23.2/change-data-capture-overview) | This page summarizes CockroachDB's data streaming capabilities. Change data capture (CDC) provides efficient, distributed, row-level changefeeds into a configurable sink for downstream processing such as reporting, caching, or full-text indexing. -Docs | [Backup Architecture](https://www.cockroachlabs.com/docs/v23.2/backup-architecture) | This page describes the backup job workflow with a high-level overview, diagrams, and more details on each phase of the job. +Docs | [Migration Overview](https://www.cockroachlabs.com/docs/v24.1/migration-overview) | This page summarizes the steps of migrating a database to CockroachDB, which include testing and updating your schema to work with CockroachDB, moving your data into CockroachDB, and testing and updating your application. +Docs | [Architecture Overview](https://www.cockroachlabs.com/docs/v24.1/architecture/overview) | This page provides a starting point for understanding the architecture and design choices that enable CockroachDB's scalability and consistency capabilities. +Docs | [SQL Feature Support](https://www.cockroachlabs.com/docs/v24.1/sql-feature-support) | The page summarizes the standard SQL features CockroachDB supports as well as common extensions to the standard. +Docs | [Change Data Capture Overview](https://www.cockroachlabs.com/docs/v24.1/change-data-capture-overview) | This page summarizes CockroachDB's data streaming capabilities. Change data capture (CDC) provides efficient, distributed, row-level changefeeds into a configurable sink for downstream processing such as reporting, caching, or full-text indexing. +Docs | [Backup Architecture](https://www.cockroachlabs.com/docs/v24.1/backup-architecture) | This page describes the backup job workflow with a high-level overview, diagrams, and more details on each phase of the job. [#115166]: https://github.com/cockroachdb/cockroach/pull/115166 [#113893]: https://github.com/cockroachdb/cockroach/pull/113893 From e1368798328ccbe44e9ac9678598641a9d3e43cd Mon Sep 17 00:00:00 2001 From: Mike Lewis <76072290+mikeCRL@users.noreply.github.com> Date: Tue, 21 May 2024 15:47:23 -0400 Subject: [PATCH 22/30] Update current_cloud_version to v24.1 (#18579) --- src/current/_config_cockroachdb.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/current/_config_cockroachdb.yml b/src/current/_config_cockroachdb.yml index 813558be019..2404f13d6f1 100644 --- a/src/current/_config_cockroachdb.yml +++ b/src/current/_config_cockroachdb.yml @@ -1,5 +1,5 @@ baseurl: /docs -current_cloud_version: v23.2 +current_cloud_version: v24.1 destination: _site/docs homepage_title: CockroachDB Docs versions: From 4487b8fc5279fa93cc2c42652cbc32fcc2a63ab1 Mon Sep 17 00:00:00 2001 From: Rob Reid Date: Wed, 22 May 2024 14:20:58 +0100 Subject: [PATCH 23/30] fix: Accept incoming merge change (#18581) --- src/current/v24.1/cutover-replication.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/current/v24.1/cutover-replication.md b/src/current/v24.1/cutover-replication.md index 452d5f5c340..ec0cb7e14c4 100644 --- a/src/current/v24.1/cutover-replication.md +++ b/src/current/v24.1/cutover-replication.md @@ -304,13 +304,7 @@ This section illustrates the steps to cut back to the original primary cluster f SET CLUSTER SETTING server.controller.default_target_cluster='{cluster_a}'; ~~~ -<<<<<<< HEAD -At this point, **Cluster A** is once again the primary and **Cluster B** is once again the standby. The clusters are entirely independent. To direct application traffic to the primary (**Cluster A**), you will need to use your own network load balancers, DNS servers, or other network configuration to direct application traffic to **Cluster A**. To manage replicated jobs on the promoted standby, refer to [Job management](#job-management). - -To enable physical cluster replication again, from the primary to the standby (or a completely different cluster), refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}). -======= At this point, **Cluster A** is once again the primary and **Cluster B** is once again the standby. The clusters are entirely independent. To direct application traffic to the primary (**Cluster A**), you will need to use your own network load balancers, DNS servers, or other network configuration to direct application traffic to **Cluster A**. To enable PCR again, from the primary to the standby (or a completely different cluster), refer to [Set Up Physical Cluster Replication]({% link {{ page.version.version }}/set-up-physical-cluster-replication.md %}). ->>>>>>> c9b9928e7 (Bring physical cluster replication into GA v24.1) ## See also From 14e1e746815510366ddfe3d204cc77a2135a06d9 Mon Sep 17 00:00:00 2001 From: Mike Lewis <76072290+mikeCRL@users.noreply.github.com> Date: Wed, 22 May 2024 09:59:27 -0400 Subject: [PATCH 24/30] Fix WAL Cloud availability (#18582) --- src/current/_includes/releases/v24.1/v24.1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/current/_includes/releases/v24.1/v24.1.0.md b/src/current/_includes/releases/v24.1/v24.1.0.md index e531586294f..b7931e5593d 100644 --- a/src/current/_includes/releases/v24.1/v24.1.0.md +++ b/src/current/_includes/releases/v24.1/v24.1.0.md @@ -54,8 +54,8 @@ In CockroachDB Self-Hosted, all available features are free to use unless their - - + +
FeatureAvailability
Ver.Self-HostedDedicatedServerless
Feature detail key

Write Amplification Improvements

-

A number of Pebble improvements are now on by default, leading to a reduction in write amplification. Of particular note, a vast majority of range snapshots previously ingested into L0 are now ingested directly into L6 in the LSM, reducing write and read amplification with positive effects to node stability and SQL performance.

+

A number of Pebble improvements are now on by default, leading to a reduction in write amplification. Of particular note, a vast majority of range snapshots previously ingested into L0 are now ingested directly into L6 in the LSM, reducing write and read amplification with positive effects to node stability and SQL performance.

24.1 {% include icon-yes.html %}

Improved performance for changefeeds at scale

-

Mux rangefeed is a subsystem that improves the performance of rangefeeds with scale. In v24.1, Mux rangefeeds are enabled by default.

+

Mux rangefeed is a subsystem that improves the performance of rangefeeds with scale. In v24.1, Mux rangefeeds are enabled by default.

24.1 {% include icon-yes.html %}

Google Cloud Pub/Sub sink for changefeeds is now generally available

-

The changefeed sink for Google Cloud Pub/Sub is GA.

+

The changefeed sink for Google Cloud Pub/Sub is GA.

24.1 {% include icon-yes.html %}

Set Kafka quotas per changefeed

-

For Kafka sinks, implement a resource usage limit per changefeed by setting a client ID and quota in your Kafka server's configuration.

+

For Kafka sinks, implement a resource usage limit per changefeed by setting a client ID and quota in your Kafka server's configuration.

24.1 {% include icon-yes.html %}

Physical Cluster Replication is now generally available

-

Physical Cluster Replication is an asynchonous replication feature that allows your cluster to recover from full-cluster failure with a low RPO and RTO. In 24.1, it is a GA feature, requiring an Enterprise license, and only available for self-hosted CockroachDB deployments.

+

Physical Cluster Replication is an asynchonous replication feature that allows your cluster to recover from full-cluster failure with a low RPO and RTO. In 24.1, it is a GA feature, requiring an Enterprise license, and only available for self-hosted CockroachDB deployments. For more information, refer to the Physical Cluster Replication overview and a blog post about Physical Cluster Replication.

24.1 {% include icon-yes.html %}

Private connectivity in CockroachDB Dedicated with Google Cloud Private Service Connect

-

Private connectivity using Private Service Connect is now available in preview for CockroachDB Dedicated clusters on GCP.

+

Private connectivity using Private Service Connect is now available in preview for CockroachDB Dedicated clusters on GCP. For more information, refer to Establish Private Connectivity and a video about how to set it up.

All* {% include icon-no.html %}

Read Committed Isolation in GA

Read Committed isolation is now GA. Under READ COMMITTED isolation, DDL operations can be auto-committed, and RETRY_SERIALIZABLE errors are absent. This offers a simpler migration path for applications and removes the need for client-side retry handling, which is necessary under SERIALIZABLE isolation.

-

For more information, you can also view a video demo.

+

For more information, you can also view a video about using Read Committed isolation and the blog post Isolation levels without the anomaly table.

24.1 {% include icon-yes.html %}

SELECT FOR SHARE updates

-

A shared lock that is acquired explicitly using SELECT FOR SHARE or implicitly by a read-committed transaction, can now be re-acquired with higher strength by either using a SELECT FOR UPDATE statement or by writing to the key

+

A shared lock that is acquired explicitly using SELECT FOR SHARE or implicitly by a read-committed transaction, can now be re-acquired with higher strength by either using a SELECT FOR UPDATE statement or by writing to the key.

24.1 {% include icon-yes.html %}

SHOW DEFAULT SESSION VARIABLES FOR ROLE

-

Previously, if a database administrator wanted to know which session variables they had set by default for a role, they would need to switch into that user or scan a system table manually. This could be more time consuming or difficult to use. To address this, we have added a new command: SHOW DEFAULT SESSION VARIABLES FOR ROLE, which allows the database administrator to easily view the default values for session variables applied to a given user.

+

Previously, a database administrator could discover which session variables were set for a role only by switching into to that user or querying a system table. The new command SHOW DEFAULT SESSION VARIABLES FOR ROLE shows the database administrator the default values for session variables applied to a given user.

24.1 {% include icon-yes.html %}24.1 {% include icon-yes.html %}{% include icon-yes.html %}{% include icon-yes.html %}{% include icon-no.html %}{% include icon-no.html %}
From 88b4a5175df7d4c6abe1708c37d950ca39a4a511 Mon Sep 17 00:00:00 2001 From: Kathryn May <44557882+kathancox@users.noreply.github.com> Date: Wed, 22 May 2024 10:11:33 -0400 Subject: [PATCH 25/30] Syntax correction on alter virtual cluster example (#18583) --- .../_includes/v24.1/physical-replication/fast-cutback-syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/current/_includes/v24.1/physical-replication/fast-cutback-syntax.md b/src/current/_includes/v24.1/physical-replication/fast-cutback-syntax.md index 1c217be5af0..4b468429d92 100644 --- a/src/current/_includes/v24.1/physical-replication/fast-cutback-syntax.md +++ b/src/current/_includes/v24.1/physical-replication/fast-cutback-syntax.md @@ -2,7 +2,7 @@ {% include_cached copy-clipboard.html %} ~~~ sql -ALTER VIRTUAL CLUSTER {original_primary_vc} START REPLICATION FROM {promoted_standby_vc} ON {connection_string_standby}; +ALTER VIRTUAL CLUSTER {original_primary_vc} START REPLICATION OF {promoted_standby_vc} ON {connection_string_standby}; ~~~ The original primary virtual cluster may be almost up to date with the promoted standby's virtual cluster. The difference in data between the two virtual clusters will include only the writes that have been applied to the promoted standby after cutover from the primary cluster. \ No newline at end of file From 4af6014146a7f25b9bde855c1ab5b6419e01d985 Mon Sep 17 00:00:00 2001 From: Ryan Kuo <8740013+taroface@users.noreply.github.com> Date: Wed, 22 May 2024 11:57:44 -0400 Subject: [PATCH 26/30] document virtual computed column stats session var (#18574) --- src/current/_includes/v24.1/misc/session-vars.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/current/_includes/v24.1/misc/session-vars.md b/src/current/_includes/v24.1/misc/session-vars.md index a8be2430bcd..7b0e8441a9d 100644 --- a/src/current/_includes/v24.1/misc/session-vars.md +++ b/src/current/_includes/v24.1/misc/session-vars.md @@ -51,6 +51,7 @@ | `optimizer_use_lock_op_for_serializable` | If `on`, the optimizer uses a `Lock` operator to construct query plans for `SELECT` statements using the [`FOR UPDATE` and `FOR SHARE`]({% link {{ page.version.version }}/select-for-update.md %}) clauses. This setting only affects `SERIALIZABLE` transactions. `READ COMMITTED` transactions are evaluated with the `Lock` operator regardless of the setting. | `off` | Yes | Yes | | `optimizer_use_multicol_stats` | If `on`, the optimizer uses collected multi-column statistics for cardinality estimation. | `on` | No | Yes | | `optimizer_use_not_visible_indexes` | If `on`, the optimizer uses not visible indexes for planning. | `off` | No | Yes | +| `optimizer_use_virtual_computed_column_stats` | If `on`, the optimizer uses table statistics on [virtual computed columns]({% link {{ page.version.version }}/computed-columns.md %}#virtual-computed-columns). | `on` | Yes | Yes | `plpgsql_use_strict_into` | If `on`, PL/pgSQL [`SELECT ... INTO` and `RETURNING ... INTO` statements]({% link {{ page.version.version }}/plpgsql.md %}#assign-a-result-to-a-variable) behave as though the `STRICT` option is specified. This causes the SQL statement to error if it does not return exactly one row. | `off` | Yes | Yes | | `pg_trgm.similarity_threshold` | The threshold above which a [`%`]({% link {{ page.version.version }}/functions-and-operators.md %}#operators) string comparison returns `true`. The value must be between `0` and `1`. For more information, see [Trigram Indexes]({% link {{ page.version.version }}/trigram-indexes.md %}). | `0.3` | Yes | Yes | | `prefer_lookup_joins_for_fks` | If `on`, the optimizer prefers [`lookup joins`]({% link {{ page.version.version }}/joins.md %}#lookup-joins) to [`merge joins`]({% link {{ page.version.version }}/joins.md %}#merge-joins) when performing [`foreign key`]({% link {{ page.version.version }}/foreign-key.md %}) checks. | `off` | Yes | Yes | From 1ea21bb0d0a8c2a656279c0ab8f04bd1e38c39fe Mon Sep 17 00:00:00 2001 From: Ryan Kuo <8740013+taroface@users.noreply.github.com> Date: Wed, 22 May 2024 12:00:47 -0400 Subject: [PATCH 27/30] add FORCE_INVERTED_INDEX hint (#18575) * add FORCE_INVERTED_INDEX hint --------- Co-authored-by: Matt Linville (he/him) --- .../v24.1/misc/force-index-selection.md | 33 ++++++++++++++----- src/current/v24.1/inverted-indexes.md | 2 +- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/current/_includes/v24.1/misc/force-index-selection.md b/src/current/_includes/v24.1/misc/force-index-selection.md index beeb1bcceac..a2f70c98ee6 100644 --- a/src/current/_includes/v24.1/misc/force-index-selection.md +++ b/src/current/_includes/v24.1/misc/force-index-selection.md @@ -6,34 +6,34 @@ Index selection can impact [performance]({% link {{ page.version.version }}/perf ##### Force index scan -The syntax to force a scan of a specific index is: +To force a scan of a specific index: {% include_cached copy-clipboard.html %} ~~~ sql -> SELECT * FROM table@my_idx; +SELECT * FROM table@my_idx; ~~~ This is equivalent to the longer expression: {% include_cached copy-clipboard.html %} ~~~ sql -> SELECT * FROM table@{FORCE_INDEX=my_idx}; +SELECT * FROM table@{FORCE_INDEX=my_idx}; ~~~ ##### Force reverse scan -The syntax to force a reverse scan of a specific index is: +To force a reverse scan of a specific index: {% include_cached copy-clipboard.html %} ~~~ sql -> SELECT * FROM table@{FORCE_INDEX=my_idx,DESC}; +SELECT * FROM table@{FORCE_INDEX=my_idx,DESC}; ~~~ -Forcing a reverse scan is sometimes useful during [performance tuning]({% link {{ page.version.version }}/performance-best-practices-overview.md %}). For reference, the full syntax for choosing an index and its scan direction is +Forcing a reverse scan can help with [performance tuning]({% link {{ page.version.version }}/performance-best-practices-overview.md %}). To choose an index and its scan direction: {% include_cached copy-clipboard.html %} ~~~ sql -SELECT * FROM table@{FORCE_INDEX=idx[,DIRECTION]} +SELECT * FROM table@{FORCE_INDEX=idx[,DIRECTION]}; ~~~ where the optional `DIRECTION` is either `ASC` (ascending) or `DESC` (descending). @@ -44,14 +44,14 @@ You can verify that the optimizer is choosing your desired scan direction using {% include_cached copy-clipboard.html %} ~~~ sql -> CREATE TABLE kv (K INT PRIMARY KEY, v INT); +CREATE TABLE kv (K INT PRIMARY KEY, v INT); ~~~ you can check the scan direction with: {% include_cached copy-clipboard.html %} ~~~ sql -> EXPLAIN (opt) SELECT * FROM users@{FORCE_INDEX=primary,DESC}; +EXPLAIN (opt) SELECT * FROM users@{FORCE_INDEX=primary,DESC}; ~~~ ~~~ @@ -62,6 +62,21 @@ you can check the scan direction with: (2 rows) ~~~ +#### Force inverted index scan + +To force a scan of any [inverted index]({% link {{ page.version.version }}/inverted-indexes.md %}) of the hinted table: + +{% include_cached copy-clipboard.html %} +~~~ sql +SELECT * FROM table@{FORCE_INVERTED_INDEX}; +~~~ + +The `FORCE_INVERTED_INDEX` hint does not allow specifying an inverted index. If no query plan can be generated, the query will result in the error: + +~~~ +ERROR: could not produce a query plan conforming to the FORCE_INVERTED_INDEX hint +~~~ + ##### Force partial index scan To force a [partial index scan]({% link {{ page.version.version }}/partial-indexes.md %}), your statement must have a `WHERE` clause that implies the partial index filter. diff --git a/src/current/v24.1/inverted-indexes.md b/src/current/v24.1/inverted-indexes.md index f65b54e1c10..6ca9524104b 100644 --- a/src/current/v24.1/inverted-indexes.md +++ b/src/current/v24.1/inverted-indexes.md @@ -97,7 +97,7 @@ If a query contains a filter against an indexed `JSONB` or `ARRAY` column that u In most cases CockroachDB selects the index it calculates will scan the fewest rows (i.e., the fastest). Cases where CockroachDB will use multiple indexes include certain queries that use disjunctions (i.e., predicates with `OR`), as well as [zigzag joins]({% link {{ page.version.version }}/cost-based-optimizer.md %}#zigzag-joins) for some other queries. To learn how to use the [`EXPLAIN`]({% link {{ page.version.version }}/explain.md %}) statement for your query to see which index is being used, see [Index Selection in CockroachDB](https://www.cockroachlabs.com/blog/index-selection-cockroachdb-2/). -To override CockroachDB's index selection, you can also force a query to use [a specific index]({% link {{ page.version.version }}/table-expressions.md %}#force-index-selection) (also known as "index hinting") or use [an inverted join hint]({% link {{ page.version.version }}/cost-based-optimizer.md %}#supported-join-algorithms). +To override CockroachDB's index selection, you can use an index hint to force a query to use [a specific index]({% link {{ page.version.version }}/table-expressions.md %}#force-index-selection), including [inverted indexes]({% link {{ page.version.version }}/table-expressions.md %}#force-inverted-index-scan) and [partial GIN indexes]({% link {{ page.version.version }}/table-expressions.md %}#force-partial-gin-index-scan); or use [an inverted join hint]({% link {{ page.version.version }}/cost-based-optimizer.md %}#supported-join-algorithms). ### Storage From dd7f827050bc5eb2981322c85e21ab434aa977f8 Mon Sep 17 00:00:00 2001 From: Florence Morris Date: Wed, 22 May 2024 12:43:37 -0400 Subject: [PATCH 28/30] In export-metrics.md, removed Preview note for Prometheus. (#18585) --- src/current/cockroachcloud/export-metrics.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/current/cockroachcloud/export-metrics.md b/src/current/cockroachcloud/export-metrics.md index ecb516e5ef5..cefbf03e92a 100644 --- a/src/current/cockroachcloud/export-metrics.md +++ b/src/current/cockroachcloud/export-metrics.md @@ -224,10 +224,6 @@ A subset of CockroachDB metrics require that you explicitly [enable percentiles]
-{{site.data.alerts.callout_info}} -{% include_cached feature-phases/preview.md %} -{{site.data.alerts.end}} - 1. Find your CockroachDB {{ site.data.products.dedicated }} cluster ID: 1. Visit the CockroachDB {{ site.data.products.cloud }} console [cluster page](https://cockroachlabs.cloud/clusters). From eb2966c5b6e81d8bb52c5187680ba5bbd3fd81d1 Mon Sep 17 00:00:00 2001 From: Ryan Kuo <8740013+taroface@users.noreply.github.com> Date: Wed, 22 May 2024 12:54:23 -0400 Subject: [PATCH 29/30] MOLT Fetch GA fast-follow issues (#18573) * MOLT Fetch GA fast-follow issues --------- Co-authored-by: Matt Linville (he/him) --- src/current/v23.1/molt-verify.md | 2 +- src/current/v23.2/molt-fetch.md | 55 +++++++++++++++++++++++++++++--- src/current/v23.2/molt-verify.md | 2 +- src/current/v24.1/molt-fetch.md | 55 +++++++++++++++++++++++++++++--- src/current/v24.1/molt-verify.md | 2 +- 5 files changed, 103 insertions(+), 13 deletions(-) diff --git a/src/current/v23.1/molt-verify.md b/src/current/v23.1/molt-verify.md index 405c304308b..7bf7b9ab489 100644 --- a/src/current/v23.1/molt-verify.md +++ b/src/current/v23.1/molt-verify.md @@ -40,7 +40,7 @@ To install MOLT Verify, download the binary that matches your system. To downloa | Mac | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.darwin-amd64.tgz) | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.darwin-arm64.tgz) | {{site.data.alerts.callout_success}} -For previous binaries, see the [MOLT version manifest](https://molt.cockroachdb.com/molt/cli/versions.html). For releases v0.0.6 and earlier, see the [MOLT repository](https://github.com/cockroachdb/molt/releases). +For previous binaries, refer to the [MOLT version manifest](https://molt.cockroachdb.com/molt/cli/versions.html). {{site.data.alerts.end}} To set up MOLT Verify: diff --git a/src/current/v23.2/molt-fetch.md b/src/current/v23.2/molt-fetch.md index c93202ac841..7d4098b7d23 100644 --- a/src/current/v23.2/molt-fetch.md +++ b/src/current/v23.2/molt-fetch.md @@ -27,7 +27,11 @@ To install MOLT Fetch, download the binary that matches your system. To download | Linux | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.linux-amd64.tgz) | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.linux-arm64.tgz) | | Mac | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.darwin-amd64.tgz) | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.darwin-arm64.tgz) | -For previous binaries, see the [MOLT version manifest](https://molt.cockroachdb.com/molt/cli/versions.html). For releases v0.0.6 and earlier, see the [MOLT repository](https://github.com/cockroachdb/molt/releases). +For previous binaries, refer to the [MOLT version manifest](https://molt.cockroachdb.com/molt/cli/versions.html). + +{{site.data.alerts.callout_info}} +MOLT Fetch is supported on Red Hat Enterprise Linux (RHEL) 9 and above. +{{site.data.alerts.end}} ## Setup @@ -35,7 +39,7 @@ Complete the following items before using MOLT Fetch: - Follow the recommendations in [Best practices](#best-practices) and [Security recommendations](#security-recommendations). -- Ensure that the source and target schemas are identical, unless you enable automatic schema creation with the [`'drop-on-target-and-recreate'`](#target-table-handling) option. +- Ensure that the source and target schemas are identical, unless you enable automatic schema creation with the [`'drop-on-target-and-recreate'`](#target-table-handling) option. If you are creating the target schema manually, review the behaviors in [Mismatch handling](#mismatch-handling). - Ensure that the SQL user running MOLT Fetch has [`SELECT` privileges]({% link {{ page.version.version }}/grant.md %}#supported-privileges) on the source and target CockroachDB databases, along with the required privileges to run [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}#required-privileges) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}#required-privileges) (depending on the [fetch mode](#fetch-mode)) on CockroachDB, as described on their respective pages. @@ -99,6 +103,18 @@ Complete the following items before using MOLT Fetch: - If a MySQL database is set as a [source](#source-and-target-databases), the [`--table-concurrency`](#global-flags) and [`--export-concurrency`](#global-flags) flags **cannot** be set above `1`. If these values are changed, MOLT Fetch returns an error. This guarantees consistency when moving data from MySQL, due to MySQL limitations. MySQL data is migrated to CockroachDB one table and shard at a time, using [`WITH CONSISTENT SNAPSHOT`](https://dev.mysql.com/doc/refman/8.0/en/commit.html) transactions. +- To prevent memory outages during data export of tables with large rows, estimate the amount of memory used to export a table: + + ~~~ + --row-batch-size * --export-concurrency * average size of the table rows + ~~~ + + If you are exporting more than one table at a time (i.e., [`--table-concurrency`](#global-flags) is set higher than `1`), add the estimated memory usage for the tables with the largest row sizes. Ensure that you have sufficient memory to run `molt fetch`, and adjust `--row-batch-size` accordingly. + +- If a table in the source database is much larger than the other tables, [filter and export the largest table](#schema-and-table-selection) in its own `molt fetch` task. Repeat this for each of the largest tables. Then export the remaining tables in another task. + +- When using [`IMPORT INTO` mode](#fetch-mode) to load tables into CockroachDB, if the fetch process terminates before the import job completes, the hanging import job on the target database will keep the table offline. To make this table accessible again, [manually resume or cancel the job]({% link {{ page.version.version }}/import-into.md %}#view-and-control-import-jobs). Then resume `molt fetch` using [continuation](#fetch-continuation), or restart the process from the beginning. + ## Security recommendations Cockroach Labs **strongly** recommends the following: @@ -137,6 +153,10 @@ Cockroach Labs **strongly** recommends the following: - When using [cloud storage](#cloud-storage) for your intermediate store, ensure that access control is properly configured. Refer to the [GCP](https://cloud.google.com/storage/docs/access-control) or [AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html) documentation. - Do not use public cloud storage in production. +### Perform a dry run + +To verify that your connections and configuration work properly, run MOLT Fetch in a staging environment before moving any data in production. Use a test or development environment that is as similar as possible to production. + ## Commands | Command | Usage | @@ -163,6 +183,8 @@ Cockroach Labs **strongly** recommends the following: | `--compression` | Compression method for data when using [`IMPORT INTO` mode](#fetch-mode) (`gzip`/`none`).

**Default:** `gzip` | | `--continuation-file-name` | Restart fetch at the specified filename if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | | `--continuation-token` | Restart fetch at a specific table, using the specified continuation token, if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | +| `--crdb-pts-duration` | The duration for which each timestamp used in data export from a CockroachDB source is protected from garbage collection. This ensures that the data snapshot remains consistent. For example, if set to `24h`, each timestamp is protected for 24 hours from the initiation of the export job. This duration is extended at regular intervals specified in `--crdb-pts-refresh-interval`.

**Default:** `24h0m0s` | +| `--crdb-pts-refresh-interval` | The frequency at which the protected timestamp's validity is extended. This interval maintains protection of the data snapshot until data export from a CockroachDB source is completed. For example, if set to `10m`, the protected timestamp's expiration will be extended by the duration specified in `--crdb-pts-duration` (e.g., `24h`) every 10 minutes while export is not complete.

**Default:** `10m0s` | | `--direct-copy` | Enables [direct copy mode](#fetch-mode), which copies data directly from source to target without using an intermediate store. | | `--export-concurrency` | Number of shards to export at a time, each on a dedicated thread. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. Refer to [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | | `--fetch-id` | Restart fetch process corresponding to the specified ID. If `--continuation-file-name` or `--continuation-token` are not specified, fetch restarts for all failed tables. | @@ -181,7 +203,7 @@ Cockroach Labs **strongly** recommends the following: | `--pglogical-replication-slot-plugin` | The output plugin used for logical replication under `--pglogical-replication-slot-name`.

**Default:** `pgoutput` | | `--pprof-listen-addr` | Address of the pprof endpoint.

**Default:** `'127.0.0.1:3031'` | | `--replicator-flags` | If continuous [replication](#replication) is enabled with `--ongoing-replication`, specify Replicator flags ([PostgreSQL](https://github.com/cockroachdb/replicator/wiki/PGLogical#postgresql-logical-replication) or [MySQL](https://github.com/cockroachdb/replicator/wiki/MYLogical#mysqlmariadb-replication)) to override. | -| `--row-batch-size` | Number of rows to select at a time for export from the source database.

**Default:** `100000` | +| `--row-batch-size` | Number of rows per shard to export at a time. See [Best practices](#best-practices).

**Default:** `100000` | | `--schema-filter` | Move schemas that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | | `--table-concurrency` | Number of tables to export at a time. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. See [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | | `--table-filter` | Move tables that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | @@ -232,11 +254,11 @@ MySQL: ### Fetch mode -MOLT Fetch can use either [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}) to move data to CockroachDB. +MOLT Fetch can use either [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}) to load data into CockroachDB. By default, MOLT Fetch uses `IMPORT INTO`: -- `IMPORT INTO` mode achieves the highest throughput, but [requires taking the tables **offline**]({% link {{ page.version.version }}/import-into.md %}#considerations) to achieve its import speed. +- `IMPORT INTO` mode achieves the highest throughput, but [requires taking the tables **offline**]({% link {{ page.version.version }}/import-into.md %}#considerations) to achieve its import speed. Tables are taken back online once an [import job]({% link {{ page.version.version }}/import-into.md %}#view-and-control-import-jobs) completes successfully. See [Best practices](#best-practices). - `IMPORT INTO` mode supports compression using the `--compression` flag, which reduces the amount of storage used. `--use-copy` configures MOLT Fetch to use `COPY FROM`: @@ -356,6 +378,29 @@ To drop existing tables and create new tables before loading the data, use `'dro When using the `'drop-on-target-and-recreate'` option, MOLT Fetch creates a new CockroachDB table to load the source data if one does not already exist. To guide the automatic schema creation, you can [explicitly map source types to CockroachDB types](#type-mapping). +#### Mismatch handling + +If either [`'none'`](#target-table-handling) or [`'truncate-if-exists'`](#target-table-handling) is set, `molt fetch` loads data into the existing tables on the target CockroachDB database. If the target schema mismatches the source schema, `molt fetch` will exit early in [certain cases](#exit-early), and will need to be re-run from the beginning. + +{{site.data.alerts.callout_info}} +This does not apply when [`'drop-on-target-and-recreate'`](#target-table-handling) is specified, since this mode automatically creates a compatible CockroachDB schema. +{{site.data.alerts.end}} + +`molt fetch` exits early in the following cases, and will output a log with a corresponding `mismatch_tag` and `failable_mismatch` set to `true`: + +- A source table is missing a primary key. +- A source and table primary key have mismatching types. +- A [`STRING`]({% link {{ page.version.version }}/string.md %}) primary key has a different [collation]({% link {{ page.version.version }}/collate.md %}) on the source and target. +- A source and target column have mismatching types that are not [allowable mappings](#type-mapping). +- A target table is missing a column that is in the corresponding source table. +- A source column is nullable, but the corresponding target column is not nullable (i.e., the constraint is more strict on the target). + +`molt fetch` can continue in the following cases, and will output a log with a corresponding `mismatch_tag` and `failable_mismatch` set to `false`: + +- A target table has a column that is not in the corresponding source table. +- A source column has a `NOT NULL` constraint, and the corresponding target column is nullable (i.e., the constraint is less strict on the target). +- A [`DEFAULT`]({% link {{ page.version.version }}/default-value.md %}), [`CHECK`]({% link {{ page.version.version }}/check.md %}), [`FOREIGN KEY`]({% link {{ page.version.version }}/foreign-key.md %}), or [`UNIQUE`]({% link {{ page.version.version }}/unique.md %}) constraint is specified on a target column and not on the source column. + #### Type mapping If [`'drop-on-target-and-recreate'`](#target-table-handling) is set, MOLT Fetch automatically creates a CockroachDB schema that is compatible with the source data. The column types are determined as follows: diff --git a/src/current/v23.2/molt-verify.md b/src/current/v23.2/molt-verify.md index 561141a9369..1b239439615 100644 --- a/src/current/v23.2/molt-verify.md +++ b/src/current/v23.2/molt-verify.md @@ -39,7 +39,7 @@ To install MOLT Verify, download the binary that matches your system. To downloa | Linux | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.linux-amd64.tgz) | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.linux-arm64.tgz) | | Mac | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.darwin-amd64.tgz) | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.darwin-arm64.tgz) | -For previous binaries, see the [MOLT version manifest](https://molt.cockroachdb.com/molt/cli/versions.html). For releases v0.0.6 and earlier, see the [MOLT repository](https://github.com/cockroachdb/molt/releases). +For previous binaries, refer to the [MOLT version manifest](https://molt.cockroachdb.com/molt/cli/versions.html). # Setup diff --git a/src/current/v24.1/molt-fetch.md b/src/current/v24.1/molt-fetch.md index c93202ac841..7d4098b7d23 100644 --- a/src/current/v24.1/molt-fetch.md +++ b/src/current/v24.1/molt-fetch.md @@ -27,7 +27,11 @@ To install MOLT Fetch, download the binary that matches your system. To download | Linux | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.linux-amd64.tgz) | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.linux-arm64.tgz) | | Mac | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.darwin-amd64.tgz) | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.darwin-arm64.tgz) | -For previous binaries, see the [MOLT version manifest](https://molt.cockroachdb.com/molt/cli/versions.html). For releases v0.0.6 and earlier, see the [MOLT repository](https://github.com/cockroachdb/molt/releases). +For previous binaries, refer to the [MOLT version manifest](https://molt.cockroachdb.com/molt/cli/versions.html). + +{{site.data.alerts.callout_info}} +MOLT Fetch is supported on Red Hat Enterprise Linux (RHEL) 9 and above. +{{site.data.alerts.end}} ## Setup @@ -35,7 +39,7 @@ Complete the following items before using MOLT Fetch: - Follow the recommendations in [Best practices](#best-practices) and [Security recommendations](#security-recommendations). -- Ensure that the source and target schemas are identical, unless you enable automatic schema creation with the [`'drop-on-target-and-recreate'`](#target-table-handling) option. +- Ensure that the source and target schemas are identical, unless you enable automatic schema creation with the [`'drop-on-target-and-recreate'`](#target-table-handling) option. If you are creating the target schema manually, review the behaviors in [Mismatch handling](#mismatch-handling). - Ensure that the SQL user running MOLT Fetch has [`SELECT` privileges]({% link {{ page.version.version }}/grant.md %}#supported-privileges) on the source and target CockroachDB databases, along with the required privileges to run [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}#required-privileges) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}#required-privileges) (depending on the [fetch mode](#fetch-mode)) on CockroachDB, as described on their respective pages. @@ -99,6 +103,18 @@ Complete the following items before using MOLT Fetch: - If a MySQL database is set as a [source](#source-and-target-databases), the [`--table-concurrency`](#global-flags) and [`--export-concurrency`](#global-flags) flags **cannot** be set above `1`. If these values are changed, MOLT Fetch returns an error. This guarantees consistency when moving data from MySQL, due to MySQL limitations. MySQL data is migrated to CockroachDB one table and shard at a time, using [`WITH CONSISTENT SNAPSHOT`](https://dev.mysql.com/doc/refman/8.0/en/commit.html) transactions. +- To prevent memory outages during data export of tables with large rows, estimate the amount of memory used to export a table: + + ~~~ + --row-batch-size * --export-concurrency * average size of the table rows + ~~~ + + If you are exporting more than one table at a time (i.e., [`--table-concurrency`](#global-flags) is set higher than `1`), add the estimated memory usage for the tables with the largest row sizes. Ensure that you have sufficient memory to run `molt fetch`, and adjust `--row-batch-size` accordingly. + +- If a table in the source database is much larger than the other tables, [filter and export the largest table](#schema-and-table-selection) in its own `molt fetch` task. Repeat this for each of the largest tables. Then export the remaining tables in another task. + +- When using [`IMPORT INTO` mode](#fetch-mode) to load tables into CockroachDB, if the fetch process terminates before the import job completes, the hanging import job on the target database will keep the table offline. To make this table accessible again, [manually resume or cancel the job]({% link {{ page.version.version }}/import-into.md %}#view-and-control-import-jobs). Then resume `molt fetch` using [continuation](#fetch-continuation), or restart the process from the beginning. + ## Security recommendations Cockroach Labs **strongly** recommends the following: @@ -137,6 +153,10 @@ Cockroach Labs **strongly** recommends the following: - When using [cloud storage](#cloud-storage) for your intermediate store, ensure that access control is properly configured. Refer to the [GCP](https://cloud.google.com/storage/docs/access-control) or [AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html) documentation. - Do not use public cloud storage in production. +### Perform a dry run + +To verify that your connections and configuration work properly, run MOLT Fetch in a staging environment before moving any data in production. Use a test or development environment that is as similar as possible to production. + ## Commands | Command | Usage | @@ -163,6 +183,8 @@ Cockroach Labs **strongly** recommends the following: | `--compression` | Compression method for data when using [`IMPORT INTO` mode](#fetch-mode) (`gzip`/`none`).

**Default:** `gzip` | | `--continuation-file-name` | Restart fetch at the specified filename if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | | `--continuation-token` | Restart fetch at a specific table, using the specified continuation token, if the process encounters an error. `--fetch-id` must be specified. For details, see [Fetch continuation](#fetch-continuation). | +| `--crdb-pts-duration` | The duration for which each timestamp used in data export from a CockroachDB source is protected from garbage collection. This ensures that the data snapshot remains consistent. For example, if set to `24h`, each timestamp is protected for 24 hours from the initiation of the export job. This duration is extended at regular intervals specified in `--crdb-pts-refresh-interval`.

**Default:** `24h0m0s` | +| `--crdb-pts-refresh-interval` | The frequency at which the protected timestamp's validity is extended. This interval maintains protection of the data snapshot until data export from a CockroachDB source is completed. For example, if set to `10m`, the protected timestamp's expiration will be extended by the duration specified in `--crdb-pts-duration` (e.g., `24h`) every 10 minutes while export is not complete.

**Default:** `10m0s` | | `--direct-copy` | Enables [direct copy mode](#fetch-mode), which copies data directly from source to target without using an intermediate store. | | `--export-concurrency` | Number of shards to export at a time, each on a dedicated thread. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. Refer to [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | | `--fetch-id` | Restart fetch process corresponding to the specified ID. If `--continuation-file-name` or `--continuation-token` are not specified, fetch restarts for all failed tables. | @@ -181,7 +203,7 @@ Cockroach Labs **strongly** recommends the following: | `--pglogical-replication-slot-plugin` | The output plugin used for logical replication under `--pglogical-replication-slot-name`.

**Default:** `pgoutput` | | `--pprof-listen-addr` | Address of the pprof endpoint.

**Default:** `'127.0.0.1:3031'` | | `--replicator-flags` | If continuous [replication](#replication) is enabled with `--ongoing-replication`, specify Replicator flags ([PostgreSQL](https://github.com/cockroachdb/replicator/wiki/PGLogical#postgresql-logical-replication) or [MySQL](https://github.com/cockroachdb/replicator/wiki/MYLogical#mysqlmariadb-replication)) to override. | -| `--row-batch-size` | Number of rows to select at a time for export from the source database.

**Default:** `100000` | +| `--row-batch-size` | Number of rows per shard to export at a time. See [Best practices](#best-practices).

**Default:** `100000` | | `--schema-filter` | Move schemas that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | | `--table-concurrency` | Number of tables to export at a time. **Note:** The number of concurrent threads is the product of `--export-concurrency` and `--table-concurrency`. See [Best practices](#best-practices).

This value **cannot** be set higher than `1` when moving data from MySQL. See [Best practices](#best-practices).

**Default:** `4` with a PostgreSQL source; `1` with a MySQL source | | `--table-filter` | Move tables that match a specified [regular expression](https://wikipedia.org/wiki/Regular_expression).

**Default:** `'.*'` | @@ -232,11 +254,11 @@ MySQL: ### Fetch mode -MOLT Fetch can use either [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}) to move data to CockroachDB. +MOLT Fetch can use either [`IMPORT INTO`]({% link {{ page.version.version }}/import-into.md %}) or [`COPY FROM`]({% link {{ page.version.version }}/copy-from.md %}) to load data into CockroachDB. By default, MOLT Fetch uses `IMPORT INTO`: -- `IMPORT INTO` mode achieves the highest throughput, but [requires taking the tables **offline**]({% link {{ page.version.version }}/import-into.md %}#considerations) to achieve its import speed. +- `IMPORT INTO` mode achieves the highest throughput, but [requires taking the tables **offline**]({% link {{ page.version.version }}/import-into.md %}#considerations) to achieve its import speed. Tables are taken back online once an [import job]({% link {{ page.version.version }}/import-into.md %}#view-and-control-import-jobs) completes successfully. See [Best practices](#best-practices). - `IMPORT INTO` mode supports compression using the `--compression` flag, which reduces the amount of storage used. `--use-copy` configures MOLT Fetch to use `COPY FROM`: @@ -356,6 +378,29 @@ To drop existing tables and create new tables before loading the data, use `'dro When using the `'drop-on-target-and-recreate'` option, MOLT Fetch creates a new CockroachDB table to load the source data if one does not already exist. To guide the automatic schema creation, you can [explicitly map source types to CockroachDB types](#type-mapping). +#### Mismatch handling + +If either [`'none'`](#target-table-handling) or [`'truncate-if-exists'`](#target-table-handling) is set, `molt fetch` loads data into the existing tables on the target CockroachDB database. If the target schema mismatches the source schema, `molt fetch` will exit early in [certain cases](#exit-early), and will need to be re-run from the beginning. + +{{site.data.alerts.callout_info}} +This does not apply when [`'drop-on-target-and-recreate'`](#target-table-handling) is specified, since this mode automatically creates a compatible CockroachDB schema. +{{site.data.alerts.end}} + +`molt fetch` exits early in the following cases, and will output a log with a corresponding `mismatch_tag` and `failable_mismatch` set to `true`: + +- A source table is missing a primary key. +- A source and table primary key have mismatching types. +- A [`STRING`]({% link {{ page.version.version }}/string.md %}) primary key has a different [collation]({% link {{ page.version.version }}/collate.md %}) on the source and target. +- A source and target column have mismatching types that are not [allowable mappings](#type-mapping). +- A target table is missing a column that is in the corresponding source table. +- A source column is nullable, but the corresponding target column is not nullable (i.e., the constraint is more strict on the target). + +`molt fetch` can continue in the following cases, and will output a log with a corresponding `mismatch_tag` and `failable_mismatch` set to `false`: + +- A target table has a column that is not in the corresponding source table. +- A source column has a `NOT NULL` constraint, and the corresponding target column is nullable (i.e., the constraint is less strict on the target). +- A [`DEFAULT`]({% link {{ page.version.version }}/default-value.md %}), [`CHECK`]({% link {{ page.version.version }}/check.md %}), [`FOREIGN KEY`]({% link {{ page.version.version }}/foreign-key.md %}), or [`UNIQUE`]({% link {{ page.version.version }}/unique.md %}) constraint is specified on a target column and not on the source column. + #### Type mapping If [`'drop-on-target-and-recreate'`](#target-table-handling) is set, MOLT Fetch automatically creates a CockroachDB schema that is compatible with the source data. The column types are determined as follows: diff --git a/src/current/v24.1/molt-verify.md b/src/current/v24.1/molt-verify.md index 0c45ca3343f..8a56403f29c 100644 --- a/src/current/v24.1/molt-verify.md +++ b/src/current/v24.1/molt-verify.md @@ -39,7 +39,7 @@ To install MOLT Verify, download the binary that matches your system. To downloa | Linux | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.linux-amd64.tgz) | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.linux-arm64.tgz) | | Mac | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.darwin-amd64.tgz) | [Download](https://molt.cockroachdb.com/molt/cli/molt-latest.darwin-arm64.tgz) | -For previous binaries, see the [MOLT version manifest](https://molt.cockroachdb.com/molt/cli/versions.html). For releases v0.0.6 and earlier, see the [MOLT repository](https://github.com/cockroachdb/molt/releases). +For previous binaries, see the [MOLT version manifest](https://molt.cockroachdb.com/molt/cli/versions.html). # Setup From c366b177b6df61e24607eaaa67facf17a6ccaba6 Mon Sep 17 00:00:00 2001 From: Kathryn May <44557882+kathancox@users.noreply.github.com> Date: Thu, 23 May 2024 09:09:51 -0400 Subject: [PATCH 30/30] Remove columns from show jobs response and Jobs Page (#18577) --- src/current/_includes/v24.1/ui/jobs.md | 11 +++-------- src/current/images/v24.1/ui-jobs-page.png | Bin 0 -> 421488 bytes src/current/v24.1/show-jobs.md | 10 ++-------- 3 files changed, 5 insertions(+), 16 deletions(-) create mode 100644 src/current/images/v24.1/ui-jobs-page.png diff --git a/src/current/_includes/v24.1/ui/jobs.md b/src/current/_includes/v24.1/ui/jobs.md index 95b709a0b33..b7796f14bea 100644 --- a/src/current/_includes/v24.1/ui/jobs.md +++ b/src/current/_includes/v24.1/ui/jobs.md @@ -8,9 +8,7 @@ The Jobs list is designed for you to manage pending work. It is not intended to Use the **Jobs** table to see recently created and completed jobs. -The following screenshot shows `BACKUP` jobs: - -DB Console Jobs Page +DB Console Jobs Page ### Filter jobs @@ -34,10 +32,7 @@ Job ID | Unique job ID. This value is used to [pause]({{ link_prefix }}pause-job User Name | User that created the job. Creation Time (UTC) | Date and time the job was created. Last Modified Time (UTC) | Date and time the job was last modified. -Last Execution Time (UTC) | Date and time the job was last executed. -High-water Timestamp | A checkpoint for a [changefeed job's progress]({{ link_prefix }}monitor-and-debug-changefeeds.html#monitor-a-changefeed) that guarantees that all changes before (or at) the timestamp have been emitted. Hover over the high-water timestamp to view the [system time]({{ link_prefix }}as-of-system-time.html). -Execution Count | Number of times the job was executed. -Coordinator Node | ID of the coordinating node. +Completed Time (UTC) | Date and time the job was completed. To view [job details](#job-details), click the job description. @@ -56,7 +51,7 @@ Status | Description `REVERTING`| Job failed or was canceled and its changes are being reverted. `REVERT-FAILED` | Job encountered a non-retryable error when reverting the changes. It is necessary to manually clean up a job with this status. `RETRYING` | Job is retrying another job that failed. - + ## Job details The details show: diff --git a/src/current/images/v24.1/ui-jobs-page.png b/src/current/images/v24.1/ui-jobs-page.png new file mode 100644 index 0000000000000000000000000000000000000000..9da4f09d278f5688fcb1e7babeea01404dcb0987 GIT binary patch literal 421488 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�cvf7mhz5JmYA~COX)){S6_KH+7{+DN7LR~Ib9&o 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�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

64DX$r69 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 z

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 _YP&5V^uYBph!25<;% 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 z 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
For job types of automatic jobs, see [Show automatic jobs](#show-automatic-jobs). -`description` | The statement that started the job, or a textual description of the job. +`description` | The statement that started the job, or a textual description of the job. When you run `SHOW JOBS`, the `description` field is limited to 100 characters. To view the full description for a job, run `SHOW JOB {job ID}`. `statement` | When `description` is a textual description of the job, the statement that started the job is returned in this column. Currently, this field is populated only for the automatic table statistics jobs. `user_name` | The name of the [user]({% link {{ page.version.version }}/security-reference/authorization.md %}#create-and-manage-users) who started the job. `status` | The job's current state. Possible values: `pending`, `paused`, `pause-requested`, `failed`, `succeeded`, `canceled`, `cancel-requested`, `running`, `retry-running`, `retry-reverting`, `reverting`, `revert-failed`.

Refer to [Jobs status](#job-status) for a description of each status. @@ -78,9 +75,6 @@ Field | Description `error` | If the job `failed` with a terminal error, this column will contain the error generated by the failure. `coordinator_id` | The ID of the node running the job. `trace_id` | The job's internal [trace ID]({% link {{ page.version.version }}/show-trace.md %}#trace-description) for inflight debugging. **Note**: This ID can only be used by the Cockroach Labs support team for internal observability. -`last_run` | When a job fails with a retryable error, this column will contain the [`TIMESTAMPTZ`]({% link {{ page.version.version }}/timestamp.md %}) of the last attempt to run the job. -`next_run` | When a job fails with a retryable error, this column will contain the [`TIMESTAMPTZ`]({% link {{ page.version.version }}/timestamp.md %}) of the next attempt to run the job. -`num_runs` | The number of attempts to run the job. `execution_errors` | A list of any retryable errors that a job may have encountered during its lifetime. For details of changefeed-specific responses, see [`SHOW CHANGEFEED JOBS`](#show-changefeed-jobs).