From 75ee468de8b71f560dee5bfbfa234815b29d28ec Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Wed, 7 Jul 2021 15:19:46 -0400 Subject: [PATCH 01/77] change instances of free to serverless --- _includes/cockroachcloud/free-limitations.md | 2 +- _includes/sidebar-data-cockroachcloud.json | 12 +++++-- cockroachcloud/architecture.md | 7 +++++ ....md => connect-to-a-serverless-cluster.md} | 10 +++--- cockroachcloud/connect-to-your-cluster.md | 4 +-- ...ster.md => create-a-serverless-cluster.md} | 31 ++++++++++++++----- cockroachcloud/create-your-cluster.md | 19 +++++++----- cockroachcloud/frequently-asked-questions.md | 4 +-- cockroachcloud/hello-world-example-apps.md | 2 +- cockroachcloud/quickstart.md | 16 +++++----- .../{free-faqs.md => serverless-faqs.md} | 4 +-- releases/cockroachcloud-02092021.md | 2 +- releases/cockroachcloud-05032021.md | 2 +- 13 files changed, 73 insertions(+), 42 deletions(-) create mode 100644 cockroachcloud/architecture.md rename cockroachcloud/{connect-to-a-free-cluster.md => connect-to-a-serverless-cluster.md} (90%) rename cockroachcloud/{create-a-free-cluster.md => create-a-serverless-cluster.md} (61%) rename cockroachcloud/{free-faqs.md => serverless-faqs.md} (97%) diff --git a/_includes/cockroachcloud/free-limitations.md b/_includes/cockroachcloud/free-limitations.md index 8eb3b12c56a..b4e348ae40e 100644 --- a/_includes/cockroachcloud/free-limitations.md +++ b/_includes/cockroachcloud/free-limitations.md @@ -1,3 +1,3 @@ {{site.data.alerts.callout_info}} -CockroachCloud Free is currently in beta. For information about its limitations, see [CockroachCloud Free (beta) FAQs](free-faqs.html). +CockroachCloud Serverless is currently in beta. For information about its limitations, see [CockroachCloud Serverless FAQs](serverless-faqs.html). {{site.data.alerts.end}} diff --git a/_includes/sidebar-data-cockroachcloud.json b/_includes/sidebar-data-cockroachcloud.json index bde992e9e17..0f3b709585a 100644 --- a/_includes/sidebar-data-cockroachcloud.json +++ b/_includes/sidebar-data-cockroachcloud.json @@ -17,14 +17,14 @@ { "title": "Create a CockroachCloud Cluster", "urls": [ - "/cockroachcloud/create-a-free-cluster.html", + "/cockroachcloud/create-a-serverless-cluster.html", "/cockroachcloud/create-your-cluster.html" ] }, { "title": "Connect to Your Cluster", "urls": [ - "/cockroachcloud/connect-to-a-free-cluster.html", + "/cockroachcloud/connect-to-a-serverless-cluster.html", "/cockroachcloud/connect-to-your-cluster.html" ] }, @@ -235,6 +235,12 @@ "/cockroachcloud/console-access-management.html" ] }, + { + "title": "Architecture", + "urls": [ + "/cockroachcloud/architecture.html" + ] + }, { "title": "Tutorials", "items": [ @@ -255,7 +261,7 @@ { "title": "FAQs", "urls": [ - "/cockroachcloud/free-faqs.html", + "/cockroachcloud/serverless-faqs.html", "/cockroachcloud/frequently-asked-questions.html" ] }, diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md new file mode 100644 index 00000000000..7a05f087b33 --- /dev/null +++ b/cockroachcloud/architecture.md @@ -0,0 +1,7 @@ +--- +title: CockroachCloud Architecture +summary: Learn more about CockroachCloud architecture +toc: true +--- + +placeholder diff --git a/cockroachcloud/connect-to-a-free-cluster.md b/cockroachcloud/connect-to-a-serverless-cluster.md similarity index 90% rename from cockroachcloud/connect-to-a-free-cluster.md rename to cockroachcloud/connect-to-a-serverless-cluster.md index 7d5396f3951..1935340606f 100644 --- a/cockroachcloud/connect-to-a-free-cluster.md +++ b/cockroachcloud/connect-to-a-serverless-cluster.md @@ -1,21 +1,21 @@ --- -title: Connect to a CockroachCloud Free (beta) Cluster +title: Connect to a CockroachCloud Serverless Cluster summary: Learn how to connect and start interacting with your free cluster. toc: true ---
- - + +
-This page shows you how to connect to your CockroachCloud Free (beta) cluster. If you'd like to follow along with a video walkthrough, see [How to connect to CockroachCloud and Import Data](https://www.youtube.com/watch?v=XJZD1rorEQE). +This page shows you how to connect to your CockroachCloud Serverless cluster. If you'd like to follow along with a video walkthrough, see [How to connect to CockroachCloud and Import Data](https://www.youtube.com/watch?v=XJZD1rorEQE). {% include cockroachcloud/free-limitations.md %} ## Before you start -- [Create a free cluster](create-a-free-cluster.html). +- [Create a serverless cluster](create-a-serverless-cluster.html). - _(Optional)_ [Create a new SQL user](user-authorization.html#create-a-sql-user). ## Step 1. Select a connection method diff --git a/cockroachcloud/connect-to-your-cluster.md b/cockroachcloud/connect-to-your-cluster.md index a2b237177fd..48a26aeaf4f 100644 --- a/cockroachcloud/connect-to-your-cluster.md +++ b/cockroachcloud/connect-to-your-cluster.md @@ -5,8 +5,8 @@ toc: true ---
- - + +
This page shows you how to connect to your CockroachCloud cluster. diff --git a/cockroachcloud/create-a-free-cluster.md b/cockroachcloud/create-a-serverless-cluster.md similarity index 61% rename from cockroachcloud/create-a-free-cluster.md rename to cockroachcloud/create-a-serverless-cluster.md index 6fcd7f356dc..144781561d9 100644 --- a/cockroachcloud/create-a-free-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -1,21 +1,21 @@ --- -title: Create a CockroachCloud Free (beta) Cluster -summary: Learn how to create a cluster using CockroachCloud Free (beta). +title: Create a CockroachCloud Serverless Cluster +summary: Learn how to create a cluster using CockroachCloud Serverless. toc: true ---
- - + +
-This page walks you through the process of creating a cluster using CockroachCloud Free (beta). Note that only [CockroachCloud Console Administrators](console-access-management.html#console-admin) can create clusters. If you are a Developer and need to create a cluster, contact your CockroachCloud Administrator. +This page walks you through the process of creating a cluster using CockroachCloud Serverless. Note that only [CockroachCloud Console Administrators](console-access-management.html#console-admin) can create clusters. If you are a Developer and need to create a cluster, contact your CockroachCloud Administrator. {% include cockroachcloud/free-limitations.md %} ## Before you begin -If you haven't already, sign up for a CockroachCloud account. +If you haven't already, sign up for a CockroachCloud account. ## Step 1. Start the cluster creation process @@ -23,7 +23,14 @@ If you haven't already, + + + + +
1. On the **Create your cluster** page, select the **Free Plan**. @@ -39,9 +46,17 @@ If you haven't already, + +placeholder + +
+ ## What's next -- [Connect to your free cluster](connect-to-a-free-cluster.html) +- [Connect to your serverless cluster](connect-to-a-serverless-cluster.html) - [Authorize users](user-authorization.html) ## Usage examples diff --git a/cockroachcloud/create-your-cluster.md b/cockroachcloud/create-your-cluster.md index b0d4f1cc1a1..ccf2d291a6f 100644 --- a/cockroachcloud/create-your-cluster.md +++ b/cockroachcloud/create-your-cluster.md @@ -1,18 +1,18 @@ --- -title: Create a CockroachCloud Cluster -summary: Learn how to create your CockroachCloud cluster. +title: Create a CockroachCloud Dedicated Cluster +summary: Learn how to create your CockroachCloud Dedicated cluster. toc: true ---
- - + +
-This page walks you through the process of creating a CockroachCloud cluster. Note that only [CockroachCloud Console Administrators](console-access-management.html#console-admin) can create clusters. If you are a Developer and need to create a cluster, contact your CockroachCloud Administrator. +This page walks you through the process of creating a CockroachCloud Dedicated cluster. Note that only [CockroachCloud Console Administrators](console-access-management.html#console-admin) can create clusters. If you are a Developer and need to create a cluster, contact your CockroachCloud Administrator. {{site.data.alerts.callout_success}} -To create and connect to a 30-day free CockroachCloud cluster and run your first query, see the [Quickstart](quickstart.html). +To create and connect to a 30-day free CockroachCloud Dedicated cluster and run your first query, see the [Quickstart](quickstart.html). {{site.data.alerts.end}} ## Step 1. Start the cluster creation process @@ -21,10 +21,11 @@ To create and connect to a 30-day free CockroachCloud cluster and run your first 1. [Log in](https://cockroachlabs.cloud/) to your CockroachCloud account. 1. If there are multiple [organizations](console-access-management.html#organization) in your account, select the correct organization in the top right corner. 1. On the **Overview** page, click **Create Cluster**. +1. Selected the **Dedicated** plan. ## Step 2. Select the cloud provider -On the **Create new cluster** page, select either **Google Cloud** or **AWS** as your preferred cloud provider. +In the **Cloud provider** section, select either **Google Cloud** or **AWS** as your preferred cloud provider. CockroachCloud GCP clusters use [N1 standard](https://cloud.google.com/compute/docs/machine-types#n1_machine_types) machine types and [Persistent Disk storage](https://cloud.google.com/compute/docs/disks#pdspecs). AWS clusters use [C5 instance types](https://aws.amazon.com/ec2/instance-types/c5/#Product_Details) and [Elastic Block Store (EBS)](https://aws.amazon.com/ebs/features/). The IOPS associated with each node size in GCP is equal to 30 times the storage size, and the IOPS for AWS nodes is listed below. @@ -32,7 +33,7 @@ CockroachCloud GCP clusters use [N1 standard](https://cloud.google.com/compute/d ## Step 3. Select the region(s) -For optimal performance, select the cloud provider region in which you are running your application. For example, if your application is deployed in GCP's `us-east1` region, select `us-east1` for your CockroachCloud cluster. +In the **Regions & nodes** section, select a region. For optimal performance, select the cloud provider region in which you are running your application. For example, if your application is deployed in GCP's `us-east1` region, select `us-east1` for your CockroachCloud cluster. To create a multi-region cluster, click **Add regions** until you have the desired number of regions. @@ -52,6 +53,8 @@ If you want to create a cluster in a disabled region, please [contact Support](h ## Step 4. Select the number of nodes +In the **Regions & nodes** section, select the number of nodes. + - For single-region application development and testing, you may create a 1-node cluster. - For single-region production deployments, we recommend a minimum of 3 nodes. The number of nodes also depends on your storage capacity and performance requirements. See [Example](#example) for further guidance. - For multi-region deployments, we require a minimum of 3 nodes per region. For best performance and stability, you should use the same number of nodes in each region. diff --git a/cockroachcloud/frequently-asked-questions.md b/cockroachcloud/frequently-asked-questions.md index d31cfa4ea45..59664de077f 100644 --- a/cockroachcloud/frequently-asked-questions.md +++ b/cockroachcloud/frequently-asked-questions.md @@ -7,8 +7,8 @@ toc: true This page answers the frequently asked questions about CockroachCloud Free (beta) and the paid version of CockroachCloud.
- - + +
## Cluster basics diff --git a/cockroachcloud/hello-world-example-apps.md b/cockroachcloud/hello-world-example-apps.md index c963c5e2cbf..a195fe3a24b 100644 --- a/cockroachcloud/hello-world-example-apps.md +++ b/cockroachcloud/hello-world-example-apps.md @@ -38,7 +38,7 @@ Reference information: Specific tasks: -- [Connect to Your Cluster](connect-to-a-free-cluster.html) +- [Connect to Your Cluster](connect-to-a-serverless-cluster.html) - [Insert Data](../{{site.versions["stable"]}}/insert-data.html) - [Learn CockroachDB SQL](learn-cockroachdb-sql.html) - [Make Queries Fast](../{{site.versions["stable"]}}/make-queries-fast.html) diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index e44417671d5..687c3cd88b7 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -1,15 +1,15 @@ --- -title: Quickstart with CockroachCloud Free (beta) +title: Quickstart with CockroachCloud Serverless summary: Learn how to create and use your free CockroachCloud cluster. toc: true ---
- - + +
-This page guides you through the quickest way to get started with CockroachDB by setting up a CockroachCloud Free (beta) cluster with the default options and minimal connection security. For information on how to create a CockroachCloud cluster with other options, see the [Learn more](#learn-more) section. +This page guides you through the quickest way to get started with CockroachDB by setting up a free CockroachCloud Serverless cluster with the default options and minimal connection security. For information on how to create a CockroachCloud cluster with other options, see the [Learn more](#learn-more) section. {% include cockroachcloud/free-limitations.md %} @@ -18,8 +18,8 @@ This page guides you through the quickest way to get started with CockroachDB by 1. If you haven't already, sign up for a CockroachCloud account. 1. [Log in](https://cockroachlabs.cloud/) to your CockroachCloud account. 1. On the **Clusters** page, click **Create Cluster**. -1. On the **Create your cluster** page, select **CockroachCloud Free**. -1. Click **Create your free cluster**. +1. On the **Create your cluster** page, select **CockroachCloud Serverless**. +1. Click **Create cluster**. Your cluster will be created in approximately 20-30 seconds and the **Connection info** dialog will display. @@ -156,8 +156,8 @@ You can now connect to your cluster using CockroachDB's built-in SQL client: This page outlines the quickest way to get started with CockroachDB. For information on other options that are available when creating a CockroachCloud Free (beta) cluster, see the following: -- To create a free cluster with other configurations (e.g., a different cloud provider or region), see [Create a CockroachCloud Free (beta) Cluster](create-a-free-cluster.html). -- To connect to a free cluster with other options (e.g., a CA certificate or different SQL user) and connection methods (with an application or [CockroachDB compatible tool](../stable/third-party-database-tools.html)), see [Connect to a CockroachCloud Free (beta) Cluster](connect-to-a-free-cluster.html). +- To create a free cluster with other configurations (e.g., a different cloud provider or region), see [Create a CockroachCloud Serverless Cluster](create-a-serverless-cluster.html). +- To connect to a free cluster with other options (e.g., a CA certificate or different SQL user) and connection methods (with an application or [CockroachDB compatible tool](../stable/third-party-database-tools.html)), see [Connect to a CockroachCloud Serverless Cluster](connect-to-a-serverless-cluster.html). - For information about how to connect securely to your cluster (recommended), see [Authentication](authentication.html). - To watch a video walkthrough of connecting to a cluster, see [How to connect to CockroachCloud and Import Data](https://www.youtube.com/watch?v=XJZD1rorEQE). diff --git a/cockroachcloud/free-faqs.md b/cockroachcloud/serverless-faqs.md similarity index 97% rename from cockroachcloud/free-faqs.md rename to cockroachcloud/serverless-faqs.md index b7daf7f0a3e..f7b3bbaddda 100644 --- a/cockroachcloud/free-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -7,8 +7,8 @@ toc: true This page answers the frequently asked questions about CockroachCloud Free (beta) and the paid version of CockroachCloud.
- - + +
## General diff --git a/releases/cockroachcloud-02092021.md b/releases/cockroachcloud-02092021.md index e4e3ffd18bd..de60a10f661 100644 --- a/releases/cockroachcloud-02092021.md +++ b/releases/cockroachcloud-02092021.md @@ -14,7 +14,7 @@ Get future release notes emailed to you: New CockroachCloud clusters will now run CockroachDB [v20.2.4](v20.2.4.html). -- [CockroachCloud Free](../cockroachcloud/free-faqs.html) is now in beta. CockroachCloud Free (beta) delivers free CockroachDB clusters for you and your organization. It is a managed instance of CockroachDB that removes the friction of initial cluster sizing and auto-scales based on your application traffic. There is an upper limit of usage of up to 1 vCPU and 5GB storage per free cluster. +- [CockroachCloud Free](../cockroachcloud/serverless-faqs.html) is now in beta. CockroachCloud Free (beta) delivers free CockroachDB clusters for you and your organization. It is a managed instance of CockroachDB that removes the friction of initial cluster sizing and auto-scales based on your application traffic. There is an upper limit of usage of up to 1 vCPU and 5GB storage per free cluster. You can submit feedback or log any bugs you find through [this survey](https://forms.gle/jWNgmCFtF4y15ePw5). diff --git a/releases/cockroachcloud-05032021.md b/releases/cockroachcloud-05032021.md index adda5360ddd..b5ec94c7854 100644 --- a/releases/cockroachcloud-05032021.md +++ b/releases/cockroachcloud-05032021.md @@ -21,7 +21,7 @@ Get future release notes emailed to you: - New users can now [sign up](../cockroachcloud/create-an-account.html) for CockroachCloud with Github Authorization. Logging in with GitHub allows users to enforce [GitHub's two-factor authentication (2FA)](https://docs.github.com/en/github/authenticating-to-github/securing-your-account-with-two-factor-authentication-2fa) on their CockroachCloud account. Current users can [switch their login method](../cockroachcloud/create-an-account.html#change-your-login-method) between email and GitHub. - When logging in fails due to user input, the error message now includes [login method](../cockroachcloud/create-an-account.html#change-your-login-method) as a potential reason for failure. -- Previously, selecting a new cloud provider while [creating a cluster](../cockroachcloud/create-a-free-cluster.html) would reset the **Region** and **Hardware per node** options to default. Now, equivalent region and hardware options are preselected, and the number of nodes per region is preserved when a new cloud provider is selected. +- Previously, selecting a new cloud provider while [creating a cluster](../cockroachcloud/create-a-serverless-cluster.html) would reset the **Region** and **Hardware per node** options to default. Now, equivalent region and hardware options are preselected, and the number of nodes per region is preserved when a new cloud provider is selected. ### Bug fixes From 597d098576f78ac420de0ecf71be42448c0f30b1 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Wed, 7 Jul 2021 16:15:05 -0400 Subject: [PATCH 02/77] free throttled --- _includes/cockroachcloud/free-throttle.md | 3 +++ cockroachcloud/quickstart.md | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 _includes/cockroachcloud/free-throttle.md diff --git a/_includes/cockroachcloud/free-throttle.md b/_includes/cockroachcloud/free-throttle.md new file mode 100644 index 00000000000..ee9699b30c0 --- /dev/null +++ b/_includes/cockroachcloud/free-throttle.md @@ -0,0 +1,3 @@ +{{site.data.alerts.callout_info}} +Note that free clusters are throttled and have limited features. +{{site.data.alerts.end}} diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index 687c3cd88b7..df6f4e45d72 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -6,13 +6,15 @@ toc: true This page guides you through the quickest way to get started with CockroachDB by setting up a free CockroachCloud Serverless cluster with the default options and minimal connection security. For information on how to create a CockroachCloud cluster with other options, see the [Learn more](#learn-more) section. {% include cockroachcloud/free-limitations.md %} +{% include cockroachcloud/free-throttle.md %} + ## Step 1. Create a free cluster 1. If you haven't already, sign up for a CockroachCloud account. From 49ece9bb4dcfd55d37c1c97e8d2f2af8fe4927ae Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Thu, 8 Jul 2021 12:51:13 -0400 Subject: [PATCH 03/77] placeholder updates --- cockroachcloud/cluster-management.md | 4 ++++ cockroachcloud/create-a-serverless-cluster.md | 4 +++- cockroachcloud/quickstart-trial-cluster.md | 6 +++--- cockroachcloud/upgrade-policy.md | 6 +++--- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/cockroachcloud/cluster-management.md b/cockroachcloud/cluster-management.md index 59ee3656a08..cb617b8ffcf 100644 --- a/cockroachcloud/cluster-management.md +++ b/cockroachcloud/cluster-management.md @@ -144,6 +144,10 @@ To restore your data, [contact us](https://support.cockroachlabs.com). Additionally, you can [backup and restore](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html) data on your own. +## Pausing and resuming a clusters + +- How to pause/resume an inactive free serverless cluster + ## Delete cluster {{site.data.alerts.callout_danger}} diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 144781561d9..04349942666 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -50,7 +50,9 @@ Your cluster will be created in approximately 20-30 seconds.
-placeholder +- Document how to determine and set resource limits +- Serverless clusters scale based on load +- Usage based billing
diff --git a/cockroachcloud/quickstart-trial-cluster.md b/cockroachcloud/quickstart-trial-cluster.md index 786e9973f39..18bcafb04bf 100644 --- a/cockroachcloud/quickstart-trial-cluster.md +++ b/cockroachcloud/quickstart-trial-cluster.md @@ -5,11 +5,11 @@ toc: true --- -This page shows you how to deploy a CockroachDB cluster on CockroachCloud (free for a 30-day trial for your first cluster), connect to it using a sample workload, and run your first query. +This page shows you how to deploy a CockroachDB cluster on CockroachCloud Dedicated (free for a 30-day trial for your first cluster), connect to it using a sample workload, and run your first query. To run CockroachDB on your local machine instead, see [Start a Local Cluster](../{{site.versions["stable"]}}/secure-a-cluster.html). diff --git a/cockroachcloud/upgrade-policy.md b/cockroachcloud/upgrade-policy.md index f6f2179d298..ec206a7afec 100644 --- a/cockroachcloud/upgrade-policy.md +++ b/cockroachcloud/upgrade-policy.md @@ -9,12 +9,12 @@ This page describes the upgrade policy for CockroachCloud. CockroachCloud supports the latest major version of CockroachDB and the version immediately preceding it. Support for these versions includes minor version updates and security patches. {{site.data.alerts.callout_danger}} -[CockroachCloud Free (beta)](quickstart.html) clusters are subject to automatic upgrades for both minor and major releases. +[CockroachCloud Serverless](quickstart.html) clusters are subject to automatic upgrades for both minor and major releases. {{site.data.alerts.end}} ## Minor version upgrades -[Minor versions](https://www.cockroachlabs.com/docs/releases/) (or "point" releases) are stable, backward-compatible improvements to the major versions of CockroachDB. All clusters, including both CockroachCloud Free (beta) and CockroachCloud clusters, are subject to automatic upgrades to the latest supported minor version (for example, v21.1.0 → v21.1.1). +[Minor versions](https://www.cockroachlabs.com/docs/releases/) (or "point" releases) are stable, backward-compatible improvements to the major versions of CockroachDB. All clusters, including both CockroachCloud Serverless and CockroachCloud Dedicated clusters, are subject to automatic upgrades to the latest supported minor version (for example, v21.1.0 → v21.1.1). {{site.data.alerts.callout_danger}} Single-node clusters will experience some downtime during cluster maintenance. @@ -24,7 +24,7 @@ Single-node clusters will experience some downtime during cluster maintenance. [Major version releases](../releases/) contain new functionality and potentially backward-incompatible changes to CockroachDB (for example, v20.2.x → v21.1.x). -When a new major version is available, [CockroachCloud Admins](console-access-management.html#console-admin) will be able to [start an upgrade directly from the CockroachCloud Console](upgrade-to-v21.1.html) for clusters using the paid version of CockroachCloud. CockroachCloud Free (beta) clusters are subject to automatic upgrades to the latest supported major version. +When a new major version is available, [CockroachCloud Admins](console-access-management.html#console-admin) will be able to [start an upgrade directly from the CockroachCloud Console](upgrade-to-v21.1.html) for clusters using the paid version of CockroachCloud. CockroachCloud Serverless clusters are subject to automatic upgrades to the latest supported major version. ### Support downgrade for older CockroachDB versions From 8840adfc473c23180be245cef1260dcca5151a33 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Thu, 8 Jul 2021 16:06:27 -0400 Subject: [PATCH 04/77] more draft updates --- .../quickstart/create-a-free-cluster.md | 5 ++- cockroachcloud/cluster-management.md | 44 +++++++++++++------ .../connect-to-a-serverless-cluster.md | 2 +- cockroachcloud/connect-to-your-cluster.md | 2 +- cockroachcloud/create-a-serverless-cluster.md | 39 +++++++++++----- cockroachcloud/frequently-asked-questions.md | 2 +- .../migrate-from-free-to-dedicated.md | 9 ++-- cockroachcloud/quickstart.md | 14 +++--- cockroachcloud/security-overview.md | 6 ++- cockroachcloud/serverless-faqs.md | 10 +++-- 10 files changed, 89 insertions(+), 44 deletions(-) diff --git a/_includes/cockroachcloud/quickstart/create-a-free-cluster.md b/_includes/cockroachcloud/quickstart/create-a-free-cluster.md index 7472acea0a0..b3eb22afd86 100644 --- a/_includes/cockroachcloud/quickstart/create-a-free-cluster.md +++ b/_includes/cockroachcloud/quickstart/create-a-free-cluster.md @@ -1,13 +1,14 @@ 1. If you haven't already, sign up for a CockroachCloud account. 1. [Log in](https://cockroachlabs.cloud/) to your CockroachCloud account. 1. On the **Clusters** page, click **Create Cluster**. -1. On the **Create your cluster** page, select the **Free Plan**. +1. _(Optional)_ Select a cloud provider (GCP or AWS) in the **Cloud Provider & Region** section. +1. _(Optional)_ Select a region in the **Cloud Provider & Region** section. For optimal performance, select the cloud provider region closest to the region in which you are running your application. +1. In the **Cost & Performance** section, select the **Free forever** plan. {{site.data.alerts.callout_info}} This cluster will be free forever. {{site.data.alerts.end}} -1. _(Optional)_ Select a cloud provider (GCP or AWS) in the **Additional configuration** section. 1. Click **Create your free cluster**. Your cluster will be created in approximately 20-30 seconds. \ No newline at end of file diff --git a/cockroachcloud/cluster-management.md b/cockroachcloud/cluster-management.md index cb617b8ffcf..1c4c2177aa7 100644 --- a/cockroachcloud/cluster-management.md +++ b/cockroachcloud/cluster-management.md @@ -13,7 +13,7 @@ On [logging in to the CockroachCloud Console](https://cockroachlabs.cloud/), the For each cluster, the following details display: - The cluster's **Name** -- The cluster's **Plan Type**, either Free or Paid +- The cluster's **Plan Type**, either Serverless or Dedicated - The date and time the cluster was **Created** - The cluster's current **State** - The **Version** of CockroachDB the cluster is running @@ -28,25 +28,45 @@ To view and manage a specific cluster, click the name of the cluster. The [**Ove Select the type of cluster you are viewing (and page content below will change accordingly):
- - + +
-
+
+ +## Planning your cluster + +- How to determine and set resource limits +- Request Unit explanation +- Serverless clusters scale based on load +- Free tier clusters are throttled, paid have usage-based billing + ## View cluster overview -The **Overview** page displays details about the selected CockroachCloud Free (beta) cluster: +The **Overview** page displays details about the selected CockroachCloud Serverless cluster: - The **Plan** that the cluster was created with - The cluster's **Cloud** provider -- The amount of **Storage** the cluster is using +- The **Monthly Budget** for the clusters +- The **Resource summary** of the cluster's budget allocation + + Free CockroachCloud Serverless clusters have a limit of 5GB storage and 500M Request Units per month. + +- The cluster's **Resource usage** + + placeholder - There is an upper limit of 5GB storage per CockroachCloud Free (beta) cluster. +- The cluster's **Query performance** -- The cluster's **Throughput** + placeholder - Throughput is measured in queries per second. +## Edit your spend limit + +## Pausing and resuming a clusters + +- How to pause/resume an inactive free serverless cluster +
@@ -144,10 +164,6 @@ To restore your data, [contact us](https://support.cockroachlabs.com). Additionally, you can [backup and restore](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html) data on your own.
-## Pausing and resuming a clusters - -- How to pause/resume an inactive free serverless cluster - ## Delete cluster {{site.data.alerts.callout_danger}} @@ -155,7 +171,7 @@ Deleting a cluster will delete all cluster data. {{site.data.alerts.end}} {{site.data.alerts.callout_info}} -CockroachCloud Free (beta) clusters are subject to deletion after 6 months of no activity. +Free CockroachCloud clusters are subject to deletion after 6 months of no activity. {{site.data.alerts.end}} Proceed with the following steps only if you are sure you want to delete a cluster: diff --git a/cockroachcloud/connect-to-a-serverless-cluster.md b/cockroachcloud/connect-to-a-serverless-cluster.md index 8a33ac10b10..d7cafff16ab 100644 --- a/cockroachcloud/connect-to-a-serverless-cluster.md +++ b/cockroachcloud/connect-to-a-serverless-cluster.md @@ -97,7 +97,7 @@ To connect to your cluster with your application, use the connection string prov {% include cockroachcloud/download-the-cert-free.md %} -1. Copy the connection string provided in the **Connect** modal, which will be used to connect your application to CockroachCloud Free (beta). +1. Copy the connection string provided in the **Connect** modal, which will be used to connect your application to CockroachCloud.
{% include_cached copy-clipboard.html %} diff --git a/cockroachcloud/connect-to-your-cluster.md b/cockroachcloud/connect-to-your-cluster.md index c2c49ed762b..8548a6aa4e5 100644 --- a/cockroachcloud/connect-to-your-cluster.md +++ b/cockroachcloud/connect-to-your-cluster.md @@ -9,7 +9,7 @@ toc: true -This page shows you how to connect to your CockroachCloud cluster. +This page shows you how to connect to your CockroachCloud Dedicated cluster. ## Before you start diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 04349942666..cfdd3314ff3 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -23,7 +23,21 @@ If you haven't already, @@ -32,16 +46,12 @@ If you haven't already, -1. On the **Create your cluster** page, select the **Free Plan**. +1. In the **Cost & Performance** section, select the **Free forever** plan. {{site.data.alerts.callout_info}} This cluster will be free forever. {{site.data.alerts.end}} -1. _(Optional)_ Select a cloud provider (GCP or AWS) in the **Additional configuration** section. - -1. _(Optional)_ Select a region in the **Additional configuration** section. For optimal performance, select the cloud provider region closest to the region in which you are running your application. - 1. Click **Create your free cluster**. Your cluster will be created in approximately 20-30 seconds. @@ -50,9 +60,16 @@ Your cluster will be created in approximately 20-30 seconds.
-- Document how to determine and set resource limits -- Serverless clusters scale based on load -- Usage based billing + +1. In the **Cost & Performance** section, select **Set a spend limit as low as $1/month**. + +1. Enter your **Spend limit**. + + This is the maximum amount you could be charged per month. You will be charged only for what you use. + +1. Click **Continue to payment details**. + +Your cluster will be created in approximately 20-30 seconds.
@@ -63,9 +80,9 @@ Your cluster will be created in approximately 20-30 seconds. ## Usage examples -CockroachCloud Free (beta) can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). +Free CockroachCloud Serverless clsuters can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). -For examples of applications that use CockroachCloud Free (beta), check out the following [Hack the North](https://hackthenorth.com/) projects: +For examples of applications that use free CockroachCloud clusters, check out the following [Hack the North](https://hackthenorth.com/) projects: - [flock](https://devpost.com/software/flock-figure-out-what-film-to-watch-with-friends) - [mntr.tech](https://devpost.com/software/mntr-tech) diff --git a/cockroachcloud/frequently-asked-questions.md b/cockroachcloud/frequently-asked-questions.md index ab73ee03947..a981a38e063 100644 --- a/cockroachcloud/frequently-asked-questions.md +++ b/cockroachcloud/frequently-asked-questions.md @@ -4,7 +4,7 @@ summary: Get answers to frequently asked questions about CockroachCloud toc: true --- -This page answers the frequently asked questions about CockroachCloud Free (beta) and the paid version of CockroachCloud. +This page answers the frequently asked questions about CockroachCloud Serverless and CockroachCloud Dedicated.
diff --git a/cockroachcloud/migrate-from-free-to-dedicated.md b/cockroachcloud/migrate-from-free-to-dedicated.md index 22a11c89c37..ced1d678e46 100644 --- a/cockroachcloud/migrate-from-free-to-dedicated.md +++ b/cockroachcloud/migrate-from-free-to-dedicated.md @@ -1,10 +1,13 @@ --- -title: Migrate from a CockroachCloud Free (beta) to CockroachCloud Cluster -summary: Learn how to migrate data from a CockroachCloud Free (beta) cluster into a paid CockroachCloud cluster. +title: Migrate from a CockroachCloud Serverless to CockroachCloud Dedicated Cluster +summary: Learn how to migrate data from a CockroachCloud Free Serverless cluster into a CockroachCloud Dedicated cluster. toc: true --- +{% comment %} +This whole page needs to be updated for migration from free to pay as you go and dedicated. +{% endcomment %} -This page has instructions for migrating data from a CockroachCloud Free (beta) cluster to a paid CockroachCloud cluster, by exporting to CSV and using [`IMPORT`](../{{site.versions["stable"]}}/import.html). You may want to migrate to the paid version of CockroachCloud if: +This page has instructions for migrating data from a CockroachCloud Serverless cluster to a CockroachCloud Dedicated cluster, by exporting to CSV and using [`IMPORT`](../{{site.versions["stable"]}}/import.html). You may want to migrate to the paid version of CockroachCloud if: - You reach (or get close to reaching) the upper limit of usage of up to 1 vCPU and 5GB storage per CockroachCloud Free (beta) cluster. - You want to use any of the capabilities that are not yet available in CockroachCloud Free (beta) clusters, like the ability to enable backups or to upload data with the `IMPORT` command. diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index 21dfa4c9e31..4eff5784fec 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -9,7 +9,7 @@ toc: true
-This page guides you through the quickest way to get started with CockroachDB by setting up a free CockroachCloud Serverless cluster with the default options and minimal connection security. For information on how to create a CockroachCloud cluster with other options, see the [Learn more](#learn-more) section. +This page guides you through the quickest way to get started with CockroachDB by setting up a free CockroachCloud Serverless cluster with the default options. For information on how to create a CockroachCloud cluster with other options, see the [Learn more](#learn-more) section. {% include cockroachcloud/free-limitations.md %} @@ -21,6 +21,9 @@ This page guides you through the quickest way to get started with CockroachDB by 1. [Log in](https://cockroachlabs.cloud/) to your CockroachCloud account. 1. On the **Clusters** page, click **Create Cluster**. 1. On the **Create your cluster** page, select **CockroachCloud Serverless**. + + Unless you change your monthly budget, this cluster will be free forever. + 1. Click **Create cluster**. Your cluster will be created in approximately 20-30 seconds and the **Connect** dialog will display. @@ -146,11 +149,10 @@ mkdir -p $env:appdata\.postgresql\; Invoke-WebRequest -Uri https://cockroachlabs ## Learn more -This page outlines the quickest way to get started with CockroachDB. For information on other options that are available when creating a CockroachCloud Free (beta) cluster, see the following: +This page outlines the quickest way to get started with CockroachDB. For information on other options that are available when creating a CockroachCloud Serverless cluster, see the following: -- To create a free cluster with other configurations (e.g., a different cloud provider or region), see [Create a CockroachCloud Serverless Cluster](create-a-serverless-cluster.html). -- To connect to a free cluster with other options (e.g., a CA certificate or different SQL user) and connection methods (with an application or [CockroachDB compatible tool](../stable/third-party-database-tools.html)), see [Connect to a CockroachCloud Serverless Cluster](connect-to-a-serverless-cluster.html). -- For information about how to connect securely to your cluster (recommended), see [Authentication](authentication.html). +- To create a free cluster with other configurations (e.g., a different cloud provider, region, or monthly budget), see [Create a CockroachCloud Serverless Cluster](create-a-serverless-cluster.html). +- To connect to a free cluster with other options (e.g., a different SQL user) and connection methods (with an application or [CockroachDB compatible tool](../stable/third-party-database-tools.html)), see [Connect to a CockroachCloud Serverless Cluster](connect-to-a-serverless-cluster.html). - To watch a video walkthrough of connecting to a cluster, see [How to connect to CockroachCloud and Import Data](https://www.youtube.com/watch?v=XJZD1rorEQE). Next steps: @@ -158,4 +160,4 @@ Next steps: - Use the [built-in SQL client](../{{site.versions["stable"]}}/cockroach-sql.html) to connect to your cluster and [learn CockroachDB SQL](learn-cockroachdb-sql.html). - [Create and manage SQL users](user-authorization.html). - Build a ["Hello World" app with the Django framework](../{{site.versions["stable"]}}/build-a-python-app-with-cockroachdb-django.html), or [install a client driver](../{{site.versions["stable"]}}/install-client-drivers.html) for your favorite language. -- Explore our [sample apps](../{{site.versions["stable"]}}/hello-world-example-apps.html) for examples on how to build simple "Hello World" applications using CockroachCloud Free (beta). +- Explore our [sample apps](../{{site.versions["stable"]}}/hello-world-example-apps.html) for examples on how to build simple "Hello World" applications using CockroachCloud. diff --git a/cockroachcloud/security-overview.md b/cockroachcloud/security-overview.md index 483a510619a..b4d81a2ad16 100644 --- a/cockroachcloud/security-overview.md +++ b/cockroachcloud/security-overview.md @@ -4,8 +4,10 @@ summary: Learn about the authentication, encryption, authorization, and audit lo toc: true --- -A CockroachCloud cluster is single-tenant (no shared machines) running in a Virtual Private Cloud (no shared network) and has data encryption-in-flight enabled by default. Additionally, CockroachCloud provides authentication, authorization, and SQL audit logging features to secure your clusters. - +A CockroachCloud Dedicated cluster is single-tenant (no shared machines) running in a Virtual Private Cloud (no shared network) and has data encryption-in-flight enabled by default. Additionally, CockroachCloud provides authentication, authorization, and SQL audit logging features to secure your clusters. +{% comment %} +CockroachCloud Serverless update here. +{% endcomment%} The following table summarizes the CockroachCloud security features and provides links to detailed documentation for each feature where applicable. Security feature | Description diff --git a/cockroachcloud/serverless-faqs.md b/cockroachcloud/serverless-faqs.md index b0cb3246692..d84fcc31cf9 100644 --- a/cockroachcloud/serverless-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -1,10 +1,14 @@ --- -title: CockroachCloud Free (beta) FAQs -summary: Get answers to frequently asked questions about CockroachCloud Free (beta) +title: CockroachCloud Serverless FAQs +summary: Get answers to frequently asked questions about CockroachCloud Serverless toc: true --- -This page answers the frequently asked questions about CockroachCloud Free (beta) and the paid version of CockroachCloud. +{% comment %} +This whole page needs to be updated for Serverless. +{% endcomment %} + +This page answers the frequently asked questions about CockroachCloud Serverless and CockroachCloud Dedicated.
From 51bf50be8168b60d18429a3652a1ff509a83be7d Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Thu, 8 Jul 2021 16:25:34 -0400 Subject: [PATCH 05/77] link fixes --- cockroachcloud/create-a-serverless-cluster.md | 2 +- releases/cockroachcloud-07062021.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index cfdd3314ff3..ad711cea78e 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -36,7 +36,7 @@ If you haven't already, diff --git a/releases/cockroachcloud-07062021.md b/releases/cockroachcloud-07062021.md index afb97f11389..edfcd6b03d4 100644 --- a/releases/cockroachcloud-07062021.md +++ b/releases/cockroachcloud-07062021.md @@ -18,7 +18,7 @@ Get future release notes emailed to you: ### Console changes - [Multi-region](../cockroachcloud/create-your-cluster.html#step-3-select-the-region-s) clusters can now be created through the Console. To learn more about creating a multi-region cluster, see [Planning your cluster](../cockroachcloud/cluster-management.html?filters=dedicated#planning-your-cluster). -- The **Connect** modal now has updated commands to make [connecting to your cluster](../cockroachcloud/connect-to-a-free-cluster.html) a smoother experience on Mac, Linux, and Windows. +- The **Connect** modal now has updated commands to make [connecting to your cluster](../cockroachcloud/connect-to-a-serverless-cluster.html) a smoother experience on Mac, Linux, and Windows. - All CockroachCloud users now have access to the [**Transactions** page](../cockroachcloud/transactions-page.html) in the Console. - Navigation on the **Clusters** page is now a vertical sidebar instead of horizontal tabs. - Added a tooltip to the **Upgrade** option in the **Action** Menu, which gives users more version-specific context. From 906048565d57598d657481673419857d3440ec77 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Mon, 12 Jul 2021 12:27:49 -0400 Subject: [PATCH 06/77] free throttled updated --- _includes/cockroachcloud/free-throttle.md | 2 +- cockroachcloud/create-a-serverless-cluster.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/cockroachcloud/free-throttle.md b/_includes/cockroachcloud/free-throttle.md index ee9699b30c0..b86a395c0f4 100644 --- a/_includes/cockroachcloud/free-throttle.md +++ b/_includes/cockroachcloud/free-throttle.md @@ -1,3 +1,3 @@ {{site.data.alerts.callout_info}} -Note that free clusters are throttled and have limited features. +Free clusters have heavily throttled resources and limited features. If you want a cluster with higher performance and full capabilities, you can [create a paid Serverless cluster](create-a-serverless-cluster.html) for as little as $1 per month. {{site.data.alerts.end}} diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index ad711cea78e..1cec58b8d67 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -31,7 +31,7 @@ If you haven't already, - +
-This page shows you how to connect to your CockroachCloud Serverless cluster. If you'd like to follow along with a video walkthrough, see [How to connect to CockroachCloud and Import Data](https://www.youtube.com/watch?v=XJZD1rorEQE). +This page shows you how to connect to your CockroachCloud Serverless (beta) cluster. If you'd like to follow along with a video walkthrough, see [How to connect to CockroachCloud and Import Data](https://www.youtube.com/watch?v=XJZD1rorEQE). {% include cockroachcloud/free-limitations.md %} diff --git a/cockroachcloud/connect-to-your-cluster.md b/cockroachcloud/connect-to-your-cluster.md index 8548a6aa4e5..12ef826f035 100644 --- a/cockroachcloud/connect-to-your-cluster.md +++ b/cockroachcloud/connect-to-your-cluster.md @@ -5,7 +5,7 @@ toc: true --- diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 1cec58b8d67..99ee2ffdb09 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -1,15 +1,15 @@ --- -title: Create a CockroachCloud Serverless Cluster -summary: Learn how to create a cluster using CockroachCloud Serverless. +title: Create a CockroachCloud Serverless (beta) Cluster +summary: Learn how to create a cluster using CockroachCloud Serverless (beta). toc: true --- -This page walks you through the process of creating a cluster using CockroachCloud Serverless. Note that only [CockroachCloud Console Administrators](console-access-management.html#console-admin) can create clusters. If you are a Developer and need to create a cluster, contact your CockroachCloud Administrator. +This page walks you through the process of creating a cluster using CockroachCloud Serverless (beta). Note that only [CockroachCloud Console Administrators](console-access-management.html#console-admin) can create clusters. If you are a Developer and need to create a cluster, contact your CockroachCloud Administrator. {% include cockroachcloud/free-limitations.md %} @@ -80,7 +80,7 @@ Your cluster will be created in approximately 20-30 seconds. ## Usage examples -Free CockroachCloud Serverless clsuters can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). +Free CockroachCloud Serverless (beta) clusters can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). For examples of applications that use free CockroachCloud clusters, check out the following [Hack the North](https://hackthenorth.com/) projects: diff --git a/cockroachcloud/create-your-cluster.md b/cockroachcloud/create-your-cluster.md index 8a1d5ff1bd9..7d761a622be 100644 --- a/cockroachcloud/create-your-cluster.md +++ b/cockroachcloud/create-your-cluster.md @@ -5,7 +5,7 @@ toc: true --- diff --git a/cockroachcloud/frequently-asked-questions.md b/cockroachcloud/frequently-asked-questions.md index a981a38e063..d2181b41222 100644 --- a/cockroachcloud/frequently-asked-questions.md +++ b/cockroachcloud/frequently-asked-questions.md @@ -4,10 +4,10 @@ summary: Get answers to frequently asked questions about CockroachCloud toc: true --- -This page answers the frequently asked questions about CockroachCloud Serverless and CockroachCloud Dedicated. +This page answers the frequently asked questions about CockroachCloud Serverless (beta) and CockroachCloud Dedicated. diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index 4eff5784fec..3521206e20a 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -1,15 +1,15 @@ --- -title: Quickstart with CockroachCloud Serverless +title: Quickstart with CockroachCloud Serverless (beta) summary: Learn how to create and use your free CockroachCloud cluster. toc: true --- -This page guides you through the quickest way to get started with CockroachDB by setting up a free CockroachCloud Serverless cluster with the default options. For information on how to create a CockroachCloud cluster with other options, see the [Learn more](#learn-more) section. +This page guides you through the quickest way to get started with CockroachDB by setting up a free CockroachCloud Serverless (beta) cluster with the default options. For information on how to create a CockroachCloud cluster with other options, see the [Learn more](#learn-more) section. {% include cockroachcloud/free-limitations.md %} @@ -149,10 +149,10 @@ mkdir -p $env:appdata\.postgresql\; Invoke-WebRequest -Uri https://cockroachlabs ## Learn more -This page outlines the quickest way to get started with CockroachDB. For information on other options that are available when creating a CockroachCloud Serverless cluster, see the following: +This page outlines the quickest way to get started with CockroachDB. For information on other options that are available when creating a CockroachCloud Serverless (beta) cluster, see the following: -- To create a free cluster with other configurations (e.g., a different cloud provider, region, or monthly budget), see [Create a CockroachCloud Serverless Cluster](create-a-serverless-cluster.html). -- To connect to a free cluster with other options (e.g., a different SQL user) and connection methods (with an application or [CockroachDB compatible tool](../stable/third-party-database-tools.html)), see [Connect to a CockroachCloud Serverless Cluster](connect-to-a-serverless-cluster.html). +- To create a free cluster with other configurations (e.g., a different cloud provider, region, or monthly budget), see [Create a CockroachCloud Serverless (beta) Cluster](create-a-serverless-cluster.html). +- To connect to a free cluster with other options (e.g., a different SQL user) and connection methods (with an application or [CockroachDB compatible tool](../stable/third-party-database-tools.html)), see [Connect to a CockroachCloud Serverless (beta) Cluster](connect-to-a-serverless-cluster.html). - To watch a video walkthrough of connecting to a cluster, see [How to connect to CockroachCloud and Import Data](https://www.youtube.com/watch?v=XJZD1rorEQE). Next steps: diff --git a/cockroachcloud/serverless-faqs.md b/cockroachcloud/serverless-faqs.md index d84fcc31cf9..1b26d194540 100644 --- a/cockroachcloud/serverless-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -1,14 +1,10 @@ --- -title: CockroachCloud Serverless FAQs -summary: Get answers to frequently asked questions about CockroachCloud Serverless +title: CockroachCloud Serverless (beta) FAQs +summary: Get answers to frequently asked questions about CockroachCloud Serverless (beta) toc: true --- -{% comment %} -This whole page needs to be updated for Serverless. -{% endcomment %} - -This page answers the frequently asked questions about CockroachCloud Serverless and CockroachCloud Dedicated. +This page answers the frequently asked questions about CockroachCloud Serverless (beta) and CockroachCloud Dedicated.
@@ -17,35 +13,37 @@ This page answers the frequently asked questions about CockroachCloud Serverless ## General -### What is CockroachCloud Free (beta)? +### What is CockroachCloud Serverless (beta)? -CockroachCloud Free (beta) delivers free CockroachDB clusters for you and your organization. It is a managed instance of CockroachDB that removes the friction of initial cluster sizing and auto-scales based on your application traffic. +CockroachCloud Serverless (beta) delivers free CockroachDB clusters for you and your organization. It is a managed instance of CockroachDB that removes the friction of initial cluster sizing and auto-scales based on your application traffic. -### How do I start using CockroachCloud Free (beta)? +### How do I start using CockroachCloud Serverless (beta)? -To get started with CockroachCloud Free (beta), sign up for a CockroachCloud account, click **Create Cluster**, then click **Create your free cluster**. Your cluster will be ready in 20-30 seconds. For more information, see [**Quickstart**](quickstart.html). +To get started with CockroachCloud Serverless (beta), sign up for a CockroachCloud account, click **Create Cluster**, then click **Create your free cluster**. Your cluster will be ready in 20-30 seconds. For more information, see [**Quickstart**](quickstart.html). -### What are the usage limits of Cockroach Cloud Free (beta)? +### What are the usage limits of Cockroach Cloud Serverless (beta)? -There is an upper limit of usage of up to 1 vCPU and 5GB storage per free cluster. If you hit the storage limit, you will receive an email asking you to delete enough data to stay under the 5GB limit. If you do not respond within the next 30 days, you will be blocked from accessing your cluster. +Free clusters have a limit of 500M Request Units and 5GB of storage, but the performance is heavily throttled. Paid clusters have access to the same resources with no limitations in addition to the amount you pay for. -### Do I have to pay for CockroachCloud Free (beta)? +### Do I have to pay for CockroachCloud Serverless (beta)? -No, you do not have to pay anything. CockroachCloud Free (beta) is free forever. +No, you can create a Serverless cluster that is free forever. If you choose to create a paid cluster, you will only be charged for the resources you use up to your spend limit. -### What can I use CockroachCloud Free (beta) for? +### What can I use CockroachCloud Serverless (beta) for? -CockroachCloud Free (beta) can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). +Free CockroachCloud Serverless (beta) clusters can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). -For examples of applications that use CockroachCloud Free (beta), check out the following [Hack the North](https://hackthenorth.com/) projects: +For examples of applications that use free clusters, check out the following [Hack the North](https://hackthenorth.com/) projects: - [flock](https://devpost.com/software/flock-figure-out-what-film-to-watch-with-friends) - [mntr.tech](https://devpost.com/software/mntr-tech) - [curbshop.online](https://devpost.com/software/curbshop-online) -### What are the limitations of CockroachCloud Free (beta)? +Paid Serverless clusters have higher performance, additional features, and the ability to scale according to your needs. They can be used for larger applications and projects. + +### What are the limitations of CockroachCloud Serverless (beta)? -CockroachCloud Free is currently in beta and there are capabilities we are still working on enabling, such as the ability to enable backups, to import data, and no-downtime upgrades to a paid tier. If you want to use any of these capabilities, try a [30-day trial of CockroachCloud](quickstart-trial-cluster.html). +CockroachCloud Serverless is currently in beta and there are capabilities we are still working on enabling, such as the ability to enable backups, to import data, and no-downtime upgrades to a paid tier. If you want to use any of these capabilities, try a [30-day trial of CockroachCloud](quickstart-trial-cluster.html). ### How do I connect to my cluster? @@ -53,9 +51,9 @@ To connect to a cluster, download the CA certificate, and then generate a connec ## Beta release -### Why is CockroachCloud Free in beta? +### Why is CockroachCloud Serverless in beta? -CockroachCloud Free is in beta while we work on adding core features like [import](../{{site.versions["stable"]}}/import.html) and [backups](backups-page.html). +CockroachCloud Serverless is in beta while we work on adding core features like [import](../{{site.versions["stable"]}}/import.html) and [backups](backups-page.html). ### Where can I submit feedback or bugs on the beta? @@ -67,7 +65,7 @@ You can submit feedback or log any bugs you find through [this survey](https://f Yes, we use separate certificate authorities for each cluster, and all connections to the cluster over the internet use TLS 1.2. -### Is encryption-at-rest enabled on CockroachCloud Free (beta)? +### Is encryption-at-rest enabled on CockroachCloud Serverless (beta)? Yes. All data on CockroachCloud is encrypted-at-rest using the tools provided by the cloud provider that your cluster is running in. @@ -78,31 +76,37 @@ Because we are relying on the cloud provider's encryption implementation (as not ### Is my cluster isolated? Does it share resources with any other clusters? -CockroachCloud Free (beta) is a multi-tenant offering and resources are shared between clusters. +CockroachCloud Serverless (beta) is a multi-tenant offering and resources are shared between clusters. ## Cluster maintenance ### How do I add nodes? -You cannot add nodes to your CockroachCloud Free (beta) cluster, and there is an upper limit of usage of up to 1 vCPU and 5GB storage. If you exceed this limit or want a more powerful cluster, you can create a cluster using the paid version of [CockroachCloud](create-your-cluster.html). +You can add nodes to paid CockroachCloud Serverless (beta) clusters, but not to free clusters. If you have a paid cluster, you can add nodes by accessing the **Clusters** page on the [CockroachCloud Console](https://cockroachlabs.cloud/) and clicking the **...** button for the cluster you want to add or delete nodes for. See [Cluster Mangement](cluster-management.html?filters=dedicated#add-or-remove-nodes-from-a-cluster) for more details. + +{% include cockroachcloud/nodes-limitation.md %} + +### Can I upgrade my free CockroachCloud Serverless (beta) cluster to a paid CockroachCloud Serverless (beta) cluster? + +At this time, a free CockroachCloud Serverless cluster cannot be upgraded. In the future, you will have the ability to move from a free CockroachCloud Serverless to a pay-as-you-go Serverless cluster. -### Can I upgrade my cluster from CockroachCloud Free (beta) to the paid version of CockroachCloud? +### Can I upgrade my cluster from CockroachCloud Serverless (beta) to CockroachCloud Dedicated? -At this time, a CockroachCloud Free (beta) cluster cannot be upgraded. In the future, you will have the ability to move from CockroachCloud Free (beta) to a paid version of CockroachCloud. +At this time, a CockroachCloud Serverless cluster cannot be upgraded. In the future, you will have the ability to move from CockroachCloud Serverless to CockroachCloud Dedicated. ## Product features ### Are partitioning or change data capture available to me? -No, change data capture and partitioning are not available on CockroachCloud Free (beta) clusters, but will be in the future. +No, change data capture and partitioning are not available on CockroachCloud Serverless (beta) clusters, but will be in the future. ### Do you have a UI? How can I see details? -Yes, you can view and your clusters in the [CockroachCloud Console](https://cockroachlabs.cloud/). However, [DB Console](../{{site.versions["stable"]}}/ui-overview.html) pages (e.g., **Statements** or **Database** pages) are not currently available for CockroachCloud Free (beta) clusters. +Yes, you can view and your clusters in the [CockroachCloud Console](https://cockroachlabs.cloud/). However, [DB Console](../{{site.versions["stable"]}}/ui-overview.html) pages (e.g., **Statements** or **Database** pages) are not currently available for CockroachCloud Serverless (beta) clusters. -### Can I backup my CockroachCloud Free (beta) cluster? Does Cockroach Labs take backups of my cluster? +### Can I backup my CockroachCloud Serverless (beta) cluster? Does Cockroach Labs take backups of my cluster? -Cockroach Labs takes full cluster backups of all CockroachCloud Free (beta) clusters for our own purposes. Currently, these backups are not available to you and you cannot backup and restore a CockroachCloud Free (beta) cluster yourself. We expect to support user-initiated backup and restore of free clusters in the future. +Cockroach Labs takes full cluster backups of all CockroachCloud Serverless (beta) clusters for our own purposes. Currently, these backups are not available to you and you cannot backup and restore a CockroachCloud Serverless (beta) cluster yourself. We expect to support user-initiated backup and restore of free clusters in the future. In the meantime, you can run a [`SELECT`](../{{site.versions["stable"]}}/select-clause.html) statement using the [`--format=csv` flag](../{{site.versions["stable"]}}/cockroach-sql.html#general) to print the output into a file. For example: @@ -111,4 +115,4 @@ In the meantime, you can run a [`SELECT`](../{{site.versions["stable"]}}/select- $ cockroach sql -e 'SELECT * FROM test_database.table1' --format=csv --url='postgres://username:password@free-tier...' > users.txt ~~~ -For an example on how to use this output to migrate to a paid CockroachCloud cluster, see [Migrate from a CockroachCloud Free (beta) to CockroachCloud Cluster](migrate-from-free-to-dedicated.html). +For an example on how to use this output to migrate to a paid CockroachCloud cluster, see [Migrate from a CockroachCloud Serverless (beta) to CockroachCloud Cluster](migrate-from-free-to-dedicated.html). From 470bbe3a0a28cc1d6ef46f6d888f19827e1b82a5 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Tue, 13 Jul 2021 18:03:45 -0400 Subject: [PATCH 08/77] nits and update cluster management --- _includes/sidebar-data-cockroachcloud.json | 1 + cockroachcloud/cluster-management.md | 75 ++++--------- cockroachcloud/create-a-serverless-cluster.md | 4 - cockroachcloud/quickstart-trial-cluster.md | 4 +- .../serverless-cluster-management.md | 100 ++++++++++++++++++ 5 files changed, 126 insertions(+), 58 deletions(-) create mode 100644 cockroachcloud/serverless-cluster-management.md diff --git a/_includes/sidebar-data-cockroachcloud.json b/_includes/sidebar-data-cockroachcloud.json index 424c817fd95..903f9ec9bac 100644 --- a/_includes/sidebar-data-cockroachcloud.json +++ b/_includes/sidebar-data-cockroachcloud.json @@ -189,6 +189,7 @@ { "title": "Manage Your Cluster", "urls": [ + "/cockroachcloud/serverless-cluster-management.html", "/cockroachcloud/cluster-management.html" ] }, diff --git a/cockroachcloud/cluster-management.md b/cockroachcloud/cluster-management.md index 1c4c2177aa7..c4524149eb2 100644 --- a/cockroachcloud/cluster-management.md +++ b/cockroachcloud/cluster-management.md @@ -4,8 +4,19 @@ summary: Manage your cluster's schema, data, and more. toc: true --- + + This page describes the cluster management and cluster deletion workflows. +## Planning your cluster + +Before making any changes to your cluster's nodes or regions, review our requirements and recommendations for CockroachCloud cluster configuration. + +{% include cockroachcloud/planning-your-cluster.md %} + ## View Clusters page On [logging in to the CockroachCloud Console](https://cockroachlabs.cloud/), the **Clusters** page is displayed. The **Clusters** page provides a high-level view of your clusters. @@ -26,57 +37,6 @@ For each cluster, the following details display: To view and manage a specific cluster, click the name of the cluster. The [**Overview**](#view-cluster-overview) page will display. -Select the type of cluster you are viewing (and page content below will change accordingly): -
- - -
- -
- -## Planning your cluster - -- How to determine and set resource limits -- Request Unit explanation -- Serverless clusters scale based on load -- Free tier clusters are throttled, paid have usage-based billing - - -## View cluster overview - -The **Overview** page displays details about the selected CockroachCloud Serverless cluster: - -- The **Plan** that the cluster was created with -- The cluster's **Cloud** provider -- The **Monthly Budget** for the clusters -- The **Resource summary** of the cluster's budget allocation - - Free CockroachCloud Serverless clusters have a limit of 5GB storage and 500M Request Units per month. - -- The cluster's **Resource usage** - - placeholder - -- The cluster's **Query performance** - - placeholder - -## Edit your spend limit - -## Pausing and resuming a clusters - -- How to pause/resume an inactive free serverless cluster - -
- -
- -## Planning your cluster - -Before making any changes to your cluster's nodes or regions, review our requirements and recommendations for CockroachCloud cluster configuration. - -{% include cockroachcloud/planning-your-cluster.md %} - ## View cluster overview The **Overview** page displays details about the selected CockroachCloud cluster: @@ -162,7 +122,18 @@ All databases are not backed up at the same time. Each database is backed up eve To restore your data, [contact us](https://support.cockroachlabs.com). Additionally, you can [backup and restore](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html) data on your own. -
+ +## Restore data from a backup + +Cockroach Labs runs full backups daily and incremental backups hourly for every CockroachCloud cluster. The full backups are retained for 30 days and incremental backups for 7 days. + +{{site.data.alerts.callout_info}} +All databases are not backed up at the same time. Each database is backed up every hour based on the time of creation. For larger databases, you might see an hourly CPU spike while the database is being backed up. +{{site.data.alerts.end}} + +To restore your data, [contact us](https://support.cockroachlabs.com). + +Additionally, you can [backup and restore](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html) data on your own. ## Delete cluster diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 99ee2ffdb09..af50fe53b1c 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -48,10 +48,6 @@ For more information on determining your resource usage, see [Planning your clus 1. In the **Cost & Performance** section, select the **Free forever** plan. - {{site.data.alerts.callout_info}} - This cluster will be free forever. - {{site.data.alerts.end}} - 1. Click **Create your free cluster**. Your cluster will be created in approximately 20-30 seconds. diff --git a/cockroachcloud/quickstart-trial-cluster.md b/cockroachcloud/quickstart-trial-cluster.md index 18bcafb04bf..fee0a40aeb6 100644 --- a/cockroachcloud/quickstart-trial-cluster.md +++ b/cockroachcloud/quickstart-trial-cluster.md @@ -5,11 +5,11 @@ toc: true --- -This page shows you how to deploy a CockroachDB cluster on CockroachCloud Dedicated (free for a 30-day trial for your first cluster), connect to it using a sample workload, and run your first query. +This page shows you how to deploy a CockroachDB cluster on CockroachCloud Dedicated (free for a 30-day trial for your first cluster), connect to your cluster, and run your first query. To run CockroachDB on your local machine instead, see [Start a Local Cluster](../{{site.versions["stable"]}}/secure-a-cluster.html). diff --git a/cockroachcloud/serverless-cluster-management.md b/cockroachcloud/serverless-cluster-management.md new file mode 100644 index 00000000000..0235e45c054 --- /dev/null +++ b/cockroachcloud/serverless-cluster-management.md @@ -0,0 +1,100 @@ +--- +title: Cluster Management +summary: Manage your cluster's schema, data, and more. +toc: true +--- + + + +This page describes the cluster management and cluster deletion workflows. + +## Planning your cluster + +- How to determine and set resource limits +- Request Unit explanation +- Serverless clusters scale based on load +- Free tier clusters are throttled, paid have usage-based billing + +## View Clusters page + +On [logging in to the CockroachCloud Console](https://cockroachlabs.cloud/), the **Clusters** page is displayed. The **Clusters** page provides a high-level view of your clusters. + +For each cluster, the following details display: + +- The cluster's **Name** +- The cluster's **Plan Type**, either Serverless or Dedicated +- The date and time the cluster was **Created** +- The cluster's current **State** +- The **Version** of CockroachDB the cluster is running +- The **Action** button, which is used to: + - [**Delete cluster**](#delete-cluster) + +To view and manage a specific cluster, click the name of the cluster. The [**Overview**](#view-cluster-overview) page will display. + +## View cluster overview + +The **Overview** page displays details about the selected CockroachCloud Serverless (beta) cluster: + +- The **Plan** that the cluster was created with +- The cluster's **Cloud** provider +- The cluster's **Region** +- The **Monthly Budget** for the clusters +- The **Resource summary** of the cluster's budget allocation + + Free CockroachCloud Serverless (beta) clusters have a limit of 5GB storage and 500M Request Units per month. + +- The cluster's **Resource usage** + +- The cluster's **Query performance** + +## Edit your spend limit + +You can edit your spend limit from the **Overview** page. The change in your spend limit will affect current and upcoming billing cycles. See [Planning your cluster](#planning-your-cluster) for more information on resource usage. + +1. Navigate to the **Overview** page for the cluster you want to edit. +1. Click the pencil icon in the top right corner of the **Monthly Budget** section. + + You will be taken to **Edit cluster** page with a graph of your cluster's **Historical usage**. + +1. In the **Spend limit** dropdown, enter your new budget. + + Your **Performance estimate** in the **Summary** sidebar will update accordingly. + +1. Click **Update**. + +## Pausing and resuming a clusters + +- How to pause/resume an inactive free serverless cluster + +## Restore data from a backup + +Cockroach Labs runs full backups daily and incremental backups hourly for every CockroachCloud cluster. The full backups are retained for 30 days and incremental backups for 7 days. + +{{site.data.alerts.callout_info}} +All databases are not backed up at the same time. Each database is backed up every hour based on the time of creation. For larger databases, you might see an hourly CPU spike while the database is being backed up. +{{site.data.alerts.end}} + +To restore your data, [contact us](https://support.cockroachlabs.com). + +Additionally, you can [backup and restore](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html) data on your own. + +## Delete cluster + +{{site.data.alerts.callout_danger}} +Deleting a cluster will delete all cluster data. +{{site.data.alerts.end}} + +{{site.data.alerts.callout_info}} +Free CockroachCloud clusters are subject to deletion after 6 months of no activity. +{{site.data.alerts.end}} + +Proceed with the following steps only if you are sure you want to delete a cluster: + +1. Navigate to the **Overview** page for the cluster you want to delete. +1. Click the **Actions** button in the top right corner. +1. Select **Delete cluster**. +1. In the confirmation window, enter the name of the cluster. +1. Click **Delete**. From 18c82eb8a184f577b729cc7cb15dce222e32c893 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Tue, 13 Jul 2021 18:04:04 -0400 Subject: [PATCH 09/77] cluster management --- cockroachcloud/serverless-cluster-management.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/cockroachcloud/serverless-cluster-management.md b/cockroachcloud/serverless-cluster-management.md index 0235e45c054..a848c0ea6b6 100644 --- a/cockroachcloud/serverless-cluster-management.md +++ b/cockroachcloud/serverless-cluster-management.md @@ -41,14 +41,11 @@ The **Overview** page displays details about the selected CockroachCloud Serverl - The **Plan** that the cluster was created with - The cluster's **Cloud** provider - The cluster's **Region** -- The **Monthly Budget** for the clusters +- The cluster's **Monthly Budget** - The **Resource summary** of the cluster's budget allocation - - Free CockroachCloud Serverless (beta) clusters have a limit of 5GB storage and 500M Request Units per month. - -- The cluster's **Resource usage** - -- The cluster's **Query performance** +- The cluster's **Storage usage** +- The cluster's **Request units used** +- The cluster's **SQL statements** ## Edit your spend limit From 08618cf4399991d5cfd2f534724225c7dd3b280f Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Wed, 14 Jul 2021 14:33:31 -0400 Subject: [PATCH 10/77] remove pause/resume cluster from management --- cockroachcloud/serverless-cluster-management.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cockroachcloud/serverless-cluster-management.md b/cockroachcloud/serverless-cluster-management.md index a848c0ea6b6..c361c7a388b 100644 --- a/cockroachcloud/serverless-cluster-management.md +++ b/cockroachcloud/serverless-cluster-management.md @@ -61,10 +61,6 @@ You can edit your spend limit from the **Overview** page. The change in your spe Your **Performance estimate** in the **Summary** sidebar will update accordingly. 1. Click **Update**. - -## Pausing and resuming a clusters - -- How to pause/resume an inactive free serverless cluster ## Restore data from a backup From 7e51b4715dbdc2c37d9bcdfa726d15d7e6bba139 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Wed, 14 Jul 2021 17:18:57 -0400 Subject: [PATCH 11/77] architecture serverless --- cockroachcloud/architecture.md | 36 +++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 7a05f087b33..37d9b317638 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -4,4 +4,38 @@ summary: Learn more about CockroachCloud architecture toc: true --- -placeholder +CockroachCloud is a fully-managed deployment of CockroachDB. This page describes CockroachCloud's architecture and how it relates to CockroachDB. + +## Architecture Overview + +CockroachCloud clusters come in two types: Serverless and Dedicated. + +## CockroachCloud Serverless + +CockroachCloud Serverless (beta) is a fully-managed, multi-tenant deployment of CockroachDB. All CockroachCloud Serverless (beta) clusters share resources, however, SQL pods are not shared--only the KV layer is shared. + +Serverless clusters scale based on the application load they are serving. Paid clusters can scale up to the amount of resources being paid for, and free clusters can scale up to 100M Request Units and 5GB of storage. + +Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your budget, your cluster will be throttled down to free-tier performance levels. In this case, you can increase your budget or adjust your workload to stay within budget. + +CockroachCloud Serverless (beta) clusters have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses free clusters that are inactive, which is defined by having no connection to the cluster for 2 consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. + +All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. Currently, you can pick the region your cluster is deployed in. In the future, CockroachCloud Serverless (beta) will have multi-region capabilities. + +## CockroachCloud Dedicated + +CockroachDB Serverless may not be right for enterprises that have rigorous security requirements due to its multi-tenant architecture. For those use cases we recommend CockroachDB Dedicated. + +### Single region + +All CockroachCloud clusters use 3 Availability Zones (AZs). For balanced data distribution and best performance, we recommend using a number of nodes that is a multiple of 3 (e.g., 3, 6, or 9 nodes per region). + +### Multi-region + +- Multi-region clusters must contain at least 3 regions to ensure that data replicated across regions can survive the loss of one region. For example, this applies to internal system data that is important for overall cluster operations as well as tables with the [`GLOBAL`](../{{site.versions["stable"]}}/global-tables.html) table locality or the [`REGIONAL BY TABLE`](../{{site.versions["stable"]}}/regional-tables.html#regional-tables) table locality and [`REGION` survival goal](../{{site.versions["stable"]}}/multiregion-overview.html#surviving-region-failures). +- Each region of a multi-region cluster must contain at least 3 nodes to ensure that data located entirely in a region can survive the loss of one node in that region. For example, this applies to tables with the [`REGIONAL BY ROW`](../{{site.versions["stable"]}}/regional-tables.html#regional-by-row-tables) table locality. +- You can have a maximum of 9 regions per cluster through the Console. If you need to add more regions, [contact us](https://support.cockroachlabs.com). + +## CockroachDB architecture + +See the [CockroachDB architecture](../{{site.versions["stable"]}}/architecture/overview.html) documentation for more information. \ No newline at end of file From 09bf8eef812cd47e727ceb941c8a91915281595e Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Fri, 16 Jul 2021 13:43:09 -0400 Subject: [PATCH 12/77] request units --- cockroachcloud/cluster-management.md | 11 ----------- cockroachcloud/serverless-cluster-management.md | 4 ++++ 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/cockroachcloud/cluster-management.md b/cockroachcloud/cluster-management.md index de947cbbb53..b47e86034b3 100644 --- a/cockroachcloud/cluster-management.md +++ b/cockroachcloud/cluster-management.md @@ -112,17 +112,6 @@ You can add or remove up to three regions at a time through the Console. See the 1. In the **Confirmation** dialog, verify your new cluster configuration. 1. Click **OK**. {% endcomment %} -## Restore data from a backup - -Cockroach Labs runs full backups daily and incremental backups hourly for every CockroachCloud cluster. The full backups are retained for 30 days and incremental backups for 7 days. - -{{site.data.alerts.callout_info}} -All databases are not backed up at the same time. Each database is backed up every hour based on the time of creation. For larger databases, you might see an hourly CPU spike while the database is being backed up. -{{site.data.alerts.end}} - -To restore your data, [contact us](https://support.cockroachlabs.com). - -Additionally, you can [backup and restore](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html) data on your own. ## Restore data from a backup diff --git a/cockroachcloud/serverless-cluster-management.md b/cockroachcloud/serverless-cluster-management.md index c361c7a388b..8f80021a41b 100644 --- a/cockroachcloud/serverless-cluster-management.md +++ b/cockroachcloud/serverless-cluster-management.md @@ -13,6 +13,10 @@ This page describes the cluster management and cluster deletion workflows. ## Planning your cluster +### Request Units + +Request Units (RUs) represent the compute and I/O resources used by a read or a write query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. + - How to determine and set resource limits - Request Unit explanation - Serverless clusters scale based on load From a672eba3d8ee01a1a9ef115e5288f1d7f7ce8201 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Tue, 20 Jul 2021 13:24:44 -0400 Subject: [PATCH 13/77] planning your cluster --- .../planning-your-serverless-cluster.md | 13 +++++++++++++ cockroachcloud/create-a-serverless-cluster.md | 2 +- cockroachcloud/serverless-cluster-management.md | 9 +-------- 3 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 _includes/cockroachcloud/planning-your-serverless-cluster.md diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md new file mode 100644 index 00000000000..0b485221d0d --- /dev/null +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -0,0 +1,13 @@ +### Resource usage + +All resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a read or a write query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. + +### Cluster scaling + +CockroachCloud Serverless (beta) clusters scale based on your workload. + +**Free forever** clusters include 500M RUs and 5GB of storage per month. They have a guaranteed baseline performance of 2.5K QPS. At this time, you cannot upgrade a free cluster after it is created. Free clusters have heavily throttled resources and don't include the ability to take backups or import data. If you want a cluster with higher performance and full capabilities, choose a paid cluster. + +**Pay-as-you-go** clusters include additional resources with no throttling and allow you to perform upgrades, backups, and imports. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, you will still have access to the resources included with free clusters. + +To see a graph of your monthly resource usage and recommended budget, navigate to the [Edit cluster](#edit-your-spend-limit) page. \ No newline at end of file diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index af50fe53b1c..e32d7edce34 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -36,7 +36,7 @@ If you haven't already, diff --git a/cockroachcloud/serverless-cluster-management.md b/cockroachcloud/serverless-cluster-management.md index 8f80021a41b..87f5a178f89 100644 --- a/cockroachcloud/serverless-cluster-management.md +++ b/cockroachcloud/serverless-cluster-management.md @@ -13,14 +13,7 @@ This page describes the cluster management and cluster deletion workflows. ## Planning your cluster -### Request Units - -Request Units (RUs) represent the compute and I/O resources used by a read or a write query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. - -- How to determine and set resource limits -- Request Unit explanation -- Serverless clusters scale based on load -- Free tier clusters are throttled, paid have usage-based billing +{% include cockroachcloud/planning-your-serverless-cluster.md %} ## View Clusters page From 5378178970fd64f28b6e7bd5d320bc1507f44674 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Wed, 21 Jul 2021 16:12:02 -0400 Subject: [PATCH 14/77] faq and ru updates --- .../planning-your-serverless-cluster.md | 2 +- cockroachcloud/create-a-serverless-cluster.md | 4 +- ...icated.md => migrate-from-free-to-paid.md} | 26 ++++++------- cockroachcloud/serverless-faqs.md | 39 ++++++------------- 4 files changed, 26 insertions(+), 45 deletions(-) rename cockroachcloud/{migrate-from-free-to-dedicated.md => migrate-from-free-to-paid.md} (81%) diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index 0b485221d0d..5573bc2aa2d 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -6,7 +6,7 @@ All resource usage in CockroachCloud Serverless (beta) is measured in Request Un CockroachCloud Serverless (beta) clusters scale based on your workload. -**Free forever** clusters include 500M RUs and 5GB of storage per month. They have a guaranteed baseline performance of 2.5K QPS. At this time, you cannot upgrade a free cluster after it is created. Free clusters have heavily throttled resources and don't include the ability to take backups or import data. If you want a cluster with higher performance and full capabilities, choose a paid cluster. +**Free forever** clusters include 100M RUs and 5GB of storage per month. They have a guaranteed baseline performance of 2.5K QPS. At this time, you cannot upgrade a free cluster after it is created. Free clusters are throttled to 100 RUs/second don't include the ability to take backups or import data. If you want a cluster with higher performance and full capabilities, choose a paid cluster. **Pay-as-you-go** clusters include additional resources with no throttling and allow you to perform upgrades, backups, and imports. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, you will still have access to the resources included with free clusters. diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index e32d7edce34..57d826416ff 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -31,9 +31,9 @@ If you haven't already, users.txt -~~~ - -For an example on how to use this output to migrate to a paid CockroachCloud cluster, see [Migrate from a CockroachCloud Serverless (beta) to CockroachCloud Cluster](migrate-from-free-to-dedicated.html). +Cockroach Labs takes full cluster backups of all CockroachCloud Serverless (beta) clusters for our own purposes. Free CockroachCloud Serverless (beta) clusters do not have public internet access, but can be backed up locally with `userfile`. Paid CockroachCloud Serverless (beta) clusters can be backed up to cloud storage or `userfile`. From 894c80f62d20450956c647490bdb058e3b45eb7c Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Thu, 22 Jul 2021 12:23:44 -0400 Subject: [PATCH 15/77] link and mention of legacy free fix --- _includes/sidebar-data-cockroachcloud.json | 2 +- _includes/v20.2/app/cc-free-tier-params.md | 2 +- cockroachcloud/architecture.md | 6 +++++- cockroachcloud/migrate-from-free-to-paid.md | 2 +- cockroachcloud/troubleshooting-page.md | 2 +- v20.2/build-a-python-app-with-cockroachdb-django.md | 2 +- v20.2/build-a-python-app-with-cockroachdb-sqlalchemy.md | 2 +- v20.2/build-a-python-app-with-cockroachdb.md | 2 +- v20.2/migration-overview.md | 2 +- v21.1/build-a-python-app-with-cockroachdb-django.md | 2 +- v21.1/build-a-python-app-with-cockroachdb-sqlalchemy.md | 2 +- v21.1/build-a-python-app-with-cockroachdb.md | 2 +- 12 files changed, 16 insertions(+), 12 deletions(-) diff --git a/_includes/sidebar-data-cockroachcloud.json b/_includes/sidebar-data-cockroachcloud.json index 903f9ec9bac..7fa746aabc4 100644 --- a/_includes/sidebar-data-cockroachcloud.json +++ b/_includes/sidebar-data-cockroachcloud.json @@ -92,7 +92,7 @@ { "title": "Migrate from a Free to Paid Cluster", "urls": [ - "/cockroachcloud/migrate-from-free-to-dedicated.html" + "/cockroachcloud/migrate-from-free-to-paid.html" ] }, { diff --git a/_includes/v20.2/app/cc-free-tier-params.md b/_includes/v20.2/app/cc-free-tier-params.md index ebc0546cc7c..a48bec474fa 100644 --- a/_includes/v20.2/app/cc-free-tier-params.md +++ b/_includes/v20.2/app/cc-free-tier-params.md @@ -1,7 +1,7 @@ Where: - `{username}` and `{password}` specify the SQL username and password that you created earlier. -- `{globalhost}` is the name of the CockroachCloud Free (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). +- `{globalhost}` is the name of the CockroachCloud Serverless (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). - `{path to the CA certificate}` is the path to the `cc-ca.crt` file that you downloaded from the CockroachCloud Console. - `{cluster_name}` is the name of your cluster. diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 37d9b317638..2d2215c883d 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -16,11 +16,15 @@ CockroachCloud Serverless (beta) is a fully-managed, multi-tenant deployment of Serverless clusters scale based on the application load they are serving. Paid clusters can scale up to the amount of resources being paid for, and free clusters can scale up to 100M Request Units and 5GB of storage. +All resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a read or a write query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. +RU = SQL CPU + ReadRequests + ReadBytes + WriteRequests + WriteBytes +Burst capacity is the ability of the Serverless cluster to scale above baseline performance. Supporting application traffic that “burst” i.e., can fluctuate above baseline traffic is a key feature of Serverless clusters. You can see how many request units your cluster has used on the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page. + Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your budget, your cluster will be throttled down to free-tier performance levels. In this case, you can increase your budget or adjust your workload to stay within budget. CockroachCloud Serverless (beta) clusters have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses free clusters that are inactive, which is defined by having no connection to the cluster for 2 consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. -All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. Currently, you can pick the region your cluster is deployed in. In the future, CockroachCloud Serverless (beta) will have multi-region capabilities. +All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. The storage a user sees in the UI in the Cluster Overview page is the amount of replicated data storage. ## CockroachCloud Dedicated diff --git a/cockroachcloud/migrate-from-free-to-paid.md b/cockroachcloud/migrate-from-free-to-paid.md index bf01cef6805..8c255b9ad2e 100644 --- a/cockroachcloud/migrate-from-free-to-paid.md +++ b/cockroachcloud/migrate-from-free-to-paid.md @@ -8,7 +8,7 @@ This page has instructions for migrating data from a CockroachCloud Serverless ( - You reach (or get close to reaching) the upper limit of usage of up to 500M RUs and 5GB storage per free CockroachCloud Serverless (beta) cluster. - You don't want your cluster performance to be throttled. -- You want to use any of the capabilities that are not yet available in CockroachCloud Free (beta) clusters, like the ability to enable backups or to upload data with the `IMPORT` command. +- You want to use any of the capabilities that are not yet available in free CockroachCloud Serverless (beta) clusters, like the ability to enable backups or to upload data with the `IMPORT` command. The steps below use sample data from the [`tpcc` workload](../{{site.versions["stable"]}}/cockroach-workload.html#workloads). diff --git a/cockroachcloud/troubleshooting-page.md b/cockroachcloud/troubleshooting-page.md index 320476ab757..9684ac82f3b 100644 --- a/cockroachcloud/troubleshooting-page.md +++ b/cockroachcloud/troubleshooting-page.md @@ -27,7 +27,7 @@ The following error is displayed if you try to connect to a [third-party tool](. FATAL: CodeParamsRoutingFailed: rejected by BackendConfigFromParams: Invalid cluster name ~~~ -**Solution**: Check that you are using the correct cluster and database names. You can find these parameters in the CockroachCloud Console by navigating to **Cluster Overview** > **Connect** > **Step 2. Connect** > **Connection parameters**. For most tools, the full name of your database should be in the format `-.` for CockroachCloud Free (beta) clusters, or `.` for paid CockroachCloud clusters. +**Solution**: Check that you are using the correct cluster and database names. You can find these parameters in the CockroachCloud Console by navigating to **Cluster Overview** > **Connect** > **Step 2. Connect** > **Connection parameters**. For most tools, the full name of your database should be in the format `-.` for CockroachCloud Serverless (beta) clusters, or `.` for paid CockroachCloud clusters. For connection examples with your tool, see [these examples](../stable/third-party-database-tools.html). diff --git a/v20.2/build-a-python-app-with-cockroachdb-django.md b/v20.2/build-a-python-app-with-cockroachdb-django.md index 98049f10ca6..7403a8ec0e5 100644 --- a/v20.2/build-a-python-app-with-cockroachdb-django.md +++ b/v20.2/build-a-python-app-with-cockroachdb-django.md @@ -138,7 +138,7 @@ Where: - `` is the username that you created earlier. - `` is the password that you created for the ``. -- `` is the name of the CockroachCloud Free (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). +- `` is the name of the CockroachCloud Serverless (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). - `` is the name of your cluster. - `` is the path to the `cc-ca.crt` file that you downloaded from the CockroachCloud Console. diff --git a/v20.2/build-a-python-app-with-cockroachdb-sqlalchemy.md b/v20.2/build-a-python-app-with-cockroachdb-sqlalchemy.md index 2e9d92af426..9b6879a548b 100644 --- a/v20.2/build-a-python-app-with-cockroachdb-sqlalchemy.md +++ b/v20.2/build-a-python-app-with-cockroachdb-sqlalchemy.md @@ -99,7 +99,7 @@ In the `create_engine()` function, update the connection string as follows: - Comment out the connection string for `cockroach demo`, and uncomment the connection string for CockroachCloud. - Replace `` and `` with the SQL username and password that you created in the CockroachCloud Console. -- Replace `` with the name of the CockroachCloud Free (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). +- Replace `` with the name of the CockroachCloud Serverless (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). - Replace `` with the name of your cluster. - Replace `/` with the path to the CA certificate that you downloaded from the CockroachCloud Console. diff --git a/v20.2/build-a-python-app-with-cockroachdb.md b/v20.2/build-a-python-app-with-cockroachdb.md index e41e7042d09..e81138ef1ef 100644 --- a/v20.2/build-a-python-app-with-cockroachdb.md +++ b/v20.2/build-a-python-app-with-cockroachdb.md @@ -92,7 +92,7 @@ $ python3 example.py \ Before running the command, update the connection string that you copied [earlier](#set-up-your-cluster-connection) from the **Connection info** dialog as follows: - Replace `` and `` with the SQL username and password that you created earlier. -- Replace `` with the name of the CockroachCloud Free (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). +- Replace `` with the name of the CockroachCloud Serverless (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). - Replace `` with the name of your cluster. - Replace `` with the path to the `cc-ca.crt` file that you downloaded from the CockroachCloud Console. diff --git a/v20.2/migration-overview.md b/v20.2/migration-overview.md index 433e4fa6381..22ab1660791 100644 --- a/v20.2/migration-overview.md +++ b/v20.2/migration-overview.md @@ -23,7 +23,7 @@ This page lists general considerations to be aware of as you plan your migration In addition to the information listed below, see the following pages for specific instructions and considerations that apply to the database (or data format) you're migrating from: -- [Migrate from a CockroachCloud Free (beta) to CockroachCloud Cluster](../cockroachcloud/migrate-from-free-to-dedicated.html) +- [Migrate from a CockroachCloud Serverless (beta) free cluster to a pay-as-you-go cluster](../cockroachcloud/migrate-from-free-to-paid.html) - [Migrate from Oracle][oracle] - [Migrate from Postgres][postgres] - [Migrate from MySQL][mysql] diff --git a/v21.1/build-a-python-app-with-cockroachdb-django.md b/v21.1/build-a-python-app-with-cockroachdb-django.md index e5bcdf26151..193a176f3dd 100644 --- a/v21.1/build-a-python-app-with-cockroachdb-django.md +++ b/v21.1/build-a-python-app-with-cockroachdb-django.md @@ -138,7 +138,7 @@ Where: - `` is the username that you created earlier. - `` is the password that you created for the ``. -- `` is the name of the CockroachCloud Free (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). +- `` is the name of the CockroachCloud Serverless (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). - `` is the name of your cluster. - `` is the path to the `cc-ca.crt` file that you downloaded from the CockroachCloud Console. diff --git a/v21.1/build-a-python-app-with-cockroachdb-sqlalchemy.md b/v21.1/build-a-python-app-with-cockroachdb-sqlalchemy.md index 30cccdcd611..353889de107 100644 --- a/v21.1/build-a-python-app-with-cockroachdb-sqlalchemy.md +++ b/v21.1/build-a-python-app-with-cockroachdb-sqlalchemy.md @@ -99,7 +99,7 @@ In the `create_engine()` function, update the connection string as follows: - Comment out the connection string for `cockroach demo`, and uncomment the connection string for CockroachCloud. - Replace `` and `` with the SQL username and password that you created in the CockroachCloud Console. -- Replace `` with the name of the CockroachCloud Free (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). +- Replace `` with the name of the CockroachCloud Serverless (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). - Replace `` with the name of your cluster. - Replace `/` with the path to the CA certificate that you downloaded from the CockroachCloud Console. diff --git a/v21.1/build-a-python-app-with-cockroachdb.md b/v21.1/build-a-python-app-with-cockroachdb.md index 9e25f582a2b..f51154c2b96 100644 --- a/v21.1/build-a-python-app-with-cockroachdb.md +++ b/v21.1/build-a-python-app-with-cockroachdb.md @@ -97,7 +97,7 @@ $ python3 example.py \ Before running the command, update the connection string that you copied [earlier](#set-up-your-cluster-connection) from the **Connection info** dialog as follows: - Replace `` and `` with the SQL username and password that you created earlier. -- Replace `` with the name of the CockroachCloud Free (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). +- Replace `` with the name of the CockroachCloud Serverless (beta) host (e.g., `free-tier.gcp-us-central1.cockroachlabs.cloud`). - Replace `` with the name of your cluster. - Replace `` with the path to the `cc-ca.crt` file that you downloaded from the CockroachCloud Console. From 43b04504d2e30d79781277322b7f7ed65484b5d3 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Thu, 22 Jul 2021 17:48:54 -0400 Subject: [PATCH 16/77] unified cluster and org verification --- .../planning-your-serverless-cluster.md | 6 +- _includes/sidebar-data-cockroachcloud.json | 6 - .../connect-to-a-serverless-cluster.md | 2 +- cockroachcloud/console-access-management.md | 10 + cockroachcloud/create-a-serverless-cluster.md | 31 +-- cockroachcloud/migrate-from-free-to-paid.md | 194 ------------------ cockroachcloud/quickstart.md | 2 - cockroachcloud/serverless-faqs.md | 10 +- v20.2/migration-overview.md | 1 - 9 files changed, 35 insertions(+), 227 deletions(-) delete mode 100644 cockroachcloud/migrate-from-free-to-paid.md diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index 5573bc2aa2d..4fba92323c2 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -4,10 +4,8 @@ All resource usage in CockroachCloud Serverless (beta) is measured in Request Un ### Cluster scaling -CockroachCloud Serverless (beta) clusters scale based on your workload. +CockroachCloud Serverless (beta) clusters scale based on your workload. Free clusters include 100M RUs and 5GB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or 2.5K QPS. -**Free forever** clusters include 100M RUs and 5GB of storage per month. They have a guaranteed baseline performance of 2.5K QPS. At this time, you cannot upgrade a free cluster after it is created. Free clusters are throttled to 100 RUs/second don't include the ability to take backups or import data. If you want a cluster with higher performance and full capabilities, choose a paid cluster. - -**Pay-as-you-go** clusters include additional resources with no throttling and allow you to perform upgrades, backups, and imports. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, you will still have access to the resources included with free clusters. +Paid clusters include additional resources with no throttling. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, you will still have access to the resources included with free clusters. To see a graph of your monthly resource usage and recommended budget, navigate to the [Edit cluster](#edit-your-spend-limit) page. \ No newline at end of file diff --git a/_includes/sidebar-data-cockroachcloud.json b/_includes/sidebar-data-cockroachcloud.json index 7fa746aabc4..4121630a28f 100644 --- a/_includes/sidebar-data-cockroachcloud.json +++ b/_includes/sidebar-data-cockroachcloud.json @@ -89,12 +89,6 @@ "/{{site.versions["stable"]}}/migration-overview.html" ] }, - { - "title": "Migrate from a Free to Paid Cluster", - "urls": [ - "/cockroachcloud/migrate-from-free-to-paid.html" - ] - }, { "title": "Migrate from Oracle", "urls": [ diff --git a/cockroachcloud/connect-to-a-serverless-cluster.md b/cockroachcloud/connect-to-a-serverless-cluster.md index 305dc32afa5..1c5eabe89f7 100644 --- a/cockroachcloud/connect-to-a-serverless-cluster.md +++ b/cockroachcloud/connect-to-a-serverless-cluster.md @@ -15,7 +15,7 @@ This page shows you how to connect to your CockroachCloud Serverless (beta) clus ## Before you start -- [Create a serverless cluster](create-a-serverless-cluster.html). +- [Create a Serverless (beta) cluster](create-a-serverless-cluster.html). - _(Optional)_ [Create a new SQL user](user-authorization.html#create-a-sql-user). ## Step 1. Select a connection method diff --git a/cockroachcloud/console-access-management.md b/cockroachcloud/console-access-management.md index f637661a951..0e6119701d6 100644 --- a/cockroachcloud/console-access-management.md +++ b/cockroachcloud/console-access-management.md @@ -15,6 +15,16 @@ To switch between the organizations: 1. [Log in](https://cockroachlabs.cloud/). 2. From the drop-down box in the top-right corner, select the Organization you want to access. +### Organization verification + +CockroachCloud Organizations have two levels of verification, **Basic** and **Core**. New CockroachCloud Serverless (beta) Organizations are at the Basic level once an email address is verified, and all CockroachCloud Dedicated Organizations are at the Core level. Console Admins can upgrade your Organization to Core verification by [adding credit card information](#manage-billing-for-the-organization). + +Basic | Core +----------------------------------|---------------------------------- +Import and Backup with `userfile` | Import and Backup with cloud storage or `userfile` +Up to 5 Serverless clusters | Up to 50 Serverless clusters +placeholder | placeholder + ## SQL users [Console Admins](#console-admin) can [create and manage SQL users](user-authorization.html#create-a-sql-user). A SQL user can interact with a CockroachDB database using the built-in SQL shell or through an application. diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 57d826416ff..3356c72c125 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -23,17 +23,17 @@ If you haven't already, - +
-1. In the **Cost & Performance** section, select the **Free forever** plan. - -1. Click **Create your free cluster**. +1. Click **Create cluster**. Your cluster will be created in approximately 20-30 seconds. @@ -56,22 +54,29 @@ Your cluster will be created in approximately 20-30 seconds.
- -1. In the **Cost & Performance** section, select **Set a spend limit as low as $1/month**. - 1. Enter your **Spend limit**. This is the maximum amount you could be charged per month. You will be charged only for what you use. 1. Click **Continue to payment details**. -Your cluster will be created in approximately 20-30 seconds. +1. Verify the hourly estimated cost for the cluster. + {{site.data.alerts.callout_info}} + The cost displayed does not include taxes. + {{site.data.alerts.end}} + You will be billed monthly. + +1. Add your preferred [payment method](console-access-management.html#manage-billing-for-the-organization). + +1. Click **Create cluster**. + +Your cluster will be created in approximately 20-30 minutes.
## What's next -- [Connect to your serverless cluster](connect-to-a-serverless-cluster.html) +- [Connect to your CockroachCloud Serverless (beta) cluster](connect-to-a-serverless-cluster.html) - [Authorize users](user-authorization.html) ## Usage examples diff --git a/cockroachcloud/migrate-from-free-to-paid.md b/cockroachcloud/migrate-from-free-to-paid.md deleted file mode 100644 index 8c255b9ad2e..00000000000 --- a/cockroachcloud/migrate-from-free-to-paid.md +++ /dev/null @@ -1,194 +0,0 @@ ---- -title: Migrate from a CockroachCloud Serverless (beta) free cluster to a pay-as-you-go cluster -summary: Learn how to migrate data from a CockroachCloud Serverless (beta) free cluster into a pay-as-you-go cluster -toc: true ---- - -This page has instructions for migrating data from a CockroachCloud Serverless (beta) free cluster to a pay-as-you-go cluster by exporting to CSV and using [`IMPORT`](../{{site.versions["stable"]}}/import.html). You may want to migrate to the paid version of CockroachCloud Serverless (beta) if: - -- You reach (or get close to reaching) the upper limit of usage of up to 500M RUs and 5GB storage per free CockroachCloud Serverless (beta) cluster. -- You don't want your cluster performance to be throttled. -- You want to use any of the capabilities that are not yet available in free CockroachCloud Serverless (beta) clusters, like the ability to enable backups or to upload data with the `IMPORT` command. - -The steps below use sample data from the [`tpcc` workload](../{{site.versions["stable"]}}/cockroach-workload.html#workloads). - -## Before you start - -These instructions assume you already have the following: - -- A [free CockroachCloud Serverless (beta) cluster](quickstart.html) from which you want to migrate data -- A [paid CockroachCloud Serverless (beta) cluster](create-a-serverless-cluster.html?filters=paid) - - You can set a spend limit as low as $1/month. - -- [Cloud storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html) - -## Step 1. Export data to a local CSV file - -In free CockroachCloud Serverless (beta) clusters, `EXPORT` is not supported. This means that if you want to export data, you need to use [`cockroach sql --execute`](../{{site.versions["stable"]}}/cockroach-sql.html#general) to query the data you want to export, and then pipe the data to a local file. For example: - -{% include copy-clipboard.html %} -~~~ shell -$ cockroach sql \ ---url 'postgres://:@free-tier..cockroachlabs.cloud:26257?sslmode=verify-full&sslrootcert=/cc-ca.crt&options=--cluster=' \ ---execute "SELECT * FROM tpcc.warehouse" --format=csv > /Users///warehouse.csv -~~~ - -By running the example command above, the following data is exported to the local `warehouse.csv` file: - -~~~ -w_id,w_name,w_street_1,w_street_2,w_city,w_state,w_zip,w_tax,w_ytd -0,8,17,13,11,SF,640911111,0.0806,300000.00 -~~~ - -Repeat this step for each table you want to migrate. For example, let's export one more table (`district`) from the [`tpcc` database](../{{site.versions["stable"]}}/cockroach-workload.html#workloads): - -{% include copy-clipboard.html %} -~~~ shell -$ cockroach sql \ ---url 'postgres://:@free-tier..cockroachlabs.cloud:26257?sslmode=verify-full&sslrootcert=/cc-ca.crt&options=--cluster=' \ ---execute "SELECT * FROM tpcc.district" --format=csv > /Users///district.csv -~~~ - -This will create the `district.csv` file with the following data: - -~~~ -d_id,d_w_id,d_name,d_street_1,d_street_2,d_city,d_state,d_zip,d_tax,d_ytd,d_next_o_id -1,0,9cdLXe0Yh,gLRrwsmd68P2b,ElAgrnp8ueW,NXJpBB0ObpVWo1B,QQ,640911111,0.1692,30000.00,3001 -2,0,1fcW8Rsa,CXoEzmssaF9m9cdLXe0Y,hgLRrwsmd68P2bElAgr,np8ueWNXJpBB0ObpVW,VW,902211111,0.1947,30000.00,3001 -3,0,6rumMm,p6NHnwiwKdcgp,hy3v1U5yraPx,xELo5B1fcW8RsaCXoEz,QQ,230811111,0.0651,30000.00,3001 -4,0,ssaF9m9,cdLXe0YhgLRrws,md68P2bElAgrn,p8ueWNXJpBB0ObpVW,SF,308211111,0.1455,30000.00,3001 -5,0,Kdcgphy3,v1U5yraPxxELo,5B1fcW8RsaCXoEzm,ssaF9m9cdLXe0YhgLR,CQ,308211111,0.1195,30000.00,3001 -6,0,mssaF9m9cd,LXe0YhgLRrwsmd68P,2bElAgrnp8ue,WNXJpBB0ObpVW,WM,223011111,0.0709,30000.00,3001 -7,0,zmssaF,9m9cdLXe0YhgLRrws,md68P2bElA,grnp8ueWNX,OA,264011111,0.1060,30000.00,3001 -8,0,8RsaCXoEz,mssaF9m9cdLXe0Yh,gLRrwsmd68P2bElAgrnp,8ueWNXJpBB0ObpVWo,VW,022311111,0.0173,30000.00,3001 -9,0,fcW8Rs,aCXoEzmssaF9m9,cdLXe0YhgLRrws,md68P2bElAgrnp8ue,JC,230811111,0.0755,30000.00,3001 -10,0,RsaCXoEzm,ssaF9m9cdLXe0YhgLRr,wsmd68P2bE,lAgrnp8ueWNXJpBB0Ob,PV,082911111,0.1779,30000.00,3001 -~~~ - -## Step 2. Host the files where the CockroachCloud cluster can access them - -After you've exported your free CockroachCloud Serverless (beta) cluster data to your local machine, you now need to upload the files to a storage location where the paid CockroachCloud Serverless (beta) cluster can access them. **We recommend using [cloud storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html) or [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html).** - -In this example, we'll use Amazon S3 to host the two files (`warehouse.csv` and `district.csv`) created in [Step 1](#step-1-export-data-to-a-local-csv-file). - -## Step 3. Import the CSV - -{{site.data.alerts.callout_success}} -For best practices for optimizing import performance in CockroachDB, see [Import Performance Best Practices](../{{site.versions["stable"]}}/import-performance-best-practices.html). -{{site.data.alerts.end}} - -1. [Create the database](../{{site.versions["stable"]}}/create-database.html) you want to import the tables into. For example: - - {% include copy-clipboard.html %} - ~~~ sql - > CREATE DATABASE tpcc; - ~~~ - -1. Write an [`IMPORT`](../{{site.versions["stable"]}}/import.html) statement that matches the schema of the table data you're importing. - - {{site.data.alerts.callout_success}} - You can use the [`SHOW CREATE TABLE`](../{{site.versions["stable"]}}/show-create.html#show-the-create-table-statement-for-a-table) statement in the free CockroachCloud Serverless (beta) cluster to view the `CREATE` statement for the table you're migrating. - {{site.data.alerts.end}} - - {% include v20.2/misc/csv-import-callout.md %} - - For example, to import the data from `warehouse.csv` into a `warehouse` table, use the following statement: - - {% include copy-clipboard.html %} - ~~~ sql - > IMPORT TABLE tpcc.warehouse ( - w_id INT8 NOT NULL, - w_name VARCHAR(10) NULL, - w_street_1 VARCHAR(20) NULL, - w_street_2 VARCHAR(20) NULL, - w_city VARCHAR(20) NULL, - w_state CHAR(2) NULL, - w_zip CHAR(9) NULL, - w_tax DECIMAL(4,4) NULL, - w_ytd DECIMAL(12,2) NULL, - CONSTRAINT "primary" PRIMARY KEY (w_id ASC), - FAMILY "primary" (w_id, w_name, w_street_1, w_street_2, w_city, w_state, w_zip, w_tax, w_ytd) - ) CSV DATA ('s3:///warehouse.csv?AWS_ACCESS_KEY_ID=&AWS_SECRET_ACCESS_KEY=') - WITH - skip = '1'; - ~~~ - - Notice that we used the [`skip` option](../{{site.versions["stable"]}}/import.html#skip-first-n-lines) in the above command. This is because the first line of the CSV file we created in [Step 1](#step-1-export-data-to-a-local-csv-file) is the header row, not actual data to import. For more information about the options available for `IMPORT ... CSV`, see [Import options](../{{site.versions["stable"]}}/import.html#import-options). - - ~~~ - job_id | status | fraction_completed | rows | index_entries | bytes - ---------------------+-----------+--------------------+------+---------------+-------- - 652283814057476097 | succeeded | 1 | 1 | 0 | 53 - (1 row) - ~~~ - - {{site.data.alerts.callout_info}} - To import data into an existing table, use [`IMPORT INTO`](../{{site.versions["stable"]}}/import-into.html). - {{site.data.alerts.end}} - -1. Repeat the above for each CSV file you want to import. For example, let's import the second file (`district.csv`) we created earlier: - - {% include copy-clipboard.html %} - ~~~ sql - > IMPORT TABLE tpcc.district ( - d_id INT8 NOT NULL, - d_w_id INT8 NOT NULL, - d_name VARCHAR(10) NULL, - d_street_1 VARCHAR(20) NULL, - d_street_2 VARCHAR(20) NULL, - d_city VARCHAR(20) NULL, - d_state CHAR(2) NULL, - d_zip CHAR(9) NULL, - d_tax DECIMAL(4,4) NULL, - d_ytd DECIMAL(12,2) NULL, - d_next_o_id INT8 NULL, - CONSTRAINT "primary" PRIMARY KEY (d_w_id ASC, d_id ASC), - FAMILY "primary" (d_id, d_w_id, d_name, d_street_1, d_street_2, d_city, d_state, d_zip, d_tax, d_ytd, d_next_o_id) - ) CSV DATA ('s3:///district.csv?AWS_ACCESS_KEY_ID=&AWS_SECRET_ACCESS_KEY=') - WITH - skip = '1'; - ~~~ - - ~~~ - job_id | status | fraction_completed | rows | index_entries | bytes - ---------------------+-----------+--------------------+------+---------------+-------- - 652285202857820161 | succeeded | 1 | 10 | 0 | 1017 - (1 row) - ~~~ - -1. _(Optional)_ To verify that the two tables were imported, use [`SHOW TABLES`](../{{site.versions["stable"]}}/show-tables.html): - - {% include copy-clipboard.html %} - ~~~ sql - > SHOW TABLES FROM tpcc; - ~~~ - - ~~~ - schema_name | table_name | type | owner | estimated_row_count - --------------+------------+-------+--------+---------------------- - public | district | table | lauren | 10 - public | warehouse | table | lauren | 1 - (2 rows) - ~~~ - -## Step 4. Add any foreign key relationships - -Once all of the tables you want to migrate have been imported into the paid CockroachCloud Serverless (beta) cluster, add the [foreign key](../{{site.versions["stable"]}}/foreign-key.html) relationships. To do this, use [`ALTER TABLE ... ADD CONSTRAINT`](../{{site.versions["stable"]}}/add-constraint.html). For example: - -{% include copy-clipboard.html %} -~~~ sql -> ALTER TABLE tpcc.district ADD CONSTRAINT fk_d_w_id_ref_warehouse FOREIGN KEY (d_w_id) REFERENCES tpcc.warehouse(w_id); -~~~ - -~~~ -ALTER TABLE -~~~ - -## See also - -- [`IMPORT`](../{{site.versions["stable"]}}/import.html) -- [Migrate from CSV](../{{site.versions["stable"]}}/migrate-from-csv.html) -- [Import Performance Best Practices](../{{site.versions["stable"]}}/import-performance-best-practices.html) -- [Use the Built-in SQL Client](../{{site.versions["stable"]}}/cockroach-sql.html) -- [Other Cockroach Commands](../{{site.versions["stable"]}}/cockroach-commands.html) diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index 31fc63fd18c..a46ad2f3c12 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -13,8 +13,6 @@ This page guides you through the quickest way to get started with CockroachDB by {% include cockroachcloud/free-limitations.md %} -{% include cockroachcloud/free-throttle.md %} - ## Step 1. Create a free cluster 1. If you haven't already,
sign up for a CockroachCloud account. diff --git a/cockroachcloud/serverless-faqs.md b/cockroachcloud/serverless-faqs.md index 03863a7a092..ed7ceba63ee 100644 --- a/cockroachcloud/serverless-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -53,7 +53,7 @@ To connect to a cluster, download the CA certificate, and then generate a connec ### Why is CockroachCloud Serverless in beta? -CockroachCloud Serverless is in beta while we work on adding capabilities such no-downtime upgrades from free to paid clusters. +CockroachCloud Serverless is in beta while we work on additional capabilities and features such as multi-region clusters. ### Where can I submit feedback or bugs on the beta? @@ -80,11 +80,9 @@ CockroachCloud Serverless (beta) is a multi-tenant offering and resources are sh ## Cluster maintenance -### Can I upgrade my free CockroachCloud Serverless (beta) cluster to a paid CockroachCloud Serverless (beta) cluster? +### Can I upgrade my free CockroachCloud Serverless (beta) cluster? -At this time, a free CockroachCloud Serverless cluster cannot be upgraded. In the future, you will have the ability to move from a free CockroachCloud Serverless to a pay-as-you-go Serverless cluster. - -If you would like export your data from a free cluster to a paid cluster, see [Migrate from a CockroachCloud Serverless (beta) free cluster to a pay-as-you-go cluster](migrate-from-free-to-paid.html). +Yes, you can upgrade your cluster through the Console by [increasing your spend limit](serverless-cluster-management.html#edit-your-spend-limit) and entering [billing information](console-access-management.html#manage-billing-for-the-organization) if you haven't already. ## Product features @@ -98,4 +96,4 @@ Yes, you can view and your clusters in the [CockroachCloud Console](https://cock ### Can I backup my CockroachCloud Serverless (beta) cluster? Does Cockroach Labs take backups of my cluster? -Cockroach Labs takes full cluster backups of all CockroachCloud Serverless (beta) clusters for our own purposes. Free CockroachCloud Serverless (beta) clusters do not have public internet access, but can be backed up locally with `userfile`. Paid CockroachCloud Serverless (beta) clusters can be backed up to cloud storage or `userfile`. +Cockroach Labs takes full cluster backups of all CockroachCloud Serverless (beta) clusters for our own purposes. If your Organization is [verified](console-access-management.html#organization-verification) at the Basic level, you can take backups locally to `userfile`. If you are at the Core level of verification, you can backup to cloud storage or `userfile`. See [Organization verification](console-access-management.html#organization-verification) for more information. diff --git a/v20.2/migration-overview.md b/v20.2/migration-overview.md index 22ab1660791..6ccc41b0d26 100644 --- a/v20.2/migration-overview.md +++ b/v20.2/migration-overview.md @@ -23,7 +23,6 @@ This page lists general considerations to be aware of as you plan your migration In addition to the information listed below, see the following pages for specific instructions and considerations that apply to the database (or data format) you're migrating from: -- [Migrate from a CockroachCloud Serverless (beta) free cluster to a pay-as-you-go cluster](../cockroachcloud/migrate-from-free-to-paid.html) - [Migrate from Oracle][oracle] - [Migrate from Postgres][postgres] - [Migrate from MySQL][mysql] From a71242ab2873729f6d80940a51bb9f15e3023634 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Fri, 23 Jul 2021 14:36:16 -0400 Subject: [PATCH 17/77] architecture --- cockroachcloud/architecture.md | 44 +++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 2d2215c883d..dc7ac331d0b 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -6,40 +6,52 @@ toc: true CockroachCloud is a fully-managed deployment of CockroachDB. This page describes CockroachCloud's architecture and how it relates to CockroachDB. -## Architecture Overview - -CockroachCloud clusters come in two types: Serverless and Dedicated. - ## CockroachCloud Serverless CockroachCloud Serverless (beta) is a fully-managed, multi-tenant deployment of CockroachDB. All CockroachCloud Serverless (beta) clusters share resources, however, SQL pods are not shared--only the KV layer is shared. -Serverless clusters scale based on the application load they are serving. Paid clusters can scale up to the amount of resources being paid for, and free clusters can scale up to 100M Request Units and 5GB of storage. +### Request Units + +All resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a read or a write query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request units your cluster has used on the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page. -All resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a read or a write query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. -RU = SQL CPU + ReadRequests + ReadBytes + WriteRequests + WriteBytes -Burst capacity is the ability of the Serverless cluster to scale above baseline performance. Supporting application traffic that “burst” i.e., can fluctuate above baseline traffic is a key feature of Serverless clusters. You can see how many request units your cluster has used on the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page. +RUs = SQL CPU + ReadRequests + ReadBytes + WriteRequests + WriteBytes + +### Performance + +Serverless clusters scale based on the application load they are serving. Paid clusters can scale up to the amount of resources being paid for, and free clusters can scale up to 100M Request Units and 5GB of storage. Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your budget, your cluster will be throttled down to free-tier performance levels. In this case, you can increase your budget or adjust your workload to stay within budget. +Burst capacity is the ability of the Serverless (beta) cluster to scale above baseline performance. Supporting application traffic that “burst” i.e., can fluctuate above baseline traffic is a key feature of Serverless clusters. + CockroachCloud Serverless (beta) clusters have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses free clusters that are inactive, which is defined by having no connection to the cluster for 2 consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. -All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. The storage a user sees in the UI in the Cluster Overview page is the amount of replicated data storage. +### Storage + +All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage users see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. + +### Diagram ## CockroachCloud Dedicated -CockroachDB Serverless may not be right for enterprises that have rigorous security requirements due to its multi-tenant architecture. For those use cases we recommend CockroachDB Dedicated. +CockroachDB Serverless may not be right for enterprises that have rigorous security requirements due to its multi-tenant architecture. For those use cases we recommend CockroachDB Dedicated. CockroachCloud Dedicated supports single and multi-region clusters in Amazon Web Services and Google Cloud Platform. + +### Hardware + +We use the Kubernetes offerings in AWS and GCP to run our offering - EKS and GKE respectively. For compute we use the C5 series of machines in AWS and the N1-standard machine types in GCP. For storage we use Elastic Block Storage with provisioned iops in AWS, and Persistent Disks in GCP. Each single region cluster has a minimum of three nodes spread across three availability zones (AZ) in a cloud provider region. For multi-region clusters, similarly, nodes are spread across three or more AZs in each region. + +### Security and Connection + +CockroachCloud Dedicated clusters are single tenant. This means each new cluster gets its own project in GCP or its own account in AWS. No two clusters share any resources between each other. Since these clusters are within their own accounts and projects, they are also in a default virtual private cloud (VPC). Currently a customer connects to them using the load balancer in front of each region leading to one connection string if the cluster is single region and multiple connection strings (one per region) if the cluster is multi-region. Since we don’t support VPC peering (yet), the connections are over TLS 1.2 secure over the internet. -### Single region +All clusters are secure by default, and we use a combination of certificates and passwords authentication. We generate one certificate per cluster. We use certificates (verify-full SSL mode) for the nodes to authenticate each other, and for the nodes to authenticate the client. We use passwords for the client to authenticate the node. We use a network security model where IPs must be whitelisted for SQL connections to be allowed to the cluster - this prevents denial of service and brute password attacks. -All CockroachCloud clusters use 3 Availability Zones (AZs). For balanced data distribution and best performance, we recommend using a number of nodes that is a multiple of 3 (e.g., 3, 6, or 9 nodes per region). +Backups are encrypted in S3 and GCS buckets using the cloud provider keys. ### Multi-region -- Multi-region clusters must contain at least 3 regions to ensure that data replicated across regions can survive the loss of one region. For example, this applies to internal system data that is important for overall cluster operations as well as tables with the [`GLOBAL`](../{{site.versions["stable"]}}/global-tables.html) table locality or the [`REGIONAL BY TABLE`](../{{site.versions["stable"]}}/regional-tables.html#regional-tables) table locality and [`REGION` survival goal](../{{site.versions["stable"]}}/multiregion-overview.html#surviving-region-failures). -- Each region of a multi-region cluster must contain at least 3 nodes to ensure that data located entirely in a region can survive the loss of one node in that region. For example, this applies to tables with the [`REGIONAL BY ROW`](../{{site.versions["stable"]}}/regional-tables.html#regional-by-row-tables) table locality. -- You can have a maximum of 9 regions per cluster through the Console. If you need to add more regions, [contact us](https://support.cockroachlabs.com). +Diagram placeholder -## CockroachDB architecture +## Learn more See the [CockroachDB architecture](../{{site.versions["stable"]}}/architecture/overview.html) documentation for more information. \ No newline at end of file From af98f85f7f94f8b8c31d699ee528f8f3640d7030 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Fri, 30 Jul 2021 12:47:03 -0400 Subject: [PATCH 18/77] faq update --- cockroachcloud/serverless-faqs.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cockroachcloud/serverless-faqs.md b/cockroachcloud/serverless-faqs.md index ed7ceba63ee..8e784286ffa 100644 --- a/cockroachcloud/serverless-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -51,10 +51,6 @@ To connect to a cluster, download the CA certificate, and then generate a connec ## Beta release -### Why is CockroachCloud Serverless in beta? - -CockroachCloud Serverless is in beta while we work on additional capabilities and features such as multi-region clusters. - ### Where can I submit feedback or bugs on the beta? You can submit feedback or log any bugs you find through [this survey](https://forms.gle/jWNgmCFtF4y15ePw5). From da39fea48c9ee8401aa3d757e2d55df76038a9c4 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Tue, 10 Aug 2021 14:20:53 -0400 Subject: [PATCH 19/77] architecture edits in progress --- cockroachcloud/architecture.md | 28 +++++++++++------- images/cockroachcloud/multiregion-diagram.png | Bin 0 -> 43280 bytes images/cockroachcloud/serverless-diagram.jpeg | Bin 0 -> 68742 bytes 3 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 images/cockroachcloud/multiregion-diagram.png create mode 100644 images/cockroachcloud/serverless-diagram.jpeg diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index dc7ac331d0b..99e987b6586 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -8,13 +8,21 @@ CockroachCloud is a fully-managed deployment of CockroachDB. This page describes ## CockroachCloud Serverless -CockroachCloud Serverless (beta) is a fully-managed, multi-tenant deployment of CockroachDB. All CockroachCloud Serverless (beta) clusters share resources, however, SQL pods are not shared--only the KV layer is shared. +CockroachCloud Serverless (beta) is a fully-managed, multi-tenant deployment of CockroachDB. Being familiar with the following concepts will help you understand what our Serverless architecture achieves. -### Request Units +### Concepts -All resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a read or a write query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request units your cluster has used on the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page. +CockroachDB relies heavily on the following concepts. Being familiar with them will help you understand what our architecture achieves. -RUs = SQL CPU + ReadRequests + ReadBytes + WriteRequests + WriteBytes +Term | Definition +-----|----------- +**Serverless cluster** | A cluster that’s automatically billed and scaled in response to the resources it consumes (as opposed to a dedicated cluster, which is billed and scaled statically). +**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a read or a write query. All database operations in CockroachCloud Serverless cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request Units your cluster has used on the Cluster Overview page. +**Spend limit** | This is the maximum amount of money a user indicates that they would like to be billed in a particular billing period for a cluster. The actual amount a user is billed is based on the resources used during that billing period. A cluster's budget is allocated across storage, baseline performance, and burst performance. +**Projected usage** | The amount of usage that we project a cluster will consume during a billing period. This is important for allocating a cluster’s spend limit, because we must leave enough budget to pay for storage for the rest of the billing period. +**Baseline performance** | The minimum compute and IO performance that a user can expect from their cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  +**Burst capacity** | Burst capacity is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can “store up” Request Units that can be burst capacity than is allocated for the rest of the month.  +**Storage** | Disk space for permanently storing data over time. All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage users see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. ### Performance @@ -22,15 +30,15 @@ Serverless clusters scale based on the application load they are serving. Paid c Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your budget, your cluster will be throttled down to free-tier performance levels. In this case, you can increase your budget or adjust your workload to stay within budget. +Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst and baseline performance. A user can theoretically use up all their budget for burst in the first few minutes of a cluster being created. If this happens, they will be brought back to the baseline performance (see “Cluster Usage Subsidies and Limits”), after which point they can reaccumulate burst performance if they don’t use all of their request units. + Burst capacity is the ability of the Serverless (beta) cluster to scale above baseline performance. Supporting application traffic that “burst” i.e., can fluctuate above baseline traffic is a key feature of Serverless clusters. CockroachCloud Serverless (beta) clusters have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses free clusters that are inactive, which is defined by having no connection to the cluster for 2 consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. -### Storage - -All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage users see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. +### Architecture -### Diagram +Perf tuning concepts ## CockroachCloud Dedicated @@ -48,9 +56,9 @@ All clusters are secure by default, and we use a combination of certificates and Backups are encrypted in S3 and GCS buckets using the cloud provider keys. -### Multi-region +### Multi-region architecture -Diagram placeholder +Perf tuning concepts ## Learn more diff --git a/images/cockroachcloud/multiregion-diagram.png b/images/cockroachcloud/multiregion-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..a184d9c20a519ce9232f2d83ad8aefcca81f4e5d GIT binary patch literal 43280 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 - -## General - -### What is CockroachCloud Free (beta)? - -CockroachCloud Free (beta) delivers free CockroachDB clusters for you and your organization. It is a managed instance of CockroachDB that removes the friction of initial cluster sizing and auto-scales based on your application traffic. - -### How do I start using CockroachCloud Free (beta)? - -To get started with CockroachCloud Free (beta), sign up for a CockroachCloud account, click **Create Cluster**, then click **Create your free cluster**. Your cluster will be ready in 20-30 seconds. For more information, see [**Quickstart**](quickstart.html). - -### What are the usage limits of Cockroach Cloud Free (beta)? - -There is an upper limit of usage of up to 1 vCPU and 5GB storage per free cluster. If you hit the storage limit, you will receive an email asking you to delete enough data to stay under the 5GB limit. If you do not respond within the next 30 days, you will be blocked from accessing your cluster. - -### Do I have to pay for CockroachCloud Free (beta)? - -No, you do not have to pay anything. CockroachCloud Free (beta) is free forever. - -### What can I use CockroachCloud Free (beta) for? - -CockroachCloud Free (beta) can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). - -For examples of applications that use CockroachCloud Free (beta), check out the following [Hack the North](https://hackthenorth.com/) projects: - -- [flock](https://devpost.com/software/flock-figure-out-what-film-to-watch-with-friends) -- [mntr.tech](https://devpost.com/software/mntr-tech) -- [curbshop.online](https://devpost.com/software/curbshop-online) - -### What are the limitations of CockroachCloud Free (beta)? - -CockroachCloud Free is currently in beta and there are capabilities we are still working on enabling, such as no-downtime upgrades to a paid cluster. If you want to try out a paid cluster, you can get a [30-day trial of CockroachCloud](quickstart-trial-cluster.html). - -### How do I connect to my cluster? - -To connect to a cluster, download the CA certificate, and then generate a connection string or parameters. You can use this information to connect to your cluster through the CockroachDB SQL client or a Postgres-compatible driver or ORM. For more details, see [Connect to Your CockroachCloud Cluster](connect-to-your-cluster.html). - -## Beta release - -### Where can I submit feedback or bugs on the beta? - -You can submit feedback or log any bugs you find through [this survey](https://forms.gle/jWNgmCFtF4y15ePw5). - -## Security - -### Is my cluster secure? - -Yes, we use separate certificate authorities for each cluster, and all connections to the cluster over the internet use TLS 1.2. - -### Is encryption-at-rest enabled on CockroachCloud Free (beta)? - -Yes. All data on CockroachCloud is encrypted-at-rest using the tools provided by the cloud provider that your cluster is running in. - -- Data stored in clusters running in GCP are encrypted-at-rest using [persistent disk encryption](https://cloud.google.com/compute/docs/disks#pd_encryption). -- Data stored in clusters running in AWS are encrypted-at-rest using [EBS encryption-at-rest](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html). - -Because we are relying on the cloud provider's encryption implementation (as noted above), we do not enable CockroachDB's [internal implementation of encryption-at-rest](../{{site.versions["stable"]}}/encryption.html#encryption-at-rest-enterprise). This means that encryption will appear to be disabled in the [DB Console](../{{site.versions["stable"]}}/ui-overview.html), since it is unaware of cloud provider encryption. - -### Is my cluster isolated? Does it share resources with any other clusters? - -CockroachCloud Free (beta) is a multi-tenant offering and resources are shared between clusters. - -## Cluster maintenance - -### How do I add nodes? - -You cannot add nodes to your CockroachCloud Free (beta) cluster, and there is an upper limit of usage of up to 1 vCPU and 5GB storage. If you exceed this limit or want a more powerful cluster, you can create a cluster using the paid version of [CockroachCloud](create-your-cluster.html). - -### Can I upgrade my cluster from CockroachCloud Free (beta) to the paid version of CockroachCloud? - -At this time, a CockroachCloud Free (beta) cluster cannot be upgraded. In the future, you will have the ability to move from CockroachCloud Free (beta) to a paid version of CockroachCloud. - -## Product features - -### Are partitioning or change data capture available to me? - -No, change data capture and partitioning are not available on CockroachCloud Free (beta) clusters, but will be in the future. - -### Do you have a UI? How can I see details? - -Yes, you can view and your clusters in the [CockroachCloud Console](https://cockroachlabs.cloud/). However, [DB Console](../{{site.versions["stable"]}}/ui-overview.html) pages (e.g., **Statements** or **Database** pages) are not currently available for CockroachCloud Free (beta) clusters. - -### Can I backup my CockroachCloud Free (beta) cluster? Does Cockroach Labs take backups of my cluster? - -Cockroach Labs takes full cluster backups of all CockroachCloud Free (beta) clusters for our own purposes. Currently, these backups are not available to you. We support [`BACKUP`](../{{site.versions["stable"]}}/backup.html) and [`RESTORE`](../{{site.versions["stable"]}}/restore.html) of databases and tables on CockroachCloud Free (beta) clusters through [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html) storage. For an example on using `userfile` for backups, see [Backup and restore with `userfile`](run-bulk-operations.html#backup-and-restore-with-userfile). From e0c75169bd1138158bb657b1b21b0490763ace05 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Thu, 19 Aug 2021 16:21:36 -0400 Subject: [PATCH 23/77] update new bulk ops page --- cockroachcloud/architecture.md | 13 ++++++++++ cockroachcloud/run-bulk-operations.md | 34 +++++++++++++-------------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 019a1299f21..80bcededf14 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -6,6 +6,13 @@ toc: true CockroachCloud is a fully-managed deployment of CockroachDB. This page describes CockroachCloud's architecture and how it relates to CockroachDB. +
+ + +
+ +
+ ## CockroachCloud Serverless CockroachCloud Serverless (beta) is a fully-managed, multi-tenant deployment of CockroachDB. Being familiar with the following concepts will help you understand what our Serverless architecture achieves. @@ -38,6 +45,10 @@ Traffic comes in from the public internet and is routed by the cloud provider’ Perf tuning concepts +
+ +
+ ## CockroachCloud Dedicated If you need a single-tenant cluster with no shared resources, we recommend CockroachCloud Dedicated. CockroachCloud Dedicated supports single and multi-region clusters in Amazon Web Services and Google Cloud Platform. @@ -58,6 +69,8 @@ Backups are encrypted in S3 and GCS buckets using the cloud provider keys. Perf tuning concepts +
+ ## Learn more See the [CockroachDB architecture](../{{site.versions["stable"]}}/architecture/overview.html) documentation for more information. \ No newline at end of file diff --git a/cockroachcloud/run-bulk-operations.md b/cockroachcloud/run-bulk-operations.md index 3a7faa8b308..9e2e3d9c237 100644 --- a/cockroachcloud/run-bulk-operations.md +++ b/cockroachcloud/run-bulk-operations.md @@ -4,7 +4,7 @@ summary: Run backups, restores, and imports from your CockroachCloud cluster. toc: true --- -The CockroachCloud tiers offer different levels of support for the following bulk operations. This page provides information on the availability of these operations in each CockroachCloud cluster tier and examples. +CockroachCloud Serverless (beta) and CockroachCloud Dedicated offer different levels of support for the following bulk operations. This page provides information on the availability of these operations in both types of CockroachCloud cluster and examples. - [`BACKUP`](../{{site.versions["stable"]}}/backup.html) - [`RESTORE`](../{{site.versions["stable"]}}/restore.html) @@ -12,23 +12,23 @@ The CockroachCloud tiers offer different levels of support for the following bul - [`EXPORT`](../{{site.versions["stable"]}}/export.html) - [`CREATE CHANGEFEED`](../{{site.versions["stable"]}}/create-changefeed.html) -The examples below include details on the storage options available with each of the CockroachCloud tiers. +The examples below include details on the storage options available in CockroachCloud Serverless and Dedicated. ## Examples
- - + +
-
+
-For guidance on connecting to your CockroachCloud cluster, visit [Connect to a CockroachCloud Free (beta) Cluster](connect-to-a-free-cluster.html). +For guidance on connecting to your CockroachCloud cluster, visit [Connect to a CockroachCloud Serverless (beta) Cluster](connect-to-a-serverless-cluster.html). -In CockroachCloud Free (beta) clusters, [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html), a per-user bulk file storage, is the **only available storage option** for `BACKUP`, `RESTORE`, and `IMPORT` operations. +In CockroachCloud Serverless clusters, [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html), a per-user bulk file storage, is the **only available storage option** for `BACKUP`, `RESTORE`, and `IMPORT` operations. {{site.data.alerts.callout_info}} -`userfile` is only available as storage for `BACKUP`, `RESTORE`, and `IMPORT` operations on CockroachCloud Free (beta) [**after upgrading to v21.1.**](upgrade-to-v21.1.html) +`userfile` is only available as storage for `BACKUP`, `RESTORE`, and `IMPORT` operations on CockroachCloud Serverless [**after upgrading to v21.1.**](upgrade-to-v21.1.html) {{site.data.alerts.end}} For information on `userfile` commands, visit the following pages: @@ -42,19 +42,19 @@ For information on `userfile` commands, visit the following pages: {% include cockroachcloud/userfile-examples/backup-userfile.md %} -### Import data into your CockroachCloud Free (beta) cluster +### Import data into your CockroachCloud Serverless (beta) cluster {% include cockroachcloud/userfile-examples/import-into-userfile.md %} -### Stream data out of your CockroachCloud Free (beta) cluster +### Stream data out of your CockroachCloud Serverless (beta) cluster Core changefeeds stream row-level changes to a client until the underlying SQL connection is closed. {{site.data.alerts.callout_info}} -Only core changefeeds are available on CockroachCloud Free (beta). To create a changefeed into a configurable sink, like cloud storage or Kafka, use CockroachCloud, which has this feature enabled by default. +Only core changefeeds are available on CockroachCloud Serverless (beta). To create a changefeed into a configurable sink, like cloud storage or Kafka, use CockroachCloud, which has this feature enabled by default. {{site.data.alerts.end}} -To create a core changefeed in CockroachCloud Free (beta), use the following example. +To create a core changefeed in CockroachCloud Serverless (beta), use the following example. {% include cockroachcloud/cdc/create-core-changefeed.md %} @@ -68,9 +68,9 @@ For further information on changefeeds, read [Stream Data Out of CockroachDB](..
-
+
-For guidance on connecting to your CockroachCloud cluster, visit [Connect to Your CockroachCloud Cluster](connect-to-your-cluster.html). +For guidance on connecting to your CockroachCloud cluster, visit [Connect to Your CockroachCloud Dedicated Cluster](connect-to-your-cluster.html). The examples below use Amazon S3 for demonstration purposes. For guidance on connecting to other storage options or using other authentication parameters, read [Use Cloud Storage for Bulk Operations](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html). @@ -91,7 +91,7 @@ For more information on taking backups and restoring to your cluster, read the f - [Full and incremental backups](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html) - [Scheduled backups](../{{site.versions["stable"]}}/manage-a-backup-schedule.html) -### Import data into your CockroachCloud cluster +### Import data into your CockroachCloud Dedicated cluster To import a table into your cluster: @@ -108,7 +108,7 @@ CSV DATA ('s3://{BUCKET NAME}/{customer-data}?AWS_ACCESS_KEY_ID={ACCESS KEY}&AWS Read the [`IMPORT`](../{{site.versions["stable"]}}/import.html) page for more examples and guidance. -### Export data out of CockroachCloud +### Export data out of CockroachCloud Dedicated The following example exports the `customers` table from the `bank` database into a cloud storage bucket in CSV format: @@ -120,7 +120,7 @@ EXPORT INTO CSV Read the [`EXPORT`](../{{site.versions["stable"]}}/export.html) page for more examples and guidance. -### Stream data out of CockroachCloud +### Stream data out of CockroachCloud Dedicated {% include cockroachcloud/cdc/cdc-bulk-examples.md %} From f6be566e702dad0627111f91ff2feb32958ea835 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Wed, 1 Sep 2021 10:51:32 -0400 Subject: [PATCH 24/77] ian suggestions --- .../planning-your-serverless-cluster.md | 4 ++-- cockroachcloud/architecture.md | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index dcabaa9d7de..fbd85f64061 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -1,11 +1,11 @@ ### Resource usage -All resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a read or a write query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. +All resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. ### Cluster scaling CockroachCloud Serverless (beta) clusters scale based on your workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](architecture.html#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or 2.5K QPS. -Paid clusters include additional resources with no throttling. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, you will still have access to the resources included with free clusters. +Paid clusters include additional resources with no throttling. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of free clusters. To see a graph of your monthly resource usage and recommended budget, navigate to the [Edit cluster](#edit-your-spend-limit) page. \ No newline at end of file diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 80bcededf14..4795690ae45 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -22,22 +22,22 @@ CockroachCloud Serverless (beta) is a fully-managed, multi-tenant deployment of Term | Definition -----|----------- **Serverless cluster** | A cluster that’s automatically billed and scaled in response to the resources it consumes (as opposed to a dedicated cluster, which is billed and scaled statically). -**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a read or a write query. All database operations in CockroachCloud Serverless cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request Units your cluster has used on the Cluster Overview page. +**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in CockroachCloud Serverless cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request Units your cluster has used on the Cluster Overview page. **Spend limit** | This is the maximum amount of money a user indicates that they would like to be billed in a particular billing period for a cluster. The actual amount a user is billed is based on the resources used during that billing period. A cluster's budget is allocated across storage, baseline performance, and burst performance. -**Projected usage** | The amount of usage that we project a cluster will consume during a billing period. This is important for allocating a cluster’s spend limit, because we must leave enough budget to pay for storage for the rest of the billing period. -**Baseline performance** | The minimum compute and IO performance that a user can expect from their cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  -**Burst capacity** | Burst capacity is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can “store up” Request Units that can be burst capacity than is allocated for the rest of the month.  +**Projected usage** | The amount of usage that we project a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because users must leave enough budget to pay for storage for the rest of the billing period. +**Baseline performance** | The minimum compute and I/O performance that a user can expect from their cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  +**Burst capacity** | Burst capacity is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can “store up” Request Units that can be used for burst capacity for the rest of the month.  **Storage** | Disk space for permanently storing data over time. All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage users see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. ### Performance Serverless clusters scale based on your application's workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or 2.5K QPS. If you set a budget for your cluster, you will have access to additional resources without throttling. -Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your budget, your cluster will be throttled down to free-tier performance levels. In this case, you can increase your budget or adjust your workload to stay within budget. +Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your budget, your cluster will be throttled down to baseline performance levels. If this occurs, you can opt to increase your budget, adjust your workload to stay within the current spend limit, or stay at the baseline performance level until the next month. Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst and baseline performance. A user can theoretically use up all their budget for burst performance in the first few minutes of a cluster being created. If this happens, they will be throttled back to the baseline performance and can reaccumulate burst capacity by using fewer RUs. -Serverless clusters also have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses free clusters that are inactive, which is defined by having no connection to the cluster for two consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). +Serverless clusters also have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for the storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses free clusters that are inactive, which is defined by having no connection to the cluster for two consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). ### Architecture @@ -55,11 +55,11 @@ If you need a single-tenant cluster with no shared resources, we recommend Cockr ### Hardware -We use the Kubernetes offerings in AWS and GCP (EKS and GKE respectively) to run CockroachCloud offerings. GCP clusters use [N1 standard](https://cloud.google.com/compute/docs/machine-types#n1_machine_types) machine types and [Persistent Disk storage](https://cloud.google.com/compute/docs/disks#pdspecs). AWS clusters use [M5 instance types](https://aws.amazon.com/ec2/instance-types/m5/#Product_Details) and [Elastic Block Store (EBS)](https://aws.amazon.com/ebs/features/). Each single region cluster has a minimum of three nodes spread across three availability zones (AZ) in a cloud provider region. For multi-region clusters, similarly, nodes are spread across three or more AZs in each region. +We use the Kubernetes offerings in AWS and GCP (EKS and GKE respectively) to run CockroachCloud offerings. GCP clusters use [N1 standard](https://cloud.google.com/compute/docs/machine-types#n1_machine_types) machine types and [Persistent Disk storage](https://cloud.google.com/compute/docs/disks#pdspecs). AWS clusters use [M5 instance types](https://aws.amazon.com/ec2/instance-types/m5/#Product_Details) and [Elastic Block Store (EBS)](https://aws.amazon.com/ebs/features/). Each single region cluster has a minimum of three nodes spread across three availability zones (AZ) in a cloud provider region. Multi-region clusters are similar to single-region clusters, with nodes spread across three or more AZs in each region. ### Security and Connection -CockroachCloud Dedicated clusters are single tenant. This means each new cluster gets its own project in GCP or its own account in AWS. No two Dedicated clusters share any resources with each other. Since these clusters are within their own accounts and projects, they are also in a default virtual private cloud (VPC). Users connect to a Dedicated cluster by using a load balancer in front of each region which leads to one connection string per region. Unless you set up [VPC peering](network-authorization.html#vpc-peering) or [AWS PrivateLink](network-authorization.html#aws-privatelink), your cluster will use TLS 1.2 protocol for inter-node and client-node communication. +CockroachCloud Dedicated clusters are single tenant. This means each new cluster gets its own project in GCP or its own account in AWS. No two Dedicated clusters share any resources with each other. Since these clusters are within their own accounts and projects, they are also in a default virtual private cloud (VPC). Users connect to a Dedicated cluster by using a load balancer in front of each region which leads to one connection string per region. Unless you set up [VPC peering](network-authorization.html#vpc-peering) or [AWS PrivateLink](network-authorization.html#aws-privatelink), your cluster will use TLS 1.2 protocol for encrypting inter-node and client-node communication. CockroachCloud clusters also use digital certificates for inter-node authentication, [SSL modes](authentication.html#ssl-mode-settings) for node identity verification, and password authentication for client identity verification. See [Authentication](authentication.html) for more details. From 86c0bc62f016a68222bdc2847d46557d6dd09182 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Wed, 1 Sep 2021 14:11:06 -0400 Subject: [PATCH 25/77] paul's suggestions --- .../cockroachcloud/planning-your-serverless-cluster.md | 2 +- cockroachcloud/architecture.md | 2 +- cockroachcloud/create-a-serverless-cluster.md | 2 +- cockroachcloud/serverless-faqs.md | 10 +++++----- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index fbd85f64061..5b2e99d2128 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -4,7 +4,7 @@ All resource usage in CockroachCloud Serverless (beta) is measured in Request Un ### Cluster scaling -CockroachCloud Serverless (beta) clusters scale based on your workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](architecture.html#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or 2.5K QPS. +CockroachCloud Serverless (beta) clusters scale based on your workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](architecture.html#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. Paid clusters include additional resources with no throttling. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of free clusters. diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 4795690ae45..085a0b92230 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -31,7 +31,7 @@ Term | Definition ### Performance -Serverless clusters scale based on your application's workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or 2.5K QPS. If you set a budget for your cluster, you will have access to additional resources without throttling. +Serverless clusters scale based on your application's workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. If you set a budget for your cluster, you will have access to additional resources without throttling. Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your budget, your cluster will be throttled down to baseline performance levels. If this occurs, you can opt to increase your budget, adjust your workload to stay within the current spend limit, or stay at the baseline performance level until the next month. diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 8706abff1d5..1934c89ce17 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -31,7 +31,7 @@ If you haven't already, Date: Wed, 1 Sep 2021 16:46:56 -0400 Subject: [PATCH 26/77] bulk operations and org trust --- cockroachcloud/console-access-management.md | 14 +- cockroachcloud/create-a-serverless-cluster.md | 4 +- cockroachcloud/run-bulk-operations.md | 124 +++++++++++------- cockroachcloud/serverless-faqs.md | 8 +- 4 files changed, 87 insertions(+), 63 deletions(-) diff --git a/cockroachcloud/console-access-management.md b/cockroachcloud/console-access-management.md index 0e6119701d6..7a52f7af1e1 100644 --- a/cockroachcloud/console-access-management.md +++ b/cockroachcloud/console-access-management.md @@ -15,16 +15,6 @@ To switch between the organizations: 1. [Log in](https://cockroachlabs.cloud/). 2. From the drop-down box in the top-right corner, select the Organization you want to access. -### Organization verification - -CockroachCloud Organizations have two levels of verification, **Basic** and **Core**. New CockroachCloud Serverless (beta) Organizations are at the Basic level once an email address is verified, and all CockroachCloud Dedicated Organizations are at the Core level. Console Admins can upgrade your Organization to Core verification by [adding credit card information](#manage-billing-for-the-organization). - -Basic | Core -----------------------------------|---------------------------------- -Import and Backup with `userfile` | Import and Backup with cloud storage or `userfile` -Up to 5 Serverless clusters | Up to 50 Serverless clusters -placeholder | placeholder - ## SQL users [Console Admins](#console-admin) can [create and manage SQL users](user-authorization.html#create-a-sql-user). A SQL user can interact with a CockroachDB database using the built-in SQL shell or through an application. @@ -111,6 +101,10 @@ This is not currently available through the Console. To remove an email address As a Console Admin, you can set up and manage billing for the Organization. +{{site.data.alerts.callout_info}} +Setting up billing information for your Organization allows you to create a maximum of 10 Serverless clusters and use [cloud storage for bulk operations](run-bulk-operations.html). Organizations without billing information are limited to five Serverless clusters and [using `userfile` storage for bulk operations](run-bulk-operations.html). +{{site.data.alerts.end}} + #### Set up billing for an Organization 1. On the **Billing** page, click the pen icon for the **Payment method** field. diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 1934c89ce17..bfc55b77f9c 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -35,8 +35,10 @@ Free clusters include 250M RUs with 10M RUs reserved for [burst performance](arc Paid clusters include additional resources with no throttling. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, you will still have access to the resources included with free clusters. -{{site.data.alerts.callout_info}} For more information on determining your resource usage, see [Planning your cluster](serverless-cluster-management.html#planning-your-cluster). + +{{site.data.alerts.callout_info}} +Regardless of whether you set a spend limit, [adding billing information](console-access-management.html#manage-billing-for-the-organization) for your Organization allows you to create a maximum of 10 Serverless clusters and use [cloud storage for bulk operations](run-bulk-operations.html). Organizations without billing information are limited to five Serverless clusters and [using `userfile` storage for bulk operations](run-bulk-operations.html). {{site.data.alerts.end}}
diff --git a/cockroachcloud/run-bulk-operations.md b/cockroachcloud/run-bulk-operations.md index 9e2e3d9c237..cf4d0bf8b96 100644 --- a/cockroachcloud/run-bulk-operations.md +++ b/cockroachcloud/run-bulk-operations.md @@ -12,23 +12,10 @@ CockroachCloud Serverless (beta) and CockroachCloud Dedicated offer different le - [`EXPORT`](../{{site.versions["stable"]}}/export.html) - [`CREATE CHANGEFEED`](../{{site.versions["stable"]}}/create-changefeed.html) -The examples below include details on the storage options available in CockroachCloud Serverless and Dedicated. - -## Examples - -
- - -
- -
- -For guidance on connecting to your CockroachCloud cluster, visit [Connect to a CockroachCloud Serverless (beta) Cluster](connect-to-a-serverless-cluster.html). - -In CockroachCloud Serverless clusters, [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html), a per-user bulk file storage, is the **only available storage option** for `BACKUP`, `RESTORE`, and `IMPORT` operations. - {{site.data.alerts.callout_info}} -`userfile` is only available as storage for `BACKUP`, `RESTORE`, and `IMPORT` operations on CockroachCloud Serverless [**after upgrading to v21.1.**](upgrade-to-v21.1.html) +For CockroachCloud Serverless clusters, you must have [billing information](console-access-management.html#manage-billing-for-the-organization) on file for your Organization to have access to [cloud storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html). If you don't have billing set up, [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html) is your **only available storage option** for bulk operations. + +CockroachCloud Dedicated users can run bulk operations with `userfile` or cloud storage. {{site.data.alerts.end}} For information on `userfile` commands, visit the following pages: @@ -38,43 +25,26 @@ For information on `userfile` commands, visit the following pages: - [`cockroach userfile get`](../{{site.versions["stable"]}}/cockroach-userfile-get.html) - [`cockroach userfile delete`](../{{site.versions["stable"]}}/cockroach-userfile-delete.html) -### Backup and restore with `userfile` - -{% include cockroachcloud/userfile-examples/backup-userfile.md %} - -### Import data into your CockroachCloud Serverless (beta) cluster - -{% include cockroachcloud/userfile-examples/import-into-userfile.md %} - -### Stream data out of your CockroachCloud Serverless (beta) cluster +The cloud storage examples on this page use Amazon S3 for demonstration purposes. For guidance on connecting to other storage options or using other authentication parameters, read [Use Cloud Storage for Bulk Operations](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html). -Core changefeeds stream row-level changes to a client until the underlying SQL connection is closed. - -{{site.data.alerts.callout_info}} -Only core changefeeds are available on CockroachCloud Serverless (beta). To create a changefeed into a configurable sink, like cloud storage or Kafka, use CockroachCloud, which has this feature enabled by default. -{{site.data.alerts.end}} +## Examples -To create a core changefeed in CockroachCloud Serverless (beta), use the following example. +Before you begin, connect to your cluster. For guidance on connecting to your CockroachCloud cluster, visit [Connect to a CockroachCloud Serverless (beta) Cluster](connect-to-a-serverless-cluster.html) or [Connect to Your CockroachCloud Dedicated Cluster](connect-to-your-cluster.html). -{% include cockroachcloud/cdc/create-core-changefeed.md %} +### Backup and restore data -For further information on changefeeds, read [Stream Data Out of CockroachDB](../{{site.versions["stable"]}}/stream-data-out-of-cockroachdb-using-changefeeds.html) and [`CHANGEFEED FOR`](../{{site.versions["stable"]}}/changefeed-for.html). +
+ + +
-## See also +
-- [Use Userfile for Bulk Operations](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html) -- [Scheduled Backups](../{{site.versions["stable"]}}/manage-a-backup-schedule.html) -- [Take Full and Incremental Backups](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html) +{% include cockroachcloud/userfile-examples/backup-userfile.md %}
-
- -For guidance on connecting to your CockroachCloud cluster, visit [Connect to Your CockroachCloud Dedicated Cluster](connect-to-your-cluster.html). - -The examples below use Amazon S3 for demonstration purposes. For guidance on connecting to other storage options or using other authentication parameters, read [Use Cloud Storage for Bulk Operations](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html). - -### Backup and restore your CockroachCloud data +
Cockroach Labs runs [full backups](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html#full-backups) daily and [incremental backups](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html#incremental-backups) hourly for every CockroachCloud cluster. The full backups are retained for 30 days, while incremental backups are retained for 7 days. For more information, read [Restore Data From a Backup](../cockroachcloud/backups-page.html). @@ -91,7 +61,22 @@ For more information on taking backups and restoring to your cluster, read the f - [Full and incremental backups](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html) - [Scheduled backups](../{{site.versions["stable"]}}/manage-a-backup-schedule.html) -### Import data into your CockroachCloud Dedicated cluster +
+ +### Import data into your CockroachCloud cluster + +
+ + +
+ +
+ +{% include cockroachcloud/userfile-examples/import-into-userfile.md %} + +
+ +
To import a table into your cluster: @@ -108,7 +93,20 @@ CSV DATA ('s3://{BUCKET NAME}/{customer-data}?AWS_ACCESS_KEY_ID={ACCESS KEY}&AWS Read the [`IMPORT`](../{{site.versions["stable"]}}/import.html) page for more examples and guidance. -### Export data out of CockroachCloud Dedicated +
+ +### Export data out of CockroachCloud + +
+ + +
+ +
+PLACEHOLDER +
+ +
The following example exports the `customers` table from the `bank` database into a cloud storage bucket in CSV format: @@ -120,14 +118,40 @@ EXPORT INTO CSV Read the [`EXPORT`](../{{site.versions["stable"]}}/export.html) page for more examples and guidance. -### Stream data out of CockroachCloud Dedicated +
+ +### Stream data out of your CockroachCloud cluster + +Core changefeeds stream row-level changes to a client until the underlying SQL connection is closed. + +{{site.data.alerts.callout_info}} +Only core changefeeds are available on CockroachCloud Serverless (beta). To create a changefeed into a configurable sink, like cloud storage or Kafka, use CockroachCloud Dedicated, which has this feature enabled by default. +{{site.data.alerts.end}} + +
+ + +
+ +
+ +To create a core changefeed in CockroachCloud Serverless (beta), use the following example. + +{% include cockroachcloud/cdc/create-core-changefeed.md %} + +For further information on changefeeds, read [Stream Data Out of CockroachDB](../{{site.versions["stable"]}}/stream-data-out-of-cockroachdb-using-changefeeds.html) and [`CHANGEFEED FOR`](../{{site.versions["stable"]}}/changefeed-for.html). + +
+ +
{% include cockroachcloud/cdc/cdc-bulk-examples.md %} +
+ ## See also +- [Use Userfile for Bulk Operations](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html) - [Scheduled Backups](../{{site.versions["stable"]}}/manage-a-backup-schedule.html) - [Take Full and Incremental Backups](../{{site.versions["stable"]}}/take-full-and-incremental-backups.html) -- [Use Bulk Operations for Cloud Storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html) - -
+- [Use Bulk Operations for Cloud Storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html) \ No newline at end of file diff --git a/cockroachcloud/serverless-faqs.md b/cockroachcloud/serverless-faqs.md index 8e6c64230b0..559fd0b4d16 100644 --- a/cockroachcloud/serverless-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -84,12 +84,16 @@ Yes, you can upgrade your cluster through the Console by [increasing your spend ### Are partitioning or change data capture available to me? -Yes, clusters that are running version 21.1 or later have access to Core Changefeeds. +Yes, clusters that are running version 21.1 or later have access to [Core Changefeeds]. ### Do you have a UI? How can I see details? Yes, you can view and your clusters in the [CockroachCloud Console](https://cockroachlabs.cloud/). However, some [DB Console](../{{site.versions["stable"]}}/ui-overview.html) pages are not currently available for CockroachCloud Serverless (beta) clusters. +### Can I run bulk operations such as `IMPORT` and `EXPORT` from my cluster? + +Yes, see [Run Bulk Operations](run-bulk-operations.html) for more information. If you don't have billing information on file for your Organization, [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html) is the only available storage options for bulk operations. Once you enter billing information, even if you don't set a budget, you will have access to [cloud storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html). + ### Can I backup my CockroachCloud Serverless (beta) cluster? Does Cockroach Labs take backups of my cluster? -Cockroach Labs takes full cluster backups of all CockroachCloud Serverless (beta) clusters for our own purposes. If your Organization is [verified](console-access-management.html#organization-verification) at the Basic level, you can take backups locally to `userfile`. If you are at the Core level of verification, you can backup to cloud storage or `userfile`. See [Organization verification](console-access-management.html#organization-verification) for more information. +Cockroach Labs takes full cluster backups of all CockroachCloud Serverless (beta) clusters for our own purposes. If you don't have [billing information on file](console-access-management.html#manage-billing-for-the-organization) for your Organization, you can [take backups locally](run-bulk-operations.html#backup-and-restore-with-userfile) to `userfile`. Once you enter billing information, even if you don't set a budget, you can also [backup to cloud storage](run-bulk-operations.html#backup-and-restore-with-userfile). From 6dd18cdc626e2ec8b6d97d5932752732d5f1f259 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Wed, 1 Sep 2021 16:57:17 -0400 Subject: [PATCH 27/77] lauren review --- cockroachcloud/architecture.md | 14 +++++++------- cockroachcloud/create-a-serverless-cluster.md | 5 +++-- cockroachcloud/serverless-cluster-management.md | 2 +- cockroachcloud/serverless-faqs.md | 8 ++++---- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 085a0b92230..2fe873bd0cc 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -22,10 +22,10 @@ CockroachCloud Serverless (beta) is a fully-managed, multi-tenant deployment of Term | Definition -----|----------- **Serverless cluster** | A cluster that’s automatically billed and scaled in response to the resources it consumes (as opposed to a dedicated cluster, which is billed and scaled statically). -**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in CockroachCloud Serverless cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request Units your cluster has used on the Cluster Overview page. -**Spend limit** | This is the maximum amount of money a user indicates that they would like to be billed in a particular billing period for a cluster. The actual amount a user is billed is based on the resources used during that billing period. A cluster's budget is allocated across storage, baseline performance, and burst performance. -**Projected usage** | The amount of usage that we project a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because users must leave enough budget to pay for storage for the rest of the billing period. -**Baseline performance** | The minimum compute and I/O performance that a user can expect from their cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  +**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in CockroachCloud Serverless cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many Request Units your cluster has used on the Cluster Overview page. +**Spend limit** | The maximum amount of money you indicate you want to be billed in a particular billing period for a cluster. The actual amount you are billed is based on the resources used during that billing period. A cluster's budget is allocated across storage and burst performance. +**Projected usage** | The amount of usage that Cockroach Labs projects a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because users must leave enough budget to pay for storage for the rest of the billing period. +**Baseline performance** | The minimum compute and I/O performance that you can expect from your cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  **Burst capacity** | Burst capacity is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can “store up” Request Units that can be used for burst capacity for the rest of the month.  **Storage** | Disk space for permanently storing data over time. All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage users see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. @@ -35,13 +35,13 @@ Serverless clusters scale based on your application's workload. Free clusters in Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your budget, your cluster will be throttled down to baseline performance levels. If this occurs, you can opt to increase your budget, adjust your workload to stay within the current spend limit, or stay at the baseline performance level until the next month. -Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst and baseline performance. A user can theoretically use up all their budget for burst performance in the first few minutes of a cluster being created. If this happens, they will be throttled back to the baseline performance and can reaccumulate burst capacity by using fewer RUs. +Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst and baseline performance. You can theoretically use up all of your budget for burst performance in the first few minutes of a cluster being created. If this happens, the cluster will be throttled back to the baseline performance and can reaccumulate burst capacity by using fewer RUs. Serverless clusters also have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for the storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses free clusters that are inactive, which is defined by having no connection to the cluster for two consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). ### Architecture -Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes cluster that hosts CockroachDB. However, unlike a regular CockroachDB cluster where the SQL and KV layers run in the same process, our serverless architecture fully decouples the SQL layer from the KV layer so that both layers run in separate processes running in separate Kubernetes pods. +Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes cluster that hosts CockroachDB. However, unlike a self-hosted CockroachDB cluster where the SQL and KV layers run in the same process, our serverless architecture fully decouples the SQL layer from the KV layer so that both layers run in separate processes running in separate Kubernetes pods. Perf tuning concepts @@ -63,7 +63,7 @@ CockroachCloud Dedicated clusters are single tenant. This means each new cluster CockroachCloud clusters also use digital certificates for inter-node authentication, [SSL modes](authentication.html#ssl-mode-settings) for node identity verification, and password authentication for client identity verification. See [Authentication](authentication.html) for more details. -Backups are encrypted in S3 and GCS buckets using the cloud provider keys. +[Backups(backups-page.html) are encrypted in S3 and GCS buckets using the cloud provider keys. ### Multi-region architecture diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index bfc55b77f9c..8c56ea95930 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -20,8 +20,8 @@ If you haven't already,
Date: Wed, 1 Sep 2021 17:07:46 -0400 Subject: [PATCH 28/77] missed a nit and some links --- cockroachcloud/architecture.md | 2 +- cockroachcloud/serverless-faqs.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 2fe873bd0cc..c77e30d55cc 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -22,7 +22,7 @@ CockroachCloud Serverless (beta) is a fully-managed, multi-tenant deployment of Term | Definition -----|----------- **Serverless cluster** | A cluster that’s automatically billed and scaled in response to the resources it consumes (as opposed to a dedicated cluster, which is billed and scaled statically). -**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in CockroachCloud Serverless cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many Request Units your cluster has used on the Cluster Overview page. +**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in CockroachCloud Serverless cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many Request Units your cluster has used on the [**Cluster Overview**](serverless-cluster-management.html#view-cluster-overview) page. **Spend limit** | The maximum amount of money you indicate you want to be billed in a particular billing period for a cluster. The actual amount you are billed is based on the resources used during that billing period. A cluster's budget is allocated across storage and burst performance. **Projected usage** | The amount of usage that Cockroach Labs projects a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because users must leave enough budget to pay for storage for the rest of the billing period. **Baseline performance** | The minimum compute and I/O performance that you can expect from your cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  diff --git a/cockroachcloud/serverless-faqs.md b/cockroachcloud/serverless-faqs.md index 3785f1f0e8a..f3a055897e6 100644 --- a/cockroachcloud/serverless-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -96,4 +96,4 @@ Yes, CockroachCloud Serverless clusters have access to [Core Changefeeds](run-bu ### Can I backup my CockroachCloud Serverless (beta) cluster? Does Cockroach Labs take backups of my cluster? -Cockroach Labs takes full cluster backups of all CockroachCloud Serverless (beta) clusters for our own purposes. If you don't have [billing information on file](console-access-management.html#manage-billing-for-the-organization) for your Organization, you can [take backups locally](run-bulk-operations.html#backup-and-restore-with-userfile) to `userfile`. Once you enter billing information, even if you don't set a budget, you can also [backup to cloud storage](run-bulk-operations.html#backup-and-restore-with-userfile). +Cockroach Labs takes full cluster backups of all CockroachCloud Serverless (beta) clusters for our own purposes. If you don't have [billing information on file](console-access-management.html#manage-billing-for-the-organization) for your Organization, you can [take backups locally](run-bulk-operations.html#backup-and-restore-data) to `userfile`. Once you enter billing information, even if you don't set a budget, you can also [backup to cloud storage](run-bulk-operations.html#backup-and-restore-data). From 267709390dfcc700681346c2359cb4114c697966 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Tue, 7 Sep 2021 10:46:10 -0400 Subject: [PATCH 29/77] paul and lauren edits --- _includes/cockroachcloud/free-throttle.md | 3 --- .../planning-your-serverless-cluster.md | 8 +++---- cockroachcloud/architecture.md | 22 +++++++++---------- cockroachcloud/create-a-serverless-cluster.md | 4 ++-- cockroachcloud/serverless-faqs.md | 8 +++---- 5 files changed, 21 insertions(+), 24 deletions(-) delete mode 100644 _includes/cockroachcloud/free-throttle.md diff --git a/_includes/cockroachcloud/free-throttle.md b/_includes/cockroachcloud/free-throttle.md deleted file mode 100644 index b86a395c0f4..00000000000 --- a/_includes/cockroachcloud/free-throttle.md +++ /dev/null @@ -1,3 +0,0 @@ -{{site.data.alerts.callout_info}} -Free clusters have heavily throttled resources and limited features. If you want a cluster with higher performance and full capabilities, you can [create a paid Serverless cluster](create-a-serverless-cluster.html) for as little as $1 per month. -{{site.data.alerts.end}} diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index 5b2e99d2128..6cb648ae9e8 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -1,11 +1,11 @@ ### Resource usage -All resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. +Most resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. ### Cluster scaling -CockroachCloud Serverless (beta) clusters scale based on your workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](architecture.html#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. +CockroachCloud Serverless (beta) clusters scale based on your workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](architecture.html#concepts) and 5 GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. -Paid clusters include additional resources with no throttling. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of free clusters. +Paid clusters include additional resources to maintain a high level of performance with larger workloads. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of free clusters. -To see a graph of your monthly resource usage and recommended budget, navigate to the [Edit cluster](#edit-your-spend-limit) page. \ No newline at end of file +To see a graph of your monthly resource usage and recommended spend limit, navigate to the [Edit cluster](#edit-your-spend-limit) page. \ No newline at end of file diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index c77e30d55cc..88aece07271 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -15,7 +15,7 @@ CockroachCloud is a fully-managed deployment of CockroachDB. This page describes ## CockroachCloud Serverless -CockroachCloud Serverless (beta) is a fully-managed, multi-tenant deployment of CockroachDB. Being familiar with the following concepts will help you understand what our Serverless architecture achieves. +CockroachCloud Serverless (beta) is a fully-managed, auto-scaling deployment of CockroachDB. Being familiar with the following concepts will help you understand what our Serverless architecture achieves. ### Concepts @@ -24,26 +24,26 @@ Term | Definition **Serverless cluster** | A cluster that’s automatically billed and scaled in response to the resources it consumes (as opposed to a dedicated cluster, which is billed and scaled statically). **Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in CockroachCloud Serverless cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many Request Units your cluster has used on the [**Cluster Overview**](serverless-cluster-management.html#view-cluster-overview) page. **Spend limit** | The maximum amount of money you indicate you want to be billed in a particular billing period for a cluster. The actual amount you are billed is based on the resources used during that billing period. A cluster's budget is allocated across storage and burst performance. -**Projected usage** | The amount of usage that Cockroach Labs projects a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because users must leave enough budget to pay for storage for the rest of the billing period. +**Projected usage** | The amount of usage that Cockroach Labs projects a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because we always reserve enough budget to pay for storage for the rest of the billing period. **Baseline performance** | The minimum compute and I/O performance that you can expect from your cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  **Burst capacity** | Burst capacity is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can “store up” Request Units that can be used for burst capacity for the rest of the month.  -**Storage** | Disk space for permanently storing data over time. All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage users see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. +**Storage** | Disk space for permanently storing data over time. All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage you see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. ### Performance -Serverless clusters scale based on your application's workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. If you set a budget for your cluster, you will have access to additional resources without throttling. +Serverless clusters scale based on your application's workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. If you set a spend limit for your cluster, you will have access to additional resources without throttling. -Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your budget, your cluster will be throttled down to baseline performance levels. If this occurs, you can opt to increase your budget, adjust your workload to stay within the current spend limit, or stay at the baseline performance level until the next month. +Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your spend limit, your cluster will be throttled down to baseline performance levels. If this occurs, you can opt to increase your spend limit, adjust your workload to stay within the current spend limit, or stay at the baseline performance level until the next month. -Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst and baseline performance. You can theoretically use up all of your budget for burst performance in the first few minutes of a cluster being created. If this happens, the cluster will be throttled back to the baseline performance and can reaccumulate burst capacity by using fewer RUs. +Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst performance. You can theoretically reach your spend limit for burst performance in the first few minutes of a cluster being created. If this happens, the cluster will be throttled back to the baseline performance and can reaccumulate burst capacity by using fewer RUs. -Serverless clusters also have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for the storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses free clusters that are inactive, which is defined by having no connection to the cluster for two consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). +Serverless clusters also have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for the storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses Serverless clusters that are inactive, which is defined by having no connection to the cluster for two consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). ### Architecture Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes cluster that hosts CockroachDB. However, unlike a self-hosted CockroachDB cluster where the SQL and KV layers run in the same process, our serverless architecture fully decouples the SQL layer from the KV layer so that both layers run in separate processes running in separate Kubernetes pods. -Perf tuning concepts +Serverless architecture
@@ -59,15 +59,15 @@ We use the Kubernetes offerings in AWS and GCP (EKS and GKE respectively) to run ### Security and Connection -CockroachCloud Dedicated clusters are single tenant. This means each new cluster gets its own project in GCP or its own account in AWS. No two Dedicated clusters share any resources with each other. Since these clusters are within their own accounts and projects, they are also in a default virtual private cloud (VPC). Users connect to a Dedicated cluster by using a load balancer in front of each region which leads to one connection string per region. Unless you set up [VPC peering](network-authorization.html#vpc-peering) or [AWS PrivateLink](network-authorization.html#aws-privatelink), your cluster will use TLS 1.2 protocol for encrypting inter-node and client-node communication. +CockroachCloud Dedicated clusters are single-tenant. This means each new cluster gets its own project in GCP or its own account in AWS. No two Dedicated clusters share any resources with each other. Since these clusters are within their own accounts and projects, they are also in a default virtual private cloud (VPC). Users connect to a Dedicated cluster by using a load balancer in front of each region which leads to one connection string per region. Unless you set up [VPC peering](network-authorization.html#vpc-peering) or [AWS PrivateLink](network-authorization.html#aws-privatelink), your cluster will use TLS 1.2 protocol for encrypting inter-node and client-node communication. CockroachCloud clusters also use digital certificates for inter-node authentication, [SSL modes](authentication.html#ssl-mode-settings) for node identity verification, and password authentication for client identity verification. See [Authentication](authentication.html) for more details. -[Backups(backups-page.html) are encrypted in S3 and GCS buckets using the cloud provider keys. +[Backups](backups-page.html) are encrypted in S3 and GCS buckets using the cloud provider keys. ### Multi-region architecture -Perf tuning concepts +Multi-region architecture
diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 8c56ea95930..bd52566f939 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -31,7 +31,7 @@ If you haven't already, Date: Wed, 8 Sep 2021 17:58:22 -0400 Subject: [PATCH 30/77] remove arch layers info and export note --- cockroachcloud/architecture.md | 4 ++++ cockroachcloud/run-bulk-operations.md | 19 ++++--------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 88aece07271..6f845328b30 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -41,7 +41,11 @@ Serverless clusters also have the ability to scale to zero and consume no resour ### Architecture +<<<<<<< Updated upstream Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes cluster that hosts CockroachDB. However, unlike a self-hosted CockroachDB cluster where the SQL and KV layers run in the same process, our serverless architecture fully decouples the SQL layer from the KV layer so that both layers run in separate processes running in separate Kubernetes pods. +======= +Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes cluster that hosts CockroachDB. +>>>>>>> Stashed changes Serverless architecture diff --git a/cockroachcloud/run-bulk-operations.md b/cockroachcloud/run-bulk-operations.md index cf4d0bf8b96..3511c098b78 100644 --- a/cockroachcloud/run-bulk-operations.md +++ b/cockroachcloud/run-bulk-operations.md @@ -13,9 +13,7 @@ CockroachCloud Serverless (beta) and CockroachCloud Dedicated offer different le - [`CREATE CHANGEFEED`](../{{site.versions["stable"]}}/create-changefeed.html) {{site.data.alerts.callout_info}} -For CockroachCloud Serverless clusters, you must have [billing information](console-access-management.html#manage-billing-for-the-organization) on file for your Organization to have access to [cloud storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html). If you don't have billing set up, [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html) is your **only available storage option** for bulk operations. - -CockroachCloud Dedicated users can run bulk operations with `userfile` or cloud storage. +For CockroachCloud Serverless clusters, you must have [billing information](console-access-management.html#manage-billing-for-the-organization) on file for your Organization to have access to [cloud storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html). If you don't have billing set up, [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html) is your **only available storage option** for bulk operations. CockroachCloud Dedicated users can run bulk operations with `userfile` or cloud storage. {{site.data.alerts.end}} For information on `userfile` commands, visit the following pages: @@ -97,16 +95,9 @@ Read the [`IMPORT`](../{{site.versions["stable"]}}/import.html) page for more ex ### Export data out of CockroachCloud -
- - -
- -
-PLACEHOLDER -
- -
+{{site.data.alerts.callout_info}} +Using `EXPORT` with `userfile` is not recommended. If you need to export data from a Serverless cluster, you can either [set up billing for your Organization](console-access-management.html#manage-billing-for-the-organization) to access cloud storage or [export data to a local CSV file](migrate-from-free-to-dedicated.html#step-1-export-data-to-a-local-csv-file). +{{site.data.alerts.end}} The following example exports the `customers` table from the `bank` database into a cloud storage bucket in CSV format: @@ -118,8 +109,6 @@ EXPORT INTO CSV Read the [`EXPORT`](../{{site.versions["stable"]}}/export.html) page for more examples and guidance. -
- ### Stream data out of your CockroachCloud cluster Core changefeeds stream row-level changes to a client until the underlying SQL connection is closed. From b5fe3aa546a542ae5cfb68fd42f4a5cdea8aae03 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Wed, 8 Sep 2021 18:02:57 -0400 Subject: [PATCH 31/77] add migrate back in --- .../migrate-from-free-to-dedicated.md | 193 ++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 cockroachcloud/migrate-from-free-to-dedicated.md diff --git a/cockroachcloud/migrate-from-free-to-dedicated.md b/cockroachcloud/migrate-from-free-to-dedicated.md new file mode 100644 index 00000000000..10c098fd02f --- /dev/null +++ b/cockroachcloud/migrate-from-free-to-dedicated.md @@ -0,0 +1,193 @@ +--- +title: Migrate from a CockroachCloud Serverless (beta) to CockroachCloud Cluster +summary: Learn how to migrate data from a CockroachCloud Serverless (beta) cluster into a paid CockroachCloud cluster. +toc: true +--- + +This page has instructions for migrating data from a CockroachCloud Serverless (beta) cluster to a paid CockroachCloud cluster, by exporting to CSV and using [`IMPORT`](../{{site.versions["stable"]}}/import.html). You may want to migrate to the paid version of CockroachCloud if: + +- You reach (or get close to reaching) the upper limit of usage of up to 1 vCPU and 5GB storage per CockroachCloud Serverless (beta) cluster. +- You want to use any of the capabilities that are not yet available in CockroachCloud Serverless (beta) clusters, like the ability to enable backups or to upload data with the `IMPORT` command. + +The steps below use sample data from the [`tpcc` workload](../{{site.versions["stable"]}}/cockroach-workload.html#workloads). + +## Before you start + +These instructions assume you already have the following: + +- A [CockroachCloud Serverless (beta) cluster](quickstart.html) from which you want to migrate data +- A [a CockroachCloud Dedicated cluster](quickstart-trial-cluster.html) + + Your first paid CockroachCloud cluster is free for a 30-day trial. + +- [Cloud storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html) + +## Step 1. Export data to a local CSV file + +In CockroachCloud Serverless (beta) clusters, all external service integrations are disabled. This means that if you want to export data, you need to use [`cockroach sql --execute`](../{{site.versions["stable"]}}/cockroach-sql.html#general) to query the data you want to export, and then pipe the data to a local file. For example: + +{% include copy-clipboard.html %} +~~~ shell +$ cockroach sql \ +--url 'postgres://:@free-tier..cockroachlabs.cloud:26257?sslmode=verify-full&sslrootcert=/cc-ca.crt&options=--cluster=' \ +--execute "SELECT * FROM tpcc.warehouse" --format=csv > /Users///warehouse.csv +~~~ + +By running the example command above, the following data is exported to the local `warehouse.csv` file: + +~~~ +w_id,w_name,w_street_1,w_street_2,w_city,w_state,w_zip,w_tax,w_ytd +0,8,17,13,11,SF,640911111,0.0806,300000.00 +~~~ + +Repeat this step for each table you want to migrate. For example, let's export one more table (`district`) from the [`tpcc` database](../{{site.versions["stable"]}}/cockroach-workload.html#workloads): + +{% include copy-clipboard.html %} +~~~ shell +$ cockroach sql \ +--url 'postgres://:@free-tier..cockroachlabs.cloud:26257?sslmode=verify-full&sslrootcert=/cc-ca.crt&options=--cluster=' \ +--execute "SELECT * FROM tpcc.district" --format=csv > /Users///district.csv +~~~ + +This will create the `district.csv` file with the following data: + +~~~ +d_id,d_w_id,d_name,d_street_1,d_street_2,d_city,d_state,d_zip,d_tax,d_ytd,d_next_o_id +1,0,9cdLXe0Yh,gLRrwsmd68P2b,ElAgrnp8ueW,NXJpBB0ObpVWo1B,QQ,640911111,0.1692,30000.00,3001 +2,0,1fcW8Rsa,CXoEzmssaF9m9cdLXe0Y,hgLRrwsmd68P2bElAgr,np8ueWNXJpBB0ObpVW,VW,902211111,0.1947,30000.00,3001 +3,0,6rumMm,p6NHnwiwKdcgp,hy3v1U5yraPx,xELo5B1fcW8RsaCXoEz,QQ,230811111,0.0651,30000.00,3001 +4,0,ssaF9m9,cdLXe0YhgLRrws,md68P2bElAgrn,p8ueWNXJpBB0ObpVW,SF,308211111,0.1455,30000.00,3001 +5,0,Kdcgphy3,v1U5yraPxxELo,5B1fcW8RsaCXoEzm,ssaF9m9cdLXe0YhgLR,CQ,308211111,0.1195,30000.00,3001 +6,0,mssaF9m9cd,LXe0YhgLRrwsmd68P,2bElAgrnp8ue,WNXJpBB0ObpVW,WM,223011111,0.0709,30000.00,3001 +7,0,zmssaF,9m9cdLXe0YhgLRrws,md68P2bElA,grnp8ueWNX,OA,264011111,0.1060,30000.00,3001 +8,0,8RsaCXoEz,mssaF9m9cdLXe0Yh,gLRrwsmd68P2bElAgrnp,8ueWNXJpBB0ObpVWo,VW,022311111,0.0173,30000.00,3001 +9,0,fcW8Rs,aCXoEzmssaF9m9,cdLXe0YhgLRrws,md68P2bElAgrnp8ue,JC,230811111,0.0755,30000.00,3001 +10,0,RsaCXoEzm,ssaF9m9cdLXe0YhgLRr,wsmd68P2bE,lAgrnp8ueWNXJpBB0Ob,PV,082911111,0.1779,30000.00,3001 +~~~ + +## Step 2. Host the files where the CockroachCloud cluster can access them + +After you've exported your Cockroach Serverless (beta) cluster data to your local machine, you now need to upload the files to a storage location where the paid CockroachCloud cluster can access them. **We recommend using [cloud storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html) or [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html).** + +In this example, we'll use Amazon S3 to host the two files (`warehouse.csv` and `district.csv`) created in [Step 1](#step-1-export-data-to-a-local-csv-file). + +## Step 3. Import the CSV + +{{site.data.alerts.callout_success}} +For best practices for optimizing import performance in CockroachDB, see [Import Performance Best Practices](../{{site.versions["stable"]}}/import-performance-best-practices.html). +{{site.data.alerts.end}} + +1. [Create the database](../{{site.versions["stable"]}}/create-database.html) you want to import the tables into. For example: + + {% include copy-clipboard.html %} + ~~~ sql + > CREATE DATABASE tpcc; + ~~~ + +1. Write an [`IMPORT`](../{{site.versions["stable"]}}/import.html) statement that matches the schema of the table data you're importing. + + {{site.data.alerts.callout_success}} + You can use the [`SHOW CREATE TABLE`](../{{site.versions["stable"]}}/show-create.html#show-the-create-table-statement-for-a-table) statement in the CockroachCloud Serverless (beta) cluster to view the `CREATE` statement for the table you're migrating. + {{site.data.alerts.end}} + + {% include v20.2/misc/csv-import-callout.md %} + + For example, to import the data from `warehouse.csv` into a `warehouse` table, use the following statement: + + {% include copy-clipboard.html %} + ~~~ sql + > IMPORT TABLE tpcc.warehouse ( + w_id INT8 NOT NULL, + w_name VARCHAR(10) NULL, + w_street_1 VARCHAR(20) NULL, + w_street_2 VARCHAR(20) NULL, + w_city VARCHAR(20) NULL, + w_state CHAR(2) NULL, + w_zip CHAR(9) NULL, + w_tax DECIMAL(4,4) NULL, + w_ytd DECIMAL(12,2) NULL, + CONSTRAINT "primary" PRIMARY KEY (w_id ASC), + FAMILY "primary" (w_id, w_name, w_street_1, w_street_2, w_city, w_state, w_zip, w_tax, w_ytd) + ) CSV DATA ('s3:///warehouse.csv?AWS_ACCESS_KEY_ID=&AWS_SECRET_ACCESS_KEY=') + WITH + skip = '1'; + ~~~ + + Notice that we used the [`skip` option](../{{site.versions["stable"]}}/import.html#skip-first-n-lines) in the above command. This is because the first line of the CSV file we created in [Step 1](#step-1-export-data-to-a-local-csv-file) is the header row, not actual data to import. For more information about the options available for `IMPORT ... CSV`, see [Import options](../{{site.versions["stable"]}}/import.html#import-options). + + ~~~ + job_id | status | fraction_completed | rows | index_entries | bytes + ---------------------+-----------+--------------------+------+---------------+-------- + 652283814057476097 | succeeded | 1 | 1 | 0 | 53 + (1 row) + ~~~ + + {{site.data.alerts.callout_info}} + To import data into an existing table, use [`IMPORT INTO`](../{{site.versions["stable"]}}/import-into.html). + {{site.data.alerts.end}} + +1. Repeat the above for each CSV file you want to import. For example, let's import the second file (`district.csv`) we created earlier: + + {% include copy-clipboard.html %} + ~~~ sql + > IMPORT TABLE tpcc.district ( + d_id INT8 NOT NULL, + d_w_id INT8 NOT NULL, + d_name VARCHAR(10) NULL, + d_street_1 VARCHAR(20) NULL, + d_street_2 VARCHAR(20) NULL, + d_city VARCHAR(20) NULL, + d_state CHAR(2) NULL, + d_zip CHAR(9) NULL, + d_tax DECIMAL(4,4) NULL, + d_ytd DECIMAL(12,2) NULL, + d_next_o_id INT8 NULL, + CONSTRAINT "primary" PRIMARY KEY (d_w_id ASC, d_id ASC), + FAMILY "primary" (d_id, d_w_id, d_name, d_street_1, d_street_2, d_city, d_state, d_zip, d_tax, d_ytd, d_next_o_id) + ) CSV DATA ('s3:///district.csv?AWS_ACCESS_KEY_ID=&AWS_SECRET_ACCESS_KEY=') + WITH + skip = '1'; + ~~~ + + ~~~ + job_id | status | fraction_completed | rows | index_entries | bytes + ---------------------+-----------+--------------------+------+---------------+-------- + 652285202857820161 | succeeded | 1 | 10 | 0 | 1017 + (1 row) + ~~~ + +1. _(Optional)_ To verify that the two tables were imported, use [`SHOW TABLES`](../{{site.versions["stable"]}}/show-tables.html): + + {% include copy-clipboard.html %} + ~~~ sql + > SHOW TABLES FROM tpcc; + ~~~ + + ~~~ + schema_name | table_name | type | owner | estimated_row_count + --------------+------------+-------+--------+---------------------- + public | district | table | lauren | 10 + public | warehouse | table | lauren | 1 + (2 rows) + ~~~ + +## Step 4. Add any foreign key relationships + +Once all of the tables you want to migrate have been imported into the CockroachCloud cluster, add the [foreign key](../{{site.versions["stable"]}}/foreign-key.html) relationships. To do this, use [`ALTER TABLE ... ADD CONSTRAINT`](../{{site.versions["stable"]}}/add-constraint.html). For example: + +{% include copy-clipboard.html %} +~~~ sql +> ALTER TABLE tpcc.district ADD CONSTRAINT fk_d_w_id_ref_warehouse FOREIGN KEY (d_w_id) REFERENCES tpcc.warehouse(w_id); +~~~ + +~~~ +ALTER TABLE +~~~ + +## See also + +- [`IMPORT`](../{{site.versions["stable"]}}/import.html) +- [Migrate from CSV](../{{site.versions["stable"]}}/migrate-from-csv.html) +- [Import Performance Best Practices](../{{site.versions["stable"]}}/import-performance-best-practices.html) +- [Use the Built-in SQL Client](../{{site.versions["stable"]}}/cockroach-sql.html) +- [Other Cockroach Commands](../{{site.versions["stable"]}}/cockroach-commands.html) From a39dd6bde762e00a1eab32995c4ae1070c0c4cef Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Thu, 9 Sep 2021 14:01:51 -0400 Subject: [PATCH 32/77] migration page updates --- cockroachcloud/migrate-from-free-to-dedicated.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/cockroachcloud/migrate-from-free-to-dedicated.md b/cockroachcloud/migrate-from-free-to-dedicated.md index 10c098fd02f..a163332ebde 100644 --- a/cockroachcloud/migrate-from-free-to-dedicated.md +++ b/cockroachcloud/migrate-from-free-to-dedicated.md @@ -1,13 +1,10 @@ --- -title: Migrate from a CockroachCloud Serverless (beta) to CockroachCloud Cluster -summary: Learn how to migrate data from a CockroachCloud Serverless (beta) cluster into a paid CockroachCloud cluster. +title: Migrate from a CockroachCloud Serverless (beta) to CockroachCloud Dedicated Cluster +summary: Learn how to migrate data from a CockroachCloud Serverless (beta) cluster into a CockroachCloud Dedicated cluster. toc: true --- -This page has instructions for migrating data from a CockroachCloud Serverless (beta) cluster to a paid CockroachCloud cluster, by exporting to CSV and using [`IMPORT`](../{{site.versions["stable"]}}/import.html). You may want to migrate to the paid version of CockroachCloud if: - -- You reach (or get close to reaching) the upper limit of usage of up to 1 vCPU and 5GB storage per CockroachCloud Serverless (beta) cluster. -- You want to use any of the capabilities that are not yet available in CockroachCloud Serverless (beta) clusters, like the ability to enable backups or to upload data with the `IMPORT` command. +This page has instructions for migrating data from a CockroachCloud Serverless (beta) cluster to a CockroachCloud Dedicated cluster, by exporting to CSV and using [`IMPORT`](../{{site.versions["stable"]}}/import.html). You may want to migrate to CockroachCloud Dedicated if you want a single-tenant cluster with no shared resources. The steps below use sample data from the [`tpcc` workload](../{{site.versions["stable"]}}/cockroach-workload.html#workloads). @@ -18,7 +15,7 @@ These instructions assume you already have the following: - A [CockroachCloud Serverless (beta) cluster](quickstart.html) from which you want to migrate data - A [a CockroachCloud Dedicated cluster](quickstart-trial-cluster.html) - Your first paid CockroachCloud cluster is free for a 30-day trial. + Your first CockroachCloud Dedicated cluster is free for a 30-day trial. - [Cloud storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html) @@ -173,7 +170,7 @@ For best practices for optimizing import performance in CockroachDB, see [Import ## Step 4. Add any foreign key relationships -Once all of the tables you want to migrate have been imported into the CockroachCloud cluster, add the [foreign key](../{{site.versions["stable"]}}/foreign-key.html) relationships. To do this, use [`ALTER TABLE ... ADD CONSTRAINT`](../{{site.versions["stable"]}}/add-constraint.html). For example: +Once all of the tables you want to migrate have been imported into the Dedicated cluster, add the [foreign key](../{{site.versions["stable"]}}/foreign-key.html) relationships. To do this, use [`ALTER TABLE ... ADD CONSTRAINT`](../{{site.versions["stable"]}}/add-constraint.html). For example: {% include copy-clipboard.html %} ~~~ sql From 233e5ee935a4fdd6c609f3320de3ba0452ff6acd Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Tue, 14 Sep 2021 15:20:39 -0400 Subject: [PATCH 33/77] replace cert expire --- _includes/cockroachcloud/cc-cert-expire.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 _includes/cockroachcloud/cc-cert-expire.md diff --git a/_includes/cockroachcloud/cc-cert-expire.md b/_includes/cockroachcloud/cc-cert-expire.md new file mode 100644 index 00000000000..839499c5f2d --- /dev/null +++ b/_includes/cockroachcloud/cc-cert-expire.md @@ -0,0 +1,3 @@ +{{site.data.alerts.callout_danger}} +We have updated the CA certificate used by {{ site.data.products.serverless }} clusters. If you downloaded this certificate prior to June 17, 2021, **you must download the updated certificate by September 30, 2021** to avoid disruptions to your service. +{{site.data.alerts.end}} \ No newline at end of file From 7b2047c93f9406ed884bdbbdfc00b252ce1904de Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Tue, 14 Sep 2021 15:26:57 -0400 Subject: [PATCH 34/77] link --- cockroachcloud/troubleshooting-page.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cockroachcloud/troubleshooting-page.md b/cockroachcloud/troubleshooting-page.md index 5cc97d7abec..51c919f444b 100644 --- a/cockroachcloud/troubleshooting-page.md +++ b/cockroachcloud/troubleshooting-page.md @@ -7,7 +7,7 @@ toc: true This page describes common {{ site.data.products.db }} errors and their solutions. {{site.data.alerts.callout_danger}} -We have updated the CA certificate used by {{ site.data.products.serverless }} clusters. If you downloaded this certificate prior to June 17, 2021, **you must [download the updated certificate](connect-to-a-free-cluster.html#step-2-connect-to-your-cluster) by September 30, 2021** to avoid disruptions to your service. +We have updated the CA certificate used by {{ site.data.products.serverless }} clusters. If you downloaded this certificate prior to June 17, 2021, **you must [download the updated certificate](connect-to-a-serverless-cluster.html#step-2-connect-to-your-cluster) by September 30, 2021** to avoid disruptions to your service. {{site.data.alerts.end}} ## Connection errors From 390d6cbc4d6960219d928a33055a6a69e4277d33 Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Tue, 14 Sep 2021 17:36:46 -0400 Subject: [PATCH 35/77] remaining paul reviews --- .../cockroachcloud/planning-your-serverless-cluster.md | 6 +++--- cockroachcloud/architecture.md | 6 +++--- cockroachcloud/create-a-serverless-cluster.md | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index 6cb648ae9e8..f6b861846ef 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -1,11 +1,11 @@ ### Resource usage -Most resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. +Most resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost a large number of RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. ### Cluster scaling -CockroachCloud Serverless (beta) clusters scale based on your workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](architecture.html#concepts) and 5 GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. +CockroachCloud Serverless (beta) clusters scale based on your workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](architecture.html#concepts) per month and 5 GiB of storage. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. -Paid clusters include additional resources to maintain a high level of performance with larger workloads. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of free clusters. +You can set your spend limit higher to maintain a high level of performance with larger workloads. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of free clusters. To see a graph of your monthly resource usage and recommended spend limit, navigate to the [Edit cluster](#edit-your-spend-limit) page. \ No newline at end of file diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 6f845328b30..f44b56cee20 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -22,7 +22,7 @@ CockroachCloud Serverless (beta) is a fully-managed, auto-scaling deployment of Term | Definition -----|----------- **Serverless cluster** | A cluster that’s automatically billed and scaled in response to the resources it consumes (as opposed to a dedicated cluster, which is billed and scaled statically). -**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in CockroachCloud Serverless cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost 100 RUs. You can see how many Request Units your cluster has used on the [**Cluster Overview**](serverless-cluster-management.html#view-cluster-overview) page. +**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in CockroachCloud Serverless cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost a large number RUs. You can see how many Request Units your cluster has used on the [**Cluster Overview**](serverless-cluster-management.html#view-cluster-overview) page. **Spend limit** | The maximum amount of money you indicate you want to be billed in a particular billing period for a cluster. The actual amount you are billed is based on the resources used during that billing period. A cluster's budget is allocated across storage and burst performance. **Projected usage** | The amount of usage that Cockroach Labs projects a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because we always reserve enough budget to pay for storage for the rest of the billing period. **Baseline performance** | The minimum compute and I/O performance that you can expect from your cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  @@ -31,9 +31,9 @@ Term | Definition ### Performance -Serverless clusters scale based on your application's workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. If you set a spend limit for your cluster, you will have access to additional resources without throttling. +Serverless clusters scale based on your application's workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](#concepts) per month and 5 GiB of storage. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. If you set a spend limit for your cluster, you will have access to additional resources without throttling. -Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your spend limit, your cluster will be throttled down to baseline performance levels. If this occurs, you can opt to increase your spend limit, adjust your workload to stay within the current spend limit, or stay at the baseline performance level until the next month. +Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for burst performance, and vice versa. If you hit your spend limit, your cluster will be throttled down to baseline performance levels. If this occurs, you can opt to increase your spend limit, adjust your workload to stay within the current spend limit, or stay at the baseline performance level until the next month. Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst performance. You can theoretically reach your spend limit for burst performance in the first few minutes of a cluster being created. If this happens, the cluster will be throttled back to the baseline performance and can reaccumulate burst capacity by using fewer RUs. diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index bd52566f939..9c8ce6319b0 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -31,7 +31,7 @@ If you haven't already,
Date: Wed, 15 Sep 2021 10:54:23 -0400 Subject: [PATCH 37/77] draft --- _includes/sidebar-data-cockroachcloud.json | 29 ++++++++++--- cockroachcloud/serverless-benchmarking.md | 40 ++++++++++++++++++ .../cockroachcloud/serverless-performance.png | Bin 0 -> 103407 bytes 3 files changed, 63 insertions(+), 6 deletions(-) create mode 100644 cockroachcloud/serverless-benchmarking.md create mode 100644 images/cockroachcloud/serverless-performance.png diff --git a/_includes/sidebar-data-cockroachcloud.json b/_includes/sidebar-data-cockroachcloud.json index b231a43178f..3351c7933f8 100644 --- a/_includes/sidebar-data-cockroachcloud.json +++ b/_includes/sidebar-data-cockroachcloud.json @@ -96,6 +96,12 @@ "/{{site.versions["stable"]}}/migration-overview.html" ] }, + { + "title": "Migrate from Serverless to Dedicated", + "urls": [ + "/cockroachcloud/migrate-from-free-to-dedicated.html" + ] + }, { "title": "Migrate from Oracle", "urls": [ @@ -134,12 +140,23 @@ } ] }, - { - "title": "Tune Performance", - "urls": [ - "/{{site.versions["stable"]}}/performance-best-practices-overview.html" - ] - }, + { + "title": "Perfomance", + "items": [ + { + "title": "Tune Performance", + "urls": [ + "/{{site.versions["stable"]}}/performance-best-practices-overview.html" + ] + }, + { + "title": "Serverless Performance Benchmarking", + "urls": [ + "/cockroachcloud/serverless-benchmarking.html" + ] + } + ] + }, { "title": "Move into Production", "urls": [ diff --git a/cockroachcloud/serverless-benchmarking.md b/cockroachcloud/serverless-benchmarking.md new file mode 100644 index 00000000000..3cc015171ee --- /dev/null +++ b/cockroachcloud/serverless-benchmarking.md @@ -0,0 +1,40 @@ +--- +title: Serverless Performance Benchmarking +summary: Learn more about CockroachCloud Serverless performance benchmarks +toc: true +--- + +This page describes {{ site.data.products.serverless }} performance benchmarking with a KV workload. + +## Topology + +The host cluster used was an AWS 3-node cluster using r5.4xlarge (the same type used for production host clusters). We can't create GCP +clusters right now so can’t test there. + +The workload client was cockroach workload run kv + +The first parameter that was varied between runs was executing the client +remotely from the cluster (40 ms latency) vs executing it locally on the proxy pod + +I also tried running the workload with different % of reads vs writes. I tried 0% reads, 95% reads and 100% reads. + +Also varried the number of concurrent connections from the client to the server. I tried 1, 12 and 72. + +Also tried the test against low trust (limit 0.3 vCPUs and 1.5GB mem) and high trust (limit 4 vCPUs and 8GB mem) pools to see the effect of the pod limits. The usage limits are not implemented yet so we can’t test. + +The RU usage was determined by monitoring the metrics provided by each of the host cluster nodes. These get updated every 10 seconds. + +## Results + +The first observation that came out of the test is that there is an idle RU consumption that is between 2 and 11 RUs/sec and varies slightly each period. Andy mentioned that this is a known problem that we will try to fix. I tried to adjust the numbers a bit based on that but it is hard to be exact. + +The overall test results show a fairly stable cost of approx 1.15 RU per KV95 operation. Measured separately, a read costs 1.13 RU while a write costs 1.65 RU. +I tried adjusting the number slightly, accounting for the phantom continuous RU use. This only matters under light load were it is a bit more significant. + +Running the workload client locally (on the proxy pod) against a low trust pod using 12 connections (the default) yields 717 KV95 operations/sec +which seems to be the maximum that a low trust pod can handle. So 12 connections gets the maximum ops/sec possible and increasing the connections doesn't increase the ops/sec further. +Same workload ran remotely (~40 ms latency) with 12 connections, yields only 318 ops/sec and requires several times more connections to get to the maximum of 709 ops/sec. + +A high trust pod seems to be reaching a maximum of around 1080 KV95 ops/sec. Similarly to the low trust case, the remote workload only gets to 300 ops/sec with 12 connections and requires few times more to get to the maximum. Locally, 12 connections are close to saturating the pod and yield 960 KV95 ops/sec. The overall limitation in this case may be due to the KV limits set as host cluster settings per tenant. + +Serverless performance \ No newline at end of file diff --git a/images/cockroachcloud/serverless-performance.png b/images/cockroachcloud/serverless-performance.png new file mode 100644 index 0000000000000000000000000000000000000000..36cb9ce986de5ee6582b3d6d0fd9428d5551f505 GIT binary patch literal 103407 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 literal 0 HcmV?d00001 From bff32aec95b9d859e713342251e281cd5468ee4d Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Thu, 16 Sep 2021 11:47:31 -0400 Subject: [PATCH 38/77] link hash fixes --- cockroachcloud/create-your-cluster.md | 2 +- ...thon-to-do-app-with-flask-kubernetes-and-cockroachcloud.md | 2 +- cockroachcloud/network-authorization.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cockroachcloud/create-your-cluster.md b/cockroachcloud/create-your-cluster.md index a34da68f95c..a864bfbed68 100644 --- a/cockroachcloud/create-your-cluster.md +++ b/cockroachcloud/create-your-cluster.md @@ -126,7 +126,7 @@ You can use [VPC peering](network-authorization.html#vpc-peering) to connect you {{site.data.alerts.end}} You will be billed monthly. 1. Add your preferred [payment method](console-access-management.html#manage-billing-for-the-organization). -1. [If applicable](frequently-asked-questions.html#how-do-cockroachcloud-free-trials-work), the 30-day trial code is pre-applied to your cluster. +1. [If applicable](frequently-asked-questions.html#how-do-cockroachcloud-dedicated-free-trials-work), the 30-day trial code is pre-applied to your cluster. {{site.data.alerts.callout_info}} Make sure that you [delete your trial cluster](cluster-management.html#delete-cluster) before the trial expires. Your credit card will be charged after the trial ends. You can check the validity of the code on the [Billing](console-access-management.html#manage-billing-for-the-organization) page. {{site.data.alerts.end}} diff --git a/cockroachcloud/deploy-a-python-to-do-app-with-flask-kubernetes-and-cockroachcloud.md b/cockroachcloud/deploy-a-python-to-do-app-with-flask-kubernetes-and-cockroachcloud.md index 065bacbaf65..27e258349d3 100644 --- a/cockroachcloud/deploy-a-python-to-do-app-with-flask-kubernetes-and-cockroachcloud.md +++ b/cockroachcloud/deploy-a-python-to-do-app-with-flask-kubernetes-and-cockroachcloud.md @@ -74,7 +74,7 @@ Once you are [logged in](https://cockroachlabs.cloud/), you can use the Console Edit the connection string to include your SQL user's password, then save the string in an accessible location since you'll need it to use the built-in SQL client later. -### Step 4. Create the {{ site.data.products.dedicated }} database +### Step 4. Create the {{ site.data.products.db }} database On your local workstation's terminal: diff --git a/cockroachcloud/network-authorization.md b/cockroachcloud/network-authorization.md index fb8e17ed05e..065a504efc7 100644 --- a/cockroachcloud/network-authorization.md +++ b/cockroachcloud/network-authorization.md @@ -25,8 +25,8 @@ If you select GCP as your cloud provider while [creating your {{ site.data.produ Setting up a VPC peering connection between your {{ site.data.products.dedicated }} cluster and GCP application is a two-part process: -1. [Configure the IP range and size while creating the {{ site.data.products.dedicated }} cluster](#configure-the-ip-range-and-size-while-creating-your-cockroachcloud-cluster) -1. [Configure a peering connection after creating the cluster](#establish-a-vpc-peering-connection-after-creating-your-cockroachcloud-cluster) +1. [Configure the IP range and size while creating the {{ site.data.products.dedicated }} cluster](#configure-the-ip-range-and-size-while-creating-your-cockroachcloud-dedicated-cluster) +1. [Configure a peering connection after creating the cluster](#establish-a-vpc-peering-connection-after-creating-your-cockroachcloud-dedicated-cluster) {{site.data.alerts.callout_info}} Self-service VPC peering setup is not supported for {{ 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](create-your-cluster.html) with VPC peering enabled, then [export your data](backups-page.html) from the old cluster to the new cluster. If your cluster was deployed on or after March 5, 2020, it will be locked into {{ site.data.products.dedicated }}'s default IP range (`172.28.0.0/14`) unless you explicitly configured a different IP range during cluster creation. From 1d8256b967475dcc87b7932ca1433e51698f29d7 Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Thu, 16 Sep 2021 12:01:12 -0400 Subject: [PATCH 39/77] added variable names --- .../planning-your-serverless-cluster.md | 4 +- cockroachcloud/architecture.md | 30 ++++++------- cockroachcloud/cluster-management.md | 6 +-- cockroachcloud/create-a-serverless-cluster.md | 16 +++---- .../serverless-cluster-management.md | 12 +++--- cockroachcloud/serverless-faqs.md | 42 +++++++++---------- 6 files changed, 53 insertions(+), 57 deletions(-) diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index f6b861846ef..77322606325 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -1,10 +1,10 @@ ### Resource usage -Most resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost a large number of RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. +Most resource usage in {{ site.data.products.serverless }} is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost a large number of RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. ### Cluster scaling -CockroachCloud Serverless (beta) clusters scale based on your workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](architecture.html#concepts) per month and 5 GiB of storage. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. +{{ site.data.products.serverless }} clusters scale based on your workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](architecture.html#concepts) per month and 5 GiB of storage. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. You can set your spend limit higher to maintain a high level of performance with larger workloads. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of free clusters. diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index f44b56cee20..ae432e48c83 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -4,30 +4,30 @@ summary: Learn more about CockroachCloud architecture toc: true --- -CockroachCloud is a fully-managed deployment of CockroachDB. This page describes CockroachCloud's architecture and how it relates to CockroachDB. +{{ site.data.products.db }} is a fully-managed deployment of CockroachDB. This page describes {{ site.data.products.db }}'s architecture and how it relates to CockroachDB.
- - + +
-## CockroachCloud Serverless +## {{ site.data.products.serverless-plan }} -CockroachCloud Serverless (beta) is a fully-managed, auto-scaling deployment of CockroachDB. Being familiar with the following concepts will help you understand what our Serverless architecture achieves. +{{ site.data.products.serverless }} is a fully-managed, auto-scaling deployment of CockroachDB. Being familiar with the following concepts will help you understand what our Serverless architecture achieves. ### Concepts Term | Definition -----|----------- **Serverless cluster** | A cluster that’s automatically billed and scaled in response to the resources it consumes (as opposed to a dedicated cluster, which is billed and scaled statically). -**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in CockroachCloud Serverless cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost a large number RUs. You can see how many Request Units your cluster has used on the [**Cluster Overview**](serverless-cluster-management.html#view-cluster-overview) page. +**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in {{ site.data.products.serverless-plan }} cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost a large number RUs. You can see how many Request Units your cluster has used on the [**Cluster Overview**](serverless-cluster-management.html#view-cluster-overview) page. **Spend limit** | The maximum amount of money you indicate you want to be billed in a particular billing period for a cluster. The actual amount you are billed is based on the resources used during that billing period. A cluster's budget is allocated across storage and burst performance. **Projected usage** | The amount of usage that Cockroach Labs projects a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because we always reserve enough budget to pay for storage for the rest of the billing period. **Baseline performance** | The minimum compute and I/O performance that you can expect from your cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  **Burst capacity** | Burst capacity is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can “store up” Request Units that can be used for burst capacity for the rest of the month.  -**Storage** | Disk space for permanently storing data over time. All data in CockroachCloud Serverless (beta) is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage you see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. +**Storage** | Disk space for permanently storing data over time. All data in {{ site.data.products.serverless }} is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage you see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. ### Performance @@ -37,15 +37,11 @@ Depending on your workload, your budget will be used differently. For example, a Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst performance. You can theoretically reach your spend limit for burst performance in the first few minutes of a cluster being created. If this happens, the cluster will be throttled back to the baseline performance and can reaccumulate burst capacity by using fewer RUs. -Serverless clusters also have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for the storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses Serverless clusters that are inactive, which is defined by having no connection to the cluster for two consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). +Serverless clusters also have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for the storage your app is using, but not for Request Units. To avoid wasted resources, {{ site.data.products.db }} automatically pauses Serverless clusters that are inactive, which is defined by having no connection to the cluster for two consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). ### Architecture -<<<<<<< Updated upstream -Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes cluster that hosts CockroachDB. However, unlike a self-hosted CockroachDB cluster where the SQL and KV layers run in the same process, our serverless architecture fully decouples the SQL layer from the KV layer so that both layers run in separate processes running in separate Kubernetes pods. -======= Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes cluster that hosts CockroachDB. ->>>>>>> Stashed changes Serverless architecture @@ -53,19 +49,19 @@ Traffic comes in from the public internet and is routed by the cloud provider’
-## CockroachCloud Dedicated +## {{ site.data.products.dedicated }} -If you need a single-tenant cluster with no shared resources, we recommend CockroachCloud Dedicated. CockroachCloud Dedicated supports single and multi-region clusters in Amazon Web Services and Google Cloud Platform. +If you need a single-tenant cluster with no shared resources, we recommend {{ site.data.products.dedicated }}. {{ site.data.products.dedicated }} supports single and multi-region clusters in Amazon Web Services and Google Cloud Platform. ### Hardware -We use the Kubernetes offerings in AWS and GCP (EKS and GKE respectively) to run CockroachCloud offerings. GCP clusters use [N1 standard](https://cloud.google.com/compute/docs/machine-types#n1_machine_types) machine types and [Persistent Disk storage](https://cloud.google.com/compute/docs/disks#pdspecs). AWS clusters use [M5 instance types](https://aws.amazon.com/ec2/instance-types/m5/#Product_Details) and [Elastic Block Store (EBS)](https://aws.amazon.com/ebs/features/). Each single region cluster has a minimum of three nodes spread across three availability zones (AZ) in a cloud provider region. Multi-region clusters are similar to single-region clusters, with nodes spread across three or more AZs in each region. +We use the Kubernetes offerings in AWS and GCP (EKS and GKE respectively) to run {{ site.data.products.db }} offerings. GCP clusters use [N1 standard](https://cloud.google.com/compute/docs/machine-types#n1_machine_types) machine types and [Persistent Disk storage](https://cloud.google.com/compute/docs/disks#pdspecs). AWS clusters use [M5 instance types](https://aws.amazon.com/ec2/instance-types/m5/#Product_Details) and [Elastic Block Store (EBS)](https://aws.amazon.com/ebs/features/). Each single region cluster has a minimum of three nodes spread across three availability zones (AZ) in a cloud provider region. Multi-region clusters are similar to single-region clusters, with nodes spread across three or more AZs in each region. ### Security and Connection -CockroachCloud Dedicated clusters are single-tenant. This means each new cluster gets its own project in GCP or its own account in AWS. No two Dedicated clusters share any resources with each other. Since these clusters are within their own accounts and projects, they are also in a default virtual private cloud (VPC). Users connect to a Dedicated cluster by using a load balancer in front of each region which leads to one connection string per region. Unless you set up [VPC peering](network-authorization.html#vpc-peering) or [AWS PrivateLink](network-authorization.html#aws-privatelink), your cluster will use TLS 1.2 protocol for encrypting inter-node and client-node communication. +{{ site.data.products.dedicated }} clusters are single-tenant. This means each new cluster gets its own project in GCP or its own account in AWS. No two Dedicated clusters share any resources with each other. Since these clusters are within their own accounts and projects, they are also in a default virtual private cloud (VPC). Users connect to a Dedicated cluster by using a load balancer in front of each region which leads to one connection string per region. Unless you set up [VPC peering](network-authorization.html#vpc-peering) or [AWS PrivateLink](network-authorization.html#aws-privatelink), your cluster will use TLS 1.2 protocol for encrypting inter-node and client-node communication. -CockroachCloud clusters also use digital certificates for inter-node authentication, [SSL modes](authentication.html#ssl-mode-settings) for node identity verification, and password authentication for client identity verification. See [Authentication](authentication.html) for more details. +{{ site.data.products.db }} clusters also use digital certificates for inter-node authentication, [SSL modes](authentication.html#ssl-mode-settings) for node identity verification, and password authentication for client identity verification. See [Authentication](authentication.html) for more details. [Backups](backups-page.html) are encrypted in S3 and GCS buckets using the cloud provider keys. diff --git a/cockroachcloud/cluster-management.md b/cockroachcloud/cluster-management.md index a611cae38d4..2c4c0d213bf 100644 --- a/cockroachcloud/cluster-management.md +++ b/cockroachcloud/cluster-management.md @@ -5,15 +5,15 @@ toc: true --- This page describes the cluster management and cluster deletion workflows. ## Planning your cluster -Before making any changes to your cluster's nodes or regions, review our requirements and recommendations for CockroachCloud cluster configuration. +Before making any changes to your cluster's nodes or regions, review our requirements and recommendations for {{ site.data.products.db }} cluster configuration. {% include cockroachcloud/planning-your-cluster.md %} diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 9c8ce6319b0..fff253b7105 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -5,21 +5,21 @@ toc: true --- -This page walks you through the process of creating a cluster using CockroachCloud Serverless (beta). Note that only [CockroachCloud Console Administrators](console-access-management.html#console-admin) can create clusters. If you are a Developer and need to create a cluster, contact your CockroachCloud Administrator. +This page walks you through the process of creating a cluster using {{ site.data.products.serverless }}. Note that only [{{ site.data.products.db }} Console Administrators](console-access-management.html#console-admin) can create clusters. If you are a Developer and need to create a cluster, contact your {{ site.data.products.db }} Administrator. {% include cockroachcloud/free-limitations.md %} ## Before you begin -If you haven't already, sign up for a CockroachCloud account. +If you haven't already, sign up for a {{ site.data.products.db }} account. ## Step 1. Start the cluster creation process -1. [Log in](https://cockroachlabs.cloud/) to your CockroachCloud account. +1. [Log in](https://cockroachlabs.cloud/) to your {{ site.data.products.db }} account. 1. If there are multiple [organizations](console-access-management.html#organization) in your account, select the correct organization in the top right corner. 1. On the **Overview** page, click **Create Cluster**. @@ -79,14 +79,14 @@ Your cluster will be created in approximately 20-30 minutes. ## What's next -- [Connect to your CockroachCloud Serverless (beta) cluster](connect-to-a-serverless-cluster.html) +- [Connect to your {{ site.data.products.serverless }} cluster](connect-to-a-serverless-cluster.html) - [Authorize users](user-authorization.html) ## Usage examples -Free CockroachCloud Serverless (beta) clusters can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). +Free {{ site.data.products.serverless }} clusters can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). -For examples of applications that use free CockroachCloud clusters, check out the following [Hack the North](https://hackthenorth.com/) projects: +For examples of applications that use free {{ site.data.products.db }} clusters, check out the following [Hack the North](https://hackthenorth.com/) projects: - [flock](https://devpost.com/software/flock-figure-out-what-film-to-watch-with-friends) - [mntr.tech](https://devpost.com/software/mntr-tech) diff --git a/cockroachcloud/serverless-cluster-management.md b/cockroachcloud/serverless-cluster-management.md index 40180aa11aa..a80ded9bb88 100644 --- a/cockroachcloud/serverless-cluster-management.md +++ b/cockroachcloud/serverless-cluster-management.md @@ -5,8 +5,8 @@ toc: true --- This page describes the cluster management and cluster deletion workflows. @@ -17,7 +17,7 @@ This page describes the cluster management and cluster deletion workflows. ## View Clusters page -On [logging in to the CockroachCloud Console](https://cockroachlabs.cloud/), the **Clusters** page is displayed. The **Clusters** page provides a high-level view of your clusters. +On [logging in to the {{ site.data.products.db }} Console](https://cockroachlabs.cloud/), the **Clusters** page is displayed. The **Clusters** page provides a high-level view of your clusters. For each cluster, the following details display: @@ -33,7 +33,7 @@ To view and manage a specific cluster, click the name of the cluster. The [**Ove ## View cluster overview -The **Overview** page displays details about the selected CockroachCloud Serverless (beta) cluster: +The **Overview** page displays details about the selected {{ site.data.products.serverless }} cluster: - The **Plan** that the cluster was created with - The cluster's **Cloud** provider @@ -61,7 +61,7 @@ You can edit your spend limit from the **Overview** page. The change in your spe ## Restore data from a backup -Cockroach Labs runs full backups daily and incremental backups hourly for every CockroachCloud cluster. The full backups are retained for 30 days and incremental backups for 7 days. +Cockroach Labs runs full backups daily and incremental backups hourly for every {{ site.data.products.db }} cluster. The full backups are retained for 30 days and incremental backups for 7 days. {{site.data.alerts.callout_info}} All databases are not backed up at the same time. Each database is backed up every hour based on the time of creation. For larger databases, you might see an hourly CPU spike while the database is being backed up. @@ -78,7 +78,7 @@ Deleting a cluster will delete all cluster data. {{site.data.alerts.end}} {{site.data.alerts.callout_info}} -Free CockroachCloud clusters are subject to deletion after 6 months of no activity. +Free {{ site.data.products.serverless-plan }} clusters are subject to deletion after 6 months of no activity. {{site.data.alerts.end}} Proceed with the following steps only if you are sure you want to delete a cluster: diff --git a/cockroachcloud/serverless-faqs.md b/cockroachcloud/serverless-faqs.md index 739ea77a996..e88e8caa073 100644 --- a/cockroachcloud/serverless-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -4,38 +4,38 @@ summary: Get answers to frequently asked questions about CockroachCloud Serverle toc: true --- -This page answers the frequently asked questions about CockroachCloud Serverless (beta) and CockroachCloud Dedicated. +This page answers the frequently asked questions about {{ site.data.products.serverless }} and {{ site.data.products.dedicated }}. ## General -### What is CockroachCloud Serverless (beta)? +### What is {{ site.data.products.serverless }}? -CockroachCloud Serverless (beta) delivers free and paid CockroachDB clusters for you and your organization. It is a managed instance of CockroachDB that lets you start using your database immediately and auto-scales based on your application traffic. +{{ site.data.products.serverless }} delivers free and paid CockroachDB clusters for you and your organization. It is a managed instance of CockroachDB that lets you start using your database immediately and auto-scales based on your application traffic. -### How do I start using CockroachCloud Serverless (beta)? +### How do I start using {{ site.data.products.serverless }}? -To get started with CockroachCloud Serverless (beta), sign up for a CockroachCloud account, click **Create Cluster**, then click **Create your free cluster**. Your cluster will be ready in 20-30 seconds. For more information, see [**Quickstart**](quickstart.html). +To get started with {{ site.data.products.serverless }}, sign up for a {{ site.data.products.db }} account, click **Create Cluster**, then click **Create your free cluster**. Your cluster will be ready in 20-30 seconds. For more information, see [**Quickstart**](quickstart.html). -### What are the usage limits of Cockroach Cloud Serverless (beta)? +### What are the usage limits of {{ site.data.products.serverless }}? Free clusters have a limit of 250M Request Units per month and 5GB of storage. Paid clusters have access to the same resources with no limitations in addition to the amount you pay for. ### What is a Request Unit? -All resource usage in CockroachCloud Serverless (beta) is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes might cost 100 RUs. +All resource usage in {{ site.data.products.serverless }} is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes might cost 100 RUs. -### Do I have to pay for CockroachCloud Serverless (beta)? +### Do I have to pay for {{ site.data.products.serverless }}? No, you can create a Serverless cluster that is free forever. If you choose to set a spend limit for your cluster, you will only be charged for the resources you use up to your spend limit. -### What can I use CockroachCloud Serverless (beta) for? +### What can I use {{ site.data.products.serverless }} for? -Free CockroachCloud Serverless (beta) clusters can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). +Free {{ site.data.products.serverless }} clusters can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). For examples of applications that use free clusters, check out the following [Hack the North](https://hackthenorth.com/) projects: @@ -47,7 +47,7 @@ Paid Serverless clusters include additional resources with no throttling. They c ### How do I connect to my cluster? -To connect to a cluster, download the CA certificate, and then generate a connection string or parameters. You can use this information to connect to your cluster through the CockroachDB SQL client or a Postgres-compatible driver or ORM. For more details, see [Connect to Your CockroachCloud Cluster](connect-to-your-cluster.html). +To connect to a cluster, download the CA certificate, and then generate a connection string or parameters. You can use this information to connect to your cluster through the CockroachDB SQL client or a Postgres-compatible driver or ORM. For more details, see [Connect to Your {{ site.data.products.serverless }} Cluster](connect-to-a-serverless-cluster.html). ## Beta release @@ -61,9 +61,9 @@ You can submit feedback or log any bugs you find through [this survey](https://f Yes, we use separate certificate authorities for each cluster, and all connections to the cluster over the internet use TLS 1.2. -### Is encryption-at-rest enabled on CockroachCloud Serverless (beta)? +### Is encryption-at-rest enabled on {{ site.data.products.serverless }}? -Yes. All data on CockroachCloud is encrypted-at-rest using the tools provided by the cloud provider that your cluster is running in. +Yes. All data on {{ site.data.products.db }} is encrypted-at-rest using the tools provided by the cloud provider that your cluster is running in. - Data stored in clusters running in GCP are encrypted-at-rest using [persistent disk encryption](https://cloud.google.com/compute/docs/disks#pd_encryption). - Data stored in clusters running in AWS are encrypted-at-rest using [EBS encryption-at-rest](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html). @@ -72,11 +72,11 @@ Because we are relying on the cloud provider's encryption implementation (as not ### Is my cluster isolated? Does it share resources with any other clusters? -CockroachCloud Serverless (beta) is a multi-tenant offering and resources are shared between clusters. +{{ site.data.products.serverless }} is a multi-tenant offering and resources are shared between clusters. ## Cluster maintenance -### Can I upgrade my free CockroachCloud Serverless (beta) cluster? +### Can I upgrade my free {{ site.data.products.serverless }} cluster? Yes, you can upgrade your cluster through the Console by [increasing your spend limit](serverless-cluster-management.html#edit-your-spend-limit) and entering [billing information](console-access-management.html#manage-billing-for-the-organization) if you haven't already. @@ -84,7 +84,7 @@ Yes, you can upgrade your cluster through the Console by [increasing your spend ### Do you have a UI? How can I see details? -Yes, you can view and your clusters in the [CockroachCloud Console](https://cockroachlabs.cloud/). However, some [DB Console](../{{site.versions["stable"]}}/ui-overview.html) pages are not currently available for CockroachCloud Serverless (beta) clusters. +Yes, you can view and your clusters in the [{{ site.data.products.db }} Console](https://cockroachlabs.cloud/). However, some [DB Console](../{{site.versions["stable"]}}/ui-overview.html) pages are not currently available for {{ site.data.products.serverless }} clusters. ### Can I run bulk operations such as `IMPORT` and `EXPORT` from my cluster? @@ -92,8 +92,8 @@ Yes, see [Run Bulk Operations](run-bulk-operations.html) for more information. I ### Is change data capture available to me? -Yes, CockroachCloud Serverless clusters have access to [Core Changefeeds](run-bulk-operations.html#stream-data-out-of-your-cockroachcloud-cluster). +Yes, {{ site.data.products.serverless-plan }} clusters have access to [Core Changefeeds](run-bulk-operations.html#stream-data-out-of-your-cockroachcloud-cluster). -### Can I backup my CockroachCloud Serverless (beta) cluster? Does Cockroach Labs take backups of my cluster? +### Can I backup my {{ site.data.products.serverless }} cluster? Does Cockroach Labs take backups of my cluster? -Cockroach Labs takes full cluster backups of all CockroachCloud Serverless (beta) clusters for our own purposes. If you don't have [billing information on file](console-access-management.html#manage-billing-for-the-organization) for your Organization, you can [take backups locally](run-bulk-operations.html#backup-and-restore-data) to `userfile`. Once you enter billing information, even if you don't set a spend limit, you can also [backup to cloud storage](run-bulk-operations.html#backup-and-restore-data). +Cockroach Labs takes full cluster backups of all {{ site.data.products.serverless }} clusters for our own purposes. If you don't have [billing information on file](console-access-management.html#manage-billing-for-the-organization) for your Organization, you can [take backups locally](run-bulk-operations.html#backup-and-restore-data) to `userfile`. Once you enter billing information, even if you don't set a spend limit, you can also [backup to cloud storage](run-bulk-operations.html#backup-and-restore-data). From e1129d901346410861c909b762c6cbfa5bc4272e Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Fri, 17 Sep 2021 18:26:10 -0400 Subject: [PATCH 40/77] benchmarking draft --- cockroachcloud/serverless-benchmarking.md | 38 +++++++++++------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/cockroachcloud/serverless-benchmarking.md b/cockroachcloud/serverless-benchmarking.md index 3cc015171ee..568938589b9 100644 --- a/cockroachcloud/serverless-benchmarking.md +++ b/cockroachcloud/serverless-benchmarking.md @@ -6,35 +6,35 @@ toc: true This page describes {{ site.data.products.serverless }} performance benchmarking with a KV workload. -## Topology +## Introduction -The host cluster used was an AWS 3-node cluster using r5.4xlarge (the same type used for production host clusters). We can't create GCP -clusters right now so can’t test there. +{{ site.data.products.serverless }} is a fully-managed, auto-scaling deployment of CockroachDB. This page describes what you can expect from the free {{ site.data.products.serverless-plan }} baseline performance of 100 RU/s. Results for [burst performance](architecture.html#concepts) and Serverless clusters with larger budgets are coming soon. For more information about how {{ site.data.products.serverless-plan }} scales based on your workload, see [Architecture](architecture.html#performance). -The workload client was cockroach workload run kv +### What are RUs? -The first parameter that was varied between runs was executing the client -remotely from the cluster (40 ms latency) vs executing it locally on the proxy pod +Most resource usage in {{ site.data.products.serverless }} is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost a large number of RUs. You can see how many request units your cluster has used on the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page. -I also tried running the workload with different % of reads vs writes. I tried 0% reads, 95% reads and 100% reads. +### What is KV 95? -Also varried the number of concurrent connections from the client to the server. I tried 1, 12 and 72. +KV 95 is a simple benchmark that tests linear scaling by [running a workload](../{{site.versions["stable"]}}/cockroach-workload.html#workloads) that is 95% point reads and 5% point writes. Reads and writes are distributed to keys spread uniformly across the cluster. -Also tried the test against low trust (limit 0.3 vCPUs and 1.5GB mem) and high trust (limit 4 vCPUs and 8GB mem) pools to see the effect of the pod limits. The usage limits are not implemented yet so we can’t test. +## Baseline Performance -The RU usage was determined by monitoring the metrics provided by each of the host cluster nodes. These get updated every 10 seconds. +### Topology -## Results +Baseline performance was benchmarked for a free {{ site.data.products.serverless-plan }} cluster hosted by an AWS 3-node cluster using `r5.4xlarge` machine type. -The first observation that came out of the test is that there is an idle RU consumption that is between 2 and 11 RUs/sec and varies slightly each period. Andy mentioned that this is a known problem that we will try to fix. I tried to adjust the numbers a bit based on that but it is hard to be exact. +The RU usage was determined by monitoring the metrics provided by each of the host cluster nodes, which get updated every 10 seconds. -The overall test results show a fairly stable cost of approx 1.15 RU per KV95 operation. Measured separately, a read costs 1.13 RU while a write costs 1.65 RU. -I tried adjusting the number slightly, accounting for the phantom continuous RU use. This only matters under light load were it is a bit more significant. +High vs low trust. -Running the workload client locally (on the proxy pod) against a low trust pod using 12 connections (the default) yields 717 KV95 operations/sec -which seems to be the maximum that a low trust pod can handle. So 12 connections gets the maximum ops/sec possible and increasing the connections doesn't increase the ops/sec further. -Same workload ran remotely (~40 ms latency) with 12 connections, yields only 318 ops/sec and requires several times more connections to get to the maximum of 709 ops/sec. +### Results -A high trust pod seems to be reaching a maximum of around 1080 KV95 ops/sec. Similarly to the low trust case, the remote workload only gets to 300 ops/sec with 12 connections and requires few times more to get to the maximum. Locally, 12 connections are close to saturating the pod and yield 960 KV95 ops/sec. The overall limitation in this case may be due to the KV limits set as host cluster settings per tenant. +Placeholder text -Serverless performance \ No newline at end of file +Serverless performance + +## Learn more + +- See [CockroachDB Performance](../{{site.versions["stable"]}}/performance.html) for more information about CockroachDB performance benchmarking. +- See [SQL Performance Best Practices](../{{site.versions["stable"]}}/performance-best-practices-overview.html) for guidance on tuning real workloads. \ No newline at end of file From 3b210312abe619589210ff966ab08a97e1664f9a Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Mon, 20 Sep 2021 11:21:37 -0400 Subject: [PATCH 41/77] remove variable from front matter --- cockroachcloud/run-bulk-operations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cockroachcloud/run-bulk-operations.md b/cockroachcloud/run-bulk-operations.md index 2545e5d5440..89ea05f0763 100644 --- a/cockroachcloud/run-bulk-operations.md +++ b/cockroachcloud/run-bulk-operations.md @@ -1,6 +1,6 @@ --- title: Run Bulk Operations from Your Cluster -summary: Run backups, restores, and imports from your {{ site.data.products.db }} cluster. +summary: Run backups, restores, and imports from your CockroachCloud cluster. toc: true --- From dbf2959c89acd69bea2fd0ec40941acd035560b6 Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Mon, 20 Sep 2021 17:49:09 -0400 Subject: [PATCH 42/77] product name update and more front matter edits --- _data/products.yml | 8 ++++---- cockroachcloud/alerts-page.md | 2 +- cockroachcloud/authentication.md | 2 +- cockroachcloud/create-an-account.md | 4 ++-- cockroachcloud/production-checklist.md | 2 +- cockroachcloud/quickstart-trial-cluster.md | 2 +- cockroachcloud/security-overview.md | 2 +- cockroachcloud/stream-changefeed-to-snowflake-aws.md | 2 +- cockroachcloud/user-authorization.md | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/_data/products.yml b/_data/products.yml index d92fe41b05e..dc5afc535fe 100644 --- a/_data/products.yml +++ b/_data/products.yml @@ -1,12 +1,12 @@ -serverless: CockroachCloud Serverless (beta) +serverless: CockroachDB Serverless (beta) # to be CockroachCloud Serverless then CockroachDB Serverless (beta) -serverless-plan: CockroachCloud Serverless #i.e. "1. Choose the **CockroachCloud Free** plan." +serverless-plan: CockroachDB Serverless #i.e. "1. Choose the **CockroachCloud Free** plan." # to be CockroachCloud Serverless -dedicated: CockroachCloud Dedicated +dedicated: CockroachDB Dedicated # to be CockroachDB Managed core: Core #stays the same enterprise: Enterprise # to be CockroachDB Self-Hosted -db: CockroachCloud #i.e. "Sign up for a CockroachCloud account" +db: CockroachDB Cloud #i.e. "Sign up for a CockroachCloud account" # to be CockroachDB \ No newline at end of file diff --git a/cockroachcloud/alerts-page.md b/cockroachcloud/alerts-page.md index 9e8ed52361c..90edb045a57 100644 --- a/cockroachcloud/alerts-page.md +++ b/cockroachcloud/alerts-page.md @@ -1,6 +1,6 @@ --- title: Alerts Page -summary: The Alerts page allows you to toggle {{ site.data.products.db }} alerts and view alert history. +summary: The Alerts page allows you to toggle CockroachCloud alerts and view alert history. toc: true --- diff --git a/cockroachcloud/authentication.md b/cockroachcloud/authentication.md index 737d5762907..ec88606e092 100644 --- a/cockroachcloud/authentication.md +++ b/cockroachcloud/authentication.md @@ -1,6 +1,6 @@ --- title: Authentication -summary: Learn about the authentication features for {{ site.data.products.db }} clusters. +summary: Learn about the authentication features for CockroachCloud clusters. toc: true --- diff --git a/cockroachcloud/create-an-account.md b/cockroachcloud/create-an-account.md index 7905458a96e..50ccaea47e1 100644 --- a/cockroachcloud/create-an-account.md +++ b/cockroachcloud/create-an-account.md @@ -1,6 +1,6 @@ --- -title: Create a {{ site.data.products.db }} account -summary: Learn how to create and delete a {{ site.data.products.db }} account +title: Create a CockroachCloud account +summary: Learn how to create and delete a CockroachCloud account toc: true --- diff --git a/cockroachcloud/production-checklist.md b/cockroachcloud/production-checklist.md index 84c0dd898d4..f9df8ae0fce 100644 --- a/cockroachcloud/production-checklist.md +++ b/cockroachcloud/production-checklist.md @@ -1,6 +1,6 @@ --- title: Production Checklist -summary: Learn how to move from testing to production on your {{ site.data.products.dedicated }} cluster. +summary: Learn how to move from testing to production on your CockroachDB Dedicated cluster. toc: true --- diff --git a/cockroachcloud/quickstart-trial-cluster.md b/cockroachcloud/quickstart-trial-cluster.md index 500179df9d6..0260e5abf93 100644 --- a/cockroachcloud/quickstart-trial-cluster.md +++ b/cockroachcloud/quickstart-trial-cluster.md @@ -1,6 +1,6 @@ --- title: Quickstart with CockroachCloud -summary: Learn how to create and use your {{ site.data.products.db }} cluster. +summary: Learn how to create and use your CockroachCloud cluster. toc: true --- diff --git a/cockroachcloud/security-overview.md b/cockroachcloud/security-overview.md index 0517bed4dc4..987adf57fb8 100644 --- a/cockroachcloud/security-overview.md +++ b/cockroachcloud/security-overview.md @@ -1,6 +1,6 @@ --- title: CockroachCloud Security -summary: Learn about the authentication, encryption, authorization, and audit log features for {{ site.data.products.db }} clusters. +summary: Learn about the authentication, encryption, authorization, and audit log features for CockroachCloud clusters. toc: true --- diff --git a/cockroachcloud/stream-changefeed-to-snowflake-aws.md b/cockroachcloud/stream-changefeed-to-snowflake-aws.md index 017932c1c19..563cf75b59b 100644 --- a/cockroachcloud/stream-changefeed-to-snowflake-aws.md +++ b/cockroachcloud/stream-changefeed-to-snowflake-aws.md @@ -1,6 +1,6 @@ --- title: Stream a Changefeed to Snowflake -summary: Use a {{ site.data.products.db }} cluster to stream changefeed messages to a Snowflake cluster. +summary: Use a CockroachCloud cluster to stream changefeed messages to a Snowflake cluster. toc: true --- diff --git a/cockroachcloud/user-authorization.md b/cockroachcloud/user-authorization.md index 98e6d23033a..4d1156ff7d1 100644 --- a/cockroachcloud/user-authorization.md +++ b/cockroachcloud/user-authorization.md @@ -1,6 +1,6 @@ --- title: User Authorization -summary: Learn about the user authorization features for CockroachCloud CockroachDB clusters. +summary: Learn about the user authorization features for CockroachCloud clusters. toc: true --- From 15c354f662fd42f5b884e4601b19af706382072e Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Mon, 20 Sep 2021 17:50:08 -0400 Subject: [PATCH 43/77] change file name from free to serverless --- ...ee-to-dedicated.md => migrate-from-serverless-to-dedicated.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename cockroachcloud/{migrate-from-free-to-dedicated.md => migrate-from-serverless-to-dedicated.md} (100%) diff --git a/cockroachcloud/migrate-from-free-to-dedicated.md b/cockroachcloud/migrate-from-serverless-to-dedicated.md similarity index 100% rename from cockroachcloud/migrate-from-free-to-dedicated.md rename to cockroachcloud/migrate-from-serverless-to-dedicated.md From f5b0dc417cfab10ee9e0a78b285ac0101f5dcffe Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Mon, 20 Sep 2021 18:16:26 -0400 Subject: [PATCH 44/77] move to CockroachDB Cloud --- _data/products.yml | 15 +++++++------- _data/releases-cc.yml | 2 +- _includes/footer.html | 2 +- _includes/main-menu-contained-dropdown.html | 8 ++++---- _includes/marketing-menu.html | 4 ++-- _includes/menu-main-product.html | 4 ++-- _includes/sidebar-data-cockroachcloud.json | 6 +++--- _layouts/homepage.html | 8 ++++---- cockroachcloud/alerts-page.md | 2 +- cockroachcloud/architecture.md | 4 ++-- cockroachcloud/authentication.md | 2 +- cockroachcloud/backups-page.md | 2 +- cockroachcloud/cluster-management.md | 2 +- .../connect-to-a-serverless-cluster.md | 2 +- cockroachcloud/connect-to-your-cluster.md | 2 +- cockroachcloud/create-a-serverless-cluster.md | 4 ++-- cockroachcloud/create-an-account.md | 4 ++-- cockroachcloud/create-your-cluster.md | 4 ++-- ...ith-flask-kubernetes-and-cockroachcloud.md | 4 ++-- cockroachcloud/frequently-asked-questions.md | 4 ++-- cockroachcloud/hello-world-example-apps.md | 2 +- cockroachcloud/index.md | 20 +++++++++---------- .../migrate-from-serverless-to-dedicated.md | 4 ++-- cockroachcloud/quickstart-trial-cluster.md | 4 ++-- cockroachcloud/quickstart.md | 4 ++-- cockroachcloud/run-bulk-operations.md | 2 +- cockroachcloud/security-overview.md | 4 ++-- cockroachcloud/serverless-benchmarking.md | 2 +- cockroachcloud/serverless-faqs.md | 4 ++-- cockroachcloud/statements-page.md | 4 ++-- .../stream-changefeed-to-snowflake-aws.md | 2 +- cockroachcloud/troubleshooting-page.md | 2 +- cockroachcloud/upgrade-policy.md | 2 +- cockroachcloud/user-authorization.md | 2 +- .../lib/jekyll/algolia/hooks.rb | 2 +- releases/index-cockroachcloud.md | 8 ++++---- ...ld-a-python-app-with-cockroachdb-django.md | 2 +- .../connect-to-the-database-cockroachcloud.md | 4 ++-- v20.2/deploy-app-gcr.md | 4 ++-- v20.2/index.md | 2 +- v20.2/multi-region-deployment.md | 2 +- v20.2/multi-region-overview.md | 2 +- ...ld-a-python-app-with-cockroachdb-django.md | 2 +- .../connect-to-the-database-cockroachcloud.md | 4 ++-- v21.1/deploy-app-gcr.md | 4 ++-- v21.1/index.md | 2 +- v21.1/movr-flask-deployment.md | 2 +- v21.1/movr-flask-overview.md | 2 +- ...ld-a-python-app-with-cockroachdb-django.md | 2 +- .../connect-to-the-database-cockroachcloud.md | 4 ++-- v21.2/deploy-app-gcr.md | 4 ++-- v21.2/index.md | 2 +- v21.2/movr-flask-deployment.md | 2 +- v21.2/movr-flask-overview.md | 2 +- 54 files changed, 100 insertions(+), 101 deletions(-) diff --git a/_data/products.yml b/_data/products.yml index dc5afc535fe..7f75902412e 100644 --- a/_data/products.yml +++ b/_data/products.yml @@ -1,12 +1,11 @@ serverless: CockroachDB Serverless (beta) -# to be CockroachCloud Serverless then CockroachDB Serverless (beta) -serverless-plan: CockroachDB Serverless #i.e. "1. Choose the **CockroachCloud Free** plan." +# to be CockroachDB Serverless (beta) +serverless-plan: CockroachDB Serverless #i.e. "1. Choose the **CockroachDB Serverless** plan." # to be CockroachCloud Serverless dedicated: CockroachDB Dedicated # to be CockroachDB Managed -core: Core -#stays the same -enterprise: Enterprise -# to be CockroachDB Self-Hosted -db: CockroachDB Cloud #i.e. "Sign up for a CockroachCloud account" -# to be CockroachDB \ No newline at end of file +core: CockroachDB Self-Hosted +# tbd +enterprise: CockroachDB Self-Hosted +# tbd +db: CockroachDB Cloud #i.e. "Sign up for a CockroachDB Cloud account", tbd \ No newline at end of file diff --git a/_data/releases-cc.yml b/_data/releases-cc.yml index 55090d5aa47..cf0b8fbacee 100644 --- a/_data/releases-cc.yml +++ b/_data/releases-cc.yml @@ -1,4 +1,4 @@ -- title: CockroachCloud releases +- title: CockroachDB Cloud releases releases: - name: September 2021 link: cockroachcloud-09072021 diff --git a/_includes/footer.html b/_includes/footer.html index e0d9a9c834d..b325fdf0fa7 100755 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -10,7 +10,7 @@
  • CockroachCloudCockroachDB Cloud
  • diff --git a/_includes/main-menu-contained-dropdown.html b/_includes/main-menu-contained-dropdown.html index 9a926200f41..4344a6a6f39 100644 --- a/_includes/main-menu-contained-dropdown.html +++ b/_includes/main-menu-contained-dropdown.html @@ -113,12 +113,12 @@
    - CockroachCloud + CockroachDB Cloud
    -

    Explore CockroachCloud +

    Explore CockroachDB Cloud

    @@ -349,12 +349,12 @@
    - CockroachCloud + CockroachDB Cloud
    -

    Explore CockroachCloud +

    Explore CockroachDB Cloud

    diff --git a/_includes/marketing-menu.html b/_includes/marketing-menu.html index 6779068ff29..f922e2db5f9 100755 --- a/_includes/marketing-menu.html +++ b/_includes/marketing-menu.html @@ -143,12 +143,12 @@
    CockroachDB
    - CockroachCloud + CockroachDB Cloud
    - Explore CockroachCloud Explore CockroachDB Cloud diff --git a/_includes/menu-main-product.html b/_includes/menu-main-product.html index 95d4d3936fd..2f9bc330b8d 100644 --- a/_includes/menu-main-product.html +++ b/_includes/menu-main-product.html @@ -24,12 +24,12 @@
    CockroachDB
    - CockroachCloud + CockroachDB Cloud
    - Explore CockroachCloud + Explore CockroachDB Cloud diff --git a/_includes/sidebar-data-cockroachcloud.json b/_includes/sidebar-data-cockroachcloud.json index 3351c7933f8..0a5349b9842 100644 --- a/_includes/sidebar-data-cockroachcloud.json +++ b/_includes/sidebar-data-cockroachcloud.json @@ -1,5 +1,5 @@ { - "title": "CockroachCloud", + "title": "CockroachDB Cloud", "is_top_level": true, "urls": [ "/cockroachcloud/index.html" @@ -15,7 +15,7 @@ ] }, { - "title": "Create a CockroachCloud Cluster", + "title": "Create a CockroachDB Cloud Cluster", "urls": [ "/cockroachcloud/create-a-serverless-cluster.html", "/cockroachcloud/create-your-cluster.html" @@ -263,7 +263,7 @@ "title": "Tutorials", "items": [ { - "title": "Deploy a Python To-Do App with Flask, Kubernetes, and CockroachCloud", + "title": "Deploy a Python To-Do App with Flask, Kubernetes, and CockroachDB Cloud", "urls": [ "/cockroachcloud/deploy-a-python-to-do-app-with-flask-kubernetes-and-cockroachcloud.html" ] diff --git a/_layouts/homepage.html b/_layouts/homepage.html index ba5534e05c1..c4fa193032e 100644 --- a/_layouts/homepage.html +++ b/_layouts/homepage.html @@ -50,9 +50,9 @@

    Learn more @@ -93,7 +93,7 @@

    Develop

    Deploy

  • + + Where: + - `` is the SQL user. By default, this is your {{ site.data.products.db }} account username. + - `` is the password for the SQL user. The password will be shown only once in the **Connection info** dialog after creating the cluster. If you forgot your password you can reset it by going to the [**SQL Users** page](user-authorization.html). + - `` is the hostname of the serverless cluster. + - `` is the short name of your cluster plus the tenant ID. For example, `funny-skunk-3`. The `` is used to identify your tenant cluster on a multitenant host. + + You can find these settings in the **Connection parameters** tab of the **Connection info** dialog. \ No newline at end of file diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index 05f1e413122..60d45d2fdab 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -19,16 +19,22 @@ This page guides you through the quickest way to get started with CockroachDB by 1. [Log in](https://cockroachlabs.cloud/) to your {{ site.data.products.db }} account. 1. On the **Clusters** page, click **Create Cluster**. 1. On the **Create your cluster** page, select **{{ site.data.products.serverless-plan }}**. - + Unless you change your monthly budget, this cluster will be free forever. - + 1. Click **Create cluster**. - Your cluster will be created in approximately 20-30 seconds and the **Connect** dialog will display. + Your cluster will be created in approximately 20-30 seconds and the **Connection info** dialog will display. + +1. Click the **Connection string** tab in the **Connection info** dialog and copy the connection string in step 2 to a secure location. + + {{site.data.alerts.callout_danger}} + This connection string contains your password, which will be provided only once. Save it in a secure place (e.g., in a password manager) to connect to your cluster in the future. If you forget your password, you can reset it by going to the [**SQL Users** page](user-authorization.html). + {{site.data.alerts.end}} ## Step 2. Choose your OS -Select **Mac**, **Linux**, or **Windows** to adjust the commands used in the next steps accordingly. +The **Connection info** dialog shows information about how to connect to your cluster for the client OS. Select your OS from the **Choose your OS** drop down, then select **Mac**, **Linux**, or **Windows** in the tabs below.
    @@ -38,7 +44,7 @@ Select **Mac**, **Linux**, or **Windows** to adjust the commands used in the nex ## Step 3. Install CockroachDB -If you have not done so already, run the first command in the dialog to install the CockroachDB binary and copy it into the `PATH`: +If you have not done so already, install the CockroachDB binary and copy it into the `PATH`. In a terminal run the command in step 1 of the **Command Line** tab of the **Connection info** dialog:
    {% include_cached copy-clipboard.html %} @@ -57,13 +63,23 @@ curl https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.
    {% include_cached copy-clipboard.html %} ~~~ shell -$ErrorActionPreference = "Stop"; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; mkdir -p $env:appdata/cockroach; Invoke-WebRequest -Uri https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.windows-6.2-amd64.zip -OutFile cockroach.zip; Expand-Archive -Path cockroach.zip; Copy-Item "cockroach/cockroach-{{ page.release_info.version }}.windows-6.2-amd64/cockroach.exe" -Destination $env:appdata/cockroach; $Env:PATH += ";$env:appdata/cockroach" +$ErrorActionPreference = "Stop"; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; +$ProgressPreference = 'SilentlyContinue'; +# Use Windows New-Item with Force +$null = New-Item -Type Directory -Force $env:appdata/cockroach; +Invoke-WebRequest -Uri https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.windows-6.2-amd64.zip -OutFile cockroach.zip; +Expand-Archive -Path cockroach.zip; +# Add force if the cockroach binary is already there +Copy-Item -Force "cockroach/cockroach-{{ page.release_info.version }}.windows-6.2-amd64/cockroach.exe" -Destination $env:appdata/cockroach; +$Env:PATH += ";$env:appdata/cockroach"; +# Add command to append the cockroach binary path on every shell. Powershell equivalent of `.bashrc` +Add-Content -Path C:\Users\$env:UserName\Documents\WindowsPowerShell\profile.ps1 -Value '$Env:PATH += ";$env:appdata/cockroach"' ~~~
    - + ## Step 4. Download the CA certificate -In your terminal, run the second command from the dialog to create a new `certs` directory on your local machine and download the CA certificate to that directory: +In your terminal, download the CA certificate. Run the command in step 2 of the **Command Line** tab in the **Connection info** dialog:
    {% include_cached copy-clipboard.html %} @@ -74,7 +90,7 @@ curl --create-dirs -o ~/.postgresql/root.crt -O https://cockroachlabs.cloud/clus Your `cert` file will be downloaded to `~/.postgres/root.crt`.
    -
    +
    {% include_cached copy-clipboard.html %} ~~~ shell curl --create-dirs -o ~/.postgresql/root.crt -O https://cockroachlabs.cloud/clusters//cert @@ -92,20 +108,20 @@ mkdir -p $env:appdata\.postgresql\; Invoke-WebRequest -Uri https://cockroachlabs Your `cert` file will be downloaded to `%APPDATA%/.postgres/root.crt`.
    +Where `` is the ID of the cluster. You can find the cluster ID in step 2 of the **Command Line** tab in the **Connect** dialog. + +{{site.data.alerts.callout_info}} +The `~/.postgres/root.crt` (Mac and Linux) or `%APPDATA%/.postgres/root.crt` is the [default location for CA certificates](https://www.postgresql.org/docs/current/libpq-ssl.html) when using PostgreSQL drivers and ORMs. +{{site.data.alerts.end}} + ## Step 5. Use the built-in SQL client -1. In your terminal, run the connection string provided in the third step of the dialog to connect to CockroachDB's built-in SQL client. Your username and cluster name are pre-populated for you in the dialog. +Connect to your cluster using the CockroachDB SQL command-line client. - {{site.data.alerts.callout_danger}} - This connection string contains your password, which will be provided only once. Save it in a secure place (e.g., in a password manager) to connect to your cluster in the future. If you forget your password, you can reset it by going to the [**SQL Users** page](user-authorization.html). - {{site.data.alerts.end}} +1. In your terminal, run the connection string provided in step 3 of the **Command Line** tab in the **Connection info** dialog. Your username, password, host, and cluster name are pre-populated for you in the dialog. {% include cockroachcloud/sql-connection-string-free.md %} - -1. Enter the SQL user's password and hit enter. - - {% include cockroachcloud/postgresql-special-characters.md %} - + A welcome message displays: ~~~ @@ -152,6 +168,15 @@ Your `cert` file will be downloaded to `%APPDATA%/.postgres/root.crt`. > \q ~~~ +## Next steps + +You've successfully created your {{ site.data.products.serverless }} cluster, connected to it using the SQL client, and run some basic SQL statements. + +- Build a Hello World app with in [Go](../{{site.versions["stable"]}}/hello-world-go-pgx.html), [Java](../{{site.versions["stable"]}}/hello-world-java-jdbc.html), [Node.js](../{{site.versions["stable"]}}/hello-world-node-postgres.html), or [Python](../{{site.versions["stable"]}}/hello-world-python-sqlalchemy.html). +- [Learn CockroachDB SQL](learn-cockroachdb-sql.html). +- [Create and manage SQL users](user-authorization.html). +- Explore our [sample apps](../{{site.versions["stable"]}}/hello-world-example-apps.html) for examples on how to build simple "Hello World" applications using {{ site.data.products.serverless }}. + ## Learn more This page outlines the quickest way to get started with CockroachDB. For information on other options that are available when creating a {{ site.data.products.serverless }} cluster, see the following: @@ -160,9 +185,3 @@ This page outlines the quickest way to get started with CockroachDB. For informa - To connect to a free cluster with other options (e.g., a different SQL user) and connection methods (with an application or [CockroachDB compatible tool](../stable/third-party-database-tools.html)), see [Connect to a {{ site.data.products.serverless }} Cluster](connect-to-a-serverless-cluster.html). - To watch a video walkthrough of connecting to a cluster, see [How to connect to {{ site.data.products.db }} and Import Data](https://www.youtube.com/watch?v=XJZD1rorEQE). -Next steps: - -- Use the [built-in SQL client](../{{site.versions["stable"]}}/cockroach-sql.html) to connect to your cluster and [learn CockroachDB SQL](learn-cockroachdb-sql.html). -- [Create and manage SQL users](user-authorization.html). -- Build a ["Hello World" app with the Django framework](../{{site.versions["stable"]}}/build-a-python-app-with-cockroachdb-django.html), or [install a client driver](../{{site.versions["stable"]}}/install-client-drivers.html) for your favorite language. -- Explore our [sample apps](../{{site.versions["stable"]}}/hello-world-example-apps.html) for examples on how to build simple "Hello World" applications using {{ site.data.products.serverless }}. From af4a4546f97ba17069de3bb148ac5ee4e4710ae3 Mon Sep 17 00:00:00 2001 From: ianjevans Date: Wed, 6 Oct 2021 12:39:52 -0700 Subject: [PATCH 54/77] Fixing include link that was breaking all the things. --- _includes/cockroachcloud/sql-connection-string-free.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/cockroachcloud/sql-connection-string-free.md b/_includes/cockroachcloud/sql-connection-string-free.md index b11df967a5d..eb7b642c20a 100644 --- a/_includes/cockroachcloud/sql-connection-string-free.md +++ b/_includes/cockroachcloud/sql-connection-string-free.md @@ -21,7 +21,7 @@ Where: - `` is the SQL user. By default, this is your {{ site.data.products.db }} account username. - - `` is the password for the SQL user. The password will be shown only once in the **Connection info** dialog after creating the cluster. If you forgot your password you can reset it by going to the [**SQL Users** page](user-authorization.html). + - `` is the password for the SQL user. The password will be shown only once in the **Connection info** dialog after creating the cluster. - `` is the hostname of the serverless cluster. - `` is the short name of your cluster plus the tenant ID. For example, `funny-skunk-3`. The `` is used to identify your tenant cluster on a multitenant host. From 1571693d60d7323b719615c703068cce109d5284 Mon Sep 17 00:00:00 2001 From: ianjevans Date: Thu, 7 Oct 2021 17:15:02 -0700 Subject: [PATCH 55/77] Refactor of the Quickstart based on Jesse's feedback. --- cockroachcloud/quickstart.md | 501 +++++++++++++++++++++++++++++------ 1 file changed, 424 insertions(+), 77 deletions(-) diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index 60d45d2fdab..ba416de1636 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -11,6 +11,17 @@ toc: true This page guides you through the quickest way to get started with CockroachDB by setting up a {{ site.data.products.serverless }} cluster with the default options. For information on how to create a {{ site.data.products.db }} cluster with other options, see the [Learn more](#learn-more) section. +Choose the level of detail you want for this page. + +- Simple: Basic instructions to create a cluster and connect to it using a SQL client. +- Advanced: More detailed explanations and instructions on creating and connecting to the cluster with a client driver. + +
    + + +
    + + {% include cockroachcloud/free-limitations.md %} ## Step 1. Create a free cluster @@ -29,12 +40,12 @@ This page guides you through the quickest way to get started with CockroachDB by 1. Click the **Connection string** tab in the **Connection info** dialog and copy the connection string in step 2 to a secure location. {{site.data.alerts.callout_danger}} - This connection string contains your password, which will be provided only once. Save it in a secure place (e.g., in a password manager) to connect to your cluster in the future. If you forget your password, you can reset it by going to the [**SQL Users** page](user-authorization.html). + The connection string in the command is pre-populated with your username, cluster name, and other details, including your password. Your password, in particular, will be provided only once. Save it in a secure place (we recommend a password manager) to connect to your cluster in the future. If you forget your password, you can reset it by going to the [**SQL Users** page](user-authorization.html). {{site.data.alerts.end}} -## Step 2. Choose your OS +## Step 2. Connect to the cluster -The **Connection info** dialog shows information about how to connect to your cluster for the client OS. Select your OS from the **Choose your OS** drop down, then select **Mac**, **Linux**, or **Windows** in the tabs below. +The **Connection info** dialog shows information about how to connect to your cluster for the client OS.
    @@ -42,83 +53,107 @@ The **Connection info** dialog shows information about how to connect to your cl
    -## Step 3. Install CockroachDB +
    +1. In the **Connection info** dialog choose your OS. +1. Open a terminal on your local machine. +1. Run the commands in each step of the **Command Line** tab of the **Connection info** dialog. + 1. Run the command in step 1 to install the CockroachDB binary and add it to your OS's `PATH`. + 1. Run the command in step 2 to download the CA certificate to your local machine. + 1. Run the command in step 3 to connect to your cluster using the SQL client. + +You will see a welcome message when you've successfully connected to your cluster: + +~~~ text +# +# Welcome to the CockroachDB SQL shell. +# All statements must be terminated by a semicolon. +# To exit, type: \q. +# +~~~ -If you have not done so already, install the CockroachDB binary and copy it into the `PATH`. In a terminal run the command in step 1 of the **Command Line** tab of the **Connection info** dialog: +
    +
    {% comment %}Need to add this manual break to force Jekyll to render the next section correctly {% endcomment %} +
    -
    -{% include_cached copy-clipboard.html %} -~~~ shell -curl https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.darwin-10.9-amd64.tgz | tar -xJ && cp -i cockroach-{{ page.release_info.version }}.darwin-10.9-amd64/cockroach /usr/local/bin/ -~~~ -
    +1. In the **Connection info** dialog choose your OS. -
    -{% include_cached copy-clipboard.html %} -~~~ shell -curl https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.linux-amd64.tgz | tar -xz && sudo cp -i cockroach-{{ page.release_info.version }}.linux-amd64/cockroach /usr/local/bin/ -~~~ -
    +1. Open a terminal on your local machine. -
    -{% include_cached copy-clipboard.html %} -~~~ shell -$ErrorActionPreference = "Stop"; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; -$ProgressPreference = 'SilentlyContinue'; -# Use Windows New-Item with Force -$null = New-Item -Type Directory -Force $env:appdata/cockroach; -Invoke-WebRequest -Uri https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.windows-6.2-amd64.zip -OutFile cockroach.zip; -Expand-Archive -Path cockroach.zip; -# Add force if the cockroach binary is already there -Copy-Item -Force "cockroach/cockroach-{{ page.release_info.version }}.windows-6.2-amd64/cockroach.exe" -Destination $env:appdata/cockroach; -$Env:PATH += ";$env:appdata/cockroach"; -# Add command to append the cockroach binary path on every shell. Powershell equivalent of `.bashrc` -Add-Content -Path C:\Users\$env:UserName\Documents\WindowsPowerShell\profile.ps1 -Value '$Env:PATH += ";$env:appdata/cockroach"' -~~~ -
    +1. Run the command in step 1 of the **Command Line** tab of the **Connection info** dialog to install the CockroachDB binary and add it to your OS's `PATH`. -## Step 4. Download the CA certificate + We've included the command here for convenience: -In your terminal, download the CA certificate. Run the command in step 2 of the **Command Line** tab in the **Connection info** dialog: +
    + {% include_cached copy-clipboard.html %} + ~~~ shell + curl https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.darwin-10.9-amd64.tgz | tar -xJ && cp -i cockroach-{{ page.release_info.version }}.darwin-10.9-amd64/cockroach /usr/local/bin/ + ~~~ +
    -
    -{% include_cached copy-clipboard.html %} -~~~ shell -curl --create-dirs -o ~/.postgresql/root.crt -O https://cockroachlabs.cloud/clusters//cert -~~~ +
    + {% include_cached copy-clipboard.html %} + ~~~ shell + curl https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.linux-amd64.tgz | tar -xz && sudo cp -i cockroach-{{ page.release_info.version }}.linux-amd64/cockroach /usr/local/bin/ + ~~~ +
    -Your `cert` file will be downloaded to `~/.postgres/root.crt`. -
    +
    + {% include_cached copy-clipboard.html %} + ~~~ shell + $ErrorActionPreference = "Stop"; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; + $ProgressPreference = 'SilentlyContinue'; + # Use Windows New-Item with Force + $null = New-Item -Type Directory -Force $env:appdata/cockroach; + Invoke-WebRequest -Uri https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.windows-6.2-amd64.zip -OutFile cockroach.zip; + Expand-Archive -Path cockroach.zip; + # Add force if the cockroach binary is already there + Copy-Item -Force "cockroach/cockroach-{{ page.release_info.version }}.windows-6.2-amd64/cockroach.exe" -Destination $env:appdata/cockroach; + $Env:PATH += ";$env:appdata/cockroach"; + # Add command to append the cockroach binary path on every shell. Powershell equivalent of `.bashrc` + Add-Content -Path C:\Users\$env:UserName\Documents\WindowsPowerShell\profile.ps1 -Value '$Env:PATH += ";$env:appdata/cockroach"' + ~~~ +
    -
    -{% include_cached copy-clipboard.html %} -~~~ shell -curl --create-dirs -o ~/.postgresql/root.crt -O https://cockroachlabs.cloud/clusters//cert -~~~ +1. Run the command in step 2 of the **Command Line** tab of the **Connection info** dialog to download the CA certificate to your local machine. -Your `cert` file will be downloaded to `~/.postgres/root.crt`. -
    + We've included the command here for convenience but with some placeholder values. It's easiest to use the command directly from the **Connection info** dialog. -
    -{% include_cached copy-clipboard.html %} -~~~ shell -mkdir -p $env:appdata\.postgresql\; Invoke-WebRequest -Uri https://cockroachlabs.cloud/clusters//cert -OutFile $env:appdata\.postgresql\root.crt -~~~ +
    + {% include_cached copy-clipboard.html %} + ~~~ shell + curl --create-dirs -o ~/.postgresql/root.crt -O https://cockroachlabs.cloud/clusters//cert + ~~~ -Your `cert` file will be downloaded to `%APPDATA%/.postgres/root.crt`. -
    + Your `cert` file will be downloaded to `~/.postgres/root.crt`. +
    -Where `` is the ID of the cluster. You can find the cluster ID in step 2 of the **Command Line** tab in the **Connect** dialog. +
    + {% include_cached copy-clipboard.html %} + ~~~ shell + curl --create-dirs -o ~/.postgresql/root.crt -O https://cockroachlabs.cloud/clusters//cert + ~~~ -{{site.data.alerts.callout_info}} -The `~/.postgres/root.crt` (Mac and Linux) or `%APPDATA%/.postgres/root.crt` is the [default location for CA certificates](https://www.postgresql.org/docs/current/libpq-ssl.html) when using PostgreSQL drivers and ORMs. -{{site.data.alerts.end}} + Your `cert` file will be downloaded to `~/.postgres/root.crt`. +
    -## Step 5. Use the built-in SQL client +
    + {% include_cached copy-clipboard.html %} + ~~~ shell + mkdir -p $env:appdata\.postgresql\; Invoke-WebRequest -Uri https://cockroachlabs.cloud/clusters//cert -OutFile $env:appdata\.postgresql\root.crt + ~~~ -Connect to your cluster using the CockroachDB SQL command-line client. + Your `cert` file will be downloaded to `%APPDATA%/.postgres/root.crt`. +
    -1. In your terminal, run the connection string provided in step 3 of the **Command Line** tab in the **Connection info** dialog. Your username, password, host, and cluster name are pre-populated for you in the dialog. + Where `` is the ID of the cluster. You can find the cluster ID in step 2 of the **Command Line** tab in the **Connect** dialog. + + {{site.data.alerts.callout_info}} + The `~/.postgres/root.crt` (Mac and Linux) or `%APPDATA%/.postgres/root.crt` is the [default location for CA certificates](https://www.postgresql.org/docs/current/libpq-ssl.html) when using PostgreSQL drivers and ORMs. + {{site.data.alerts.end}} + +1. Run the command in step 3 of the **Command Line** tab in the **Connection info** dialog. Your username, password, host, and cluster name are pre-populated for you in the dialog. + + We've included the command here for convenience but with some placeholder values. It's easiest to use the command directly from the **Connection info** dialog. {% include cockroachcloud/sql-connection-string-free.md %} @@ -132,50 +167,362 @@ Connect to your cluster using the CockroachDB SQL command-line client. # ~~~ +
    + +## Step 3. Insert data. + 1. You can now run [CockroachDB SQL statements](learn-cockroachdb-sql.html): {% include_cached copy-clipboard.html %} ~~~ sql - > CREATE DATABASE bank; + > CREATE TABLE messages (id UUID PRIMARY KEY DEFAULT gen_random_uuid(), message STRING); ~~~ {% include_cached copy-clipboard.html %} ~~~ sql - > CREATE TABLE bank.accounts (id INT PRIMARY KEY, balance DECIMAL); + > INSERT INTO messages (message) VALUES ('Hello world!'); ~~~ +1. To exit the SQL shell: + {% include_cached copy-clipboard.html %} ~~~ sql - > INSERT INTO bank.accounts VALUES (1, 1000.50); + > \q ~~~ +## Step 4. Run a sample app + +
    + + + + +
    + +
    + +1. Create an `app.js` file on your local machine and copy the following code into it: + {% include_cached copy-clipboard.html %} - ~~~ sql - > SELECT * FROM bank.accounts; + ~~~ javascript + const parse = require("pg-connection-string").parse; + const { Client } = require("pg"); + const prompt = require("prompt"); + + (async () => { + + prompt.start() + const URI = await prompt.get("connectionString"); + var connectionString; + // Expand $env:appdata environment variable in Windows connection string + if (URI.connectionString.includes("env:appdata")) { + connectionString = await URI.connectionString.replace( + "$env:appdata", + process.env.APPDATA + ); + } + // Expand $HOME environment variable in UNIX connection string + else if (URI.connectionString.includes("HOME")) { + connectionString = await URI.connectionString.replace( + "$HOME", + process.env.HOME + ); + } + var config = parse(connectionString); + config.port = 26257; + config.database = 'defaultdb'; + const client = new Client(config); + + // Connect to database + try { + const result = await client.query("SELECT message FROM messages"); + console.log(result.rows[0].message) + } catch (err) { + console.log(`error connecting: ${err}`) + } + + // Exit program + process.exit(); + })().catch((err) => console.log(err.stack)); ~~~ + The application: + + 1. Attempts to connect to a running cluster, given a connection string. + 1. Reads the sample data you inserted earlier. + 1. Prints the data to the terminal. + +1. Create a `package.json` file and paste in the following code: + + {% include_cached copy-clipboard.html %} + ~~~ json + { + "dependencies": { + "pg": "latest", + "pg-connection-string": "latest", + "prompt": "latest" + } + } ~~~ - id | balance - -----+---------- - 1 | 1000.50 - (1 row) + +1. Initialize and run the application: + + {% include_cached copy-clipboard.html %} + ~~~ shell + npm install ~~~ -1. To exit the SQL shell: + {% include_cached copy-clipboard.html %} + ~~~ shell + node app.js + ~~~ + + The program will prompt you for the connection string to the database. Copy and paste the connection string from the **Connection info** dialog and hit **Enter**: + + ~~~ + prompt: connectionString: + ~~~ + + After entering the connection string, the program will execute. The output will look like this: + + ~~~ + Hello world! + ~~~ +
    + +
    + +1. Create a `main.go` file on your local machine and copy the following code into it: {% include_cached copy-clipboard.html %} - ~~~ sql - > \q + ~~~ go + package main + import ( + "bufio" + "context" + "log" + "os" + "github.com/jackc/pgx/v4" + ) + func readRows(conn *pgx.Conn) error { + rows, err := conn.Query(context.Background(), "SELECT message FROM messages") + if err != nil { + log.Fatal(err) + } + defer rows.Close() + for rows.Next() { + var message string + if err := rows.Scan(&message); err != nil { + log.Fatal(err) + } + log.Printf(message) + } + return nil + } + func main() { + // Read in connection string + scanner := bufio.NewScanner(os.Stdin) + log.Println("Enter a connection string: ") + scanner.Scan() + connstring := scanner.Text() + // Attempt to connect + config, err := pgx.ParseConfig(os.ExpandEnv(connstring)) + if err != nil { + log.Fatal("error configuring the database: ", err) + } + conn, err := pgx.ConnectConfig(context.Background(), config) + if err != nil { + log.Fatal("error connecting to the database: ", err) + } + // Read rows + readRows(conn) + defer conn.Close(context.Background()) + } + ~~~ + + The `main` method of this program does the following: + + 1. Attempts to connect to a running cluster, given a connection string. + 1. Reads the sample data you inserted earlier. + 1. Prints the data to the terminal. + +1. Initialize and run the app: + + {% include_cached copy-clipboard.html %} + ~~~ shell + $ go mod init basic-sample && go mod tidy + ~~~ + + {% include_cached copy-clipboard.html %} + ~~~ shell + $ go run main.go + ~~~ + + The program will prompt you for a connection string to the database: + + ~~~ + Enter a connection string: + ~~~ + +1. Back in the **Connection info** dialog, click **Connection string**, copy the connection string from step 2, and paste it in your terminal after the "Enter a connection string" prompt. + + {{site.data.alerts.callout_info}} + If the connection string does not include your SQL user password, replace `` with the password. + {{site.data.alerts.end}} + + The program will then execute. The output should look like this: + + ~~~ + Hello world! + ~~~ + +
    +
    {% comment %}Need to add this manual break to force Jekyll to render the next section correctly {% endcomment %} +
    + +1. Clone the following GitHub repository and check out the `serverless` branch: + + {% include_cached copy-clipboard.html %} + ~~~ shell + git clone https://github.com/cockroachlabs/hello-world-java-jdbc.git + cd hello-world-java-jdbc + git checkout serverless + ~~~ + +1. In a text editor modify `app/src/main/java/example/app/App.java` with the settings from the **Connection parameters** tab of the **Connection info** dialog to connect to the cluster: + +
    + {% include_cached copy-clipboard.html %} + ~~~ java + ds.setServerNames(new String[]{"{host}"}); + ds.setDatabaseName("{database}"); + ds.setUser("{username}"); + ds.setPassword("{password}"); + ds.setSslRootCert(System.getenv("$HOME/.postgresql/root.crt")); + ~~~ +
    +
    + {% include_cached copy-clipboard.html %} + ~~~ java + ds.setServerNames(new String[]{"{host}"}); + ds.setDatabaseName("{database}"); + ds.setUser("{username}"); + ds.setPassword("{password}"); + ds.setSslRootCert(System.getenv("$HOME/.postgresql/root.crt")); ~~~ +
    +
    + {% include_cached copy-clipboard.html %} + ~~~ java + ds.setServerNames(new String[]{"{host}"}); + ds.setDatabaseName("{database}"); + ds.setUser("{username}"); + ds.setPassword("{password}"); + ds.setSslRootCert(System.getenv("%APPDATA%/.postgresql/root.crt")); + ~~~ +
    + + Where: + - `{host}` is the host for your cluster. + - `{database}` is the cluster name and tenant ID plus `.defaultdb`. For example, `funny-duck-3.defaultdb`. + - `{username}` is the SQL username. + - `{password}` is the SQL user password. + - Make sure `ds.setSslRootCert` is set to the correct path for your OS to the `root.crt` CA certificate you downloaded earlier. + +1. Run the application using `gradlew`: + + {% include_cached copy-clipboard.html %} + ~~~ shell + ./gradlew run + ~~~ + + The output should look like this: + + ~~~ + > Task :app:run + Hello world! + + BUILD SUCCESSFUL in 3s + 2 actionable tasks: 2 executed + ~~~ + +
    + +
    + +1. Install SQLAlchemy. + + {% include_cached copy-clipboard.html %} + ~~~ shell + pip install psycopg2-binary + ~~~ + +1. Create a `main.py` file and copy in the following code: + + {% include_cached copy-clipboard.html %} + ~~~ python + import logging + import os + + import psycopg2 + + def print_hello(conn): + with conn.cursor() as cur: + cur.execute("SELECT message FROM messages") + logging.debug("print_hello(): status message: %s", cur.statusmessage) + rows = cur.fetchall() + conn.commit() + for row in rows: + print(row[0]) + + + def main(): + conn_string = input('Enter a connection string:\n') + + conn = psycopg2.connect(os.path.expandvars(conn_string)) + print_hello(conn) + + # Close communication with the database. + conn.close() + + if __name__ == "__main__": + main() + ~~~ + +1. Run the application: + + {% include_cached copy-clipboard.html %} + ~~~ shell + python3 main.py + ~~~ + + The program will prompt you for a connection string to the database: + + ~~~ + Enter a connection string: + ~~~ + +1. Back in the **Connection info** dialog, click **Connection string**, copy the connection string from step 2, and paste it in your terminal after the "Enter a connection string" prompt. + + {{site.data.alerts.callout_info}} + If the connection string does not include your SQL user password, replace `` with the password. + {{site.data.alerts.end}} + + The program will then execute. The output should look like this: + + ~~~ + Hello world! + ~~~ +
    ## Next steps You've successfully created your {{ site.data.products.serverless }} cluster, connected to it using the SQL client, and run some basic SQL statements. -- Build a Hello World app with in [Go](../{{site.versions["stable"]}}/hello-world-go-pgx.html), [Java](../{{site.versions["stable"]}}/hello-world-java-jdbc.html), [Node.js](../{{site.versions["stable"]}}/hello-world-node-postgres.html), or [Python](../{{site.versions["stable"]}}/hello-world-python-sqlalchemy.html). +- Build a simple CRUD application in [Go](../{{site.versions["stable"]}}/build-a-go-app-with-cockroachdb.html), [Java](../{{site.versions["stable"]}}/build-a-java-app-with-cockroachdb.html), [Node.js](../{{site.versions["stable"]}}/build-a-nodejs-app-with-cockroachdb.html), or [Python](../{{site.versions["stable"]}}/build-a-python-app-with-cockroachdb.html). - [Learn CockroachDB SQL](learn-cockroachdb-sql.html). - [Create and manage SQL users](user-authorization.html). -- Explore our [sample apps](../{{site.versions["stable"]}}/hello-world-example-apps.html) for examples on how to build simple "Hello World" applications using {{ site.data.products.serverless }}. +- Explore our [example apps](../{{site.versions["stable"]}}/example-apps.html) for examples on how to build applications using your preferred driver or ORM and run it on {{ site.data.products.serverless }}. ## Learn more From b0e528eaa81080f9f9bfe5471f1e50903fbcf015 Mon Sep 17 00:00:00 2001 From: ianjevans Date: Thu, 7 Oct 2021 17:27:26 -0700 Subject: [PATCH 56/77] Adding some additional explanation of the Java and Python code. --- cockroachcloud/quickstart.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index ba416de1636..0616f52da24 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -436,6 +436,8 @@ You will see a welcome message when you've successfully connected to your cluste ./gradlew run ~~~ + The application connects to the cluster using the JDBC parameters specified in the data source, then executes a `SELECT` statement and displays the results. + The output should look like this: ~~~ @@ -489,6 +491,12 @@ You will see a welcome message when you've successfully connected to your cluste main() ~~~ + The application: + + 1. Attempts to connect to a running cluster, given a connection string. + 1. Reads the sample data you inserted earlier. + 1. Prints the data to the terminal. + 1. Run the application: {% include_cached copy-clipboard.html %} From 6700e6e27a2224ae9a8dd1c9d91c3edef9b3f4c1 Mon Sep 17 00:00:00 2001 From: ianjevans Date: Thu, 7 Oct 2021 17:37:31 -0700 Subject: [PATCH 57/77] Clearing up description of Advanced section. --- cockroachcloud/quickstart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index 0616f52da24..353068be401 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -14,7 +14,7 @@ This page guides you through the quickest way to get started with CockroachDB by Choose the level of detail you want for this page. - Simple: Basic instructions to create a cluster and connect to it using a SQL client. -- Advanced: More detailed explanations and instructions on creating and connecting to the cluster with a client driver. +- Advanced: More detailed explanations and examples of the commands you'll use to connect to the cluster.
    From 690d0eafbdc3f1997ad7956a797e1834a0c1cdaa Mon Sep 17 00:00:00 2001 From: ianjevans Date: Fri, 8 Oct 2021 14:12:25 -0700 Subject: [PATCH 58/77] Fixing node.js and Python hello world code. --- cockroachcloud/quickstart.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index 353068be401..1a36257290d 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -233,10 +233,11 @@ You will see a welcome message when you've successfully connected to your cluste config.database = 'defaultdb'; const client = new Client(config); - // Connect to database try { - const result = await client.query("SELECT message FROM messages"); + await client.connect(); + const result = await client.query('SELECT message FROM messages') console.log(result.rows[0].message) + await client.end() } catch (err) { console.log(`error connecting: ${err}`) } @@ -487,7 +488,7 @@ You will see a welcome message when you've successfully connected to your cluste # Close communication with the database. conn.close() - if __name__ == "__main__": + if __name__ == "__main__": main() ~~~ From 75845e8330f3ece170510bc0d14a953ef9a061c0 Mon Sep 17 00:00:00 2001 From: ianjevans Date: Fri, 8 Oct 2021 15:40:27 -0700 Subject: [PATCH 59/77] Incorporated Jesse's review comments. --- cockroachcloud/quickstart.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index 1a36257290d..e57f7f03fee 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -9,7 +9,9 @@ toc: true
    -This page guides you through the quickest way to get started with CockroachDB by setting up a {{ site.data.products.serverless }} cluster with the default options. For information on how to create a {{ site.data.products.db }} cluster with other options, see the [Learn more](#learn-more) section. +This page guides you through the quickest way to get started with CockroachDB. You'll start a free {{ site.data.products.serverless }} cluster, connect with the CockroachDB SQL client, insert some data, and then read the data from a sample application. + +For information on how to create a {{ site.data.products.db }} cluster with other options, see the [Learn more](#learn-more) section. Choose the level of detail you want for this page. @@ -29,7 +31,7 @@ Choose the level of detail you want for this page. 1. If you haven't already, sign up for a {{ site.data.products.db }} account. 1. [Log in](https://cockroachlabs.cloud/) to your {{ site.data.products.db }} account. 1. On the **Clusters** page, click **Create Cluster**. -1. On the **Create your cluster** page, select **{{ site.data.products.serverless-plan }}**. +1. On the **Create your cluster** page, select **Serverless**. Unless you change your monthly budget, this cluster will be free forever. @@ -54,7 +56,7 @@ The **Connection info** dialog shows information about how to connect to your cl
    -1. In the **Connection info** dialog choose your OS. +1. In the **Connection info** dialog, choose your OS. 1. Open a terminal on your local machine. 1. Run the commands in each step of the **Command Line** tab of the **Connection info** dialog. 1. Run the command in step 1 to install the CockroachDB binary and add it to your OS's `PATH`. @@ -169,7 +171,7 @@ You will see a welcome message when you've successfully connected to your cluste
    -## Step 3. Insert data. +## Step 3. Insert data 1. You can now run [CockroachDB SQL statements](learn-cockroachdb-sql.html): @@ -194,9 +196,9 @@ You will see a welcome message when you've successfully connected to your cluste
    + -
    @@ -278,7 +280,7 @@ You will see a welcome message when you've successfully connected to your cluste node app.js ~~~ - The program will prompt you for the connection string to the database. Copy and paste the connection string from the **Connection info** dialog and hit **Enter**: + In the **Connection info** dialog, go to the **Connection string** tab, copy the connection string from step 2, and paste it in your terminal. ~~~ prompt: connectionString: @@ -466,9 +468,9 @@ You will see a welcome message when you've successfully connected to your cluste ~~~ python import logging import os - import psycopg2 + def print_hello(conn): with conn.cursor() as cur: cur.execute("SELECT message FROM messages") @@ -488,6 +490,7 @@ You will see a welcome message when you've successfully connected to your cluste # Close communication with the database. conn.close() + if __name__ == "__main__": main() ~~~ From d47ecae86317c2225abb2dc887664b80e9d83159 Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Mon, 11 Oct 2021 13:25:31 -0400 Subject: [PATCH 60/77] lauren edits --- _data/products.yml | 8 +++++--- _layouts/homepage.html | 2 +- cockroachcloud/billing-management.md | 27 ++++++++++++++++++++------- cockroachcloud/index.md | 4 ++-- 4 files changed, 28 insertions(+), 13 deletions(-) diff --git a/_data/products.yml b/_data/products.yml index c848cd07367..e7afaf8eea7 100644 --- a/_data/products.yml +++ b/_data/products.yml @@ -1,9 +1,11 @@ serverless: CockroachDB Serverless (beta) -# to be CockroachDB Serverless (beta) + serverless-plan: CockroachDB Serverless #i.e. "1. Choose the **CockroachDB Serverless** plan." -# to be CockroachCloud Serverless + dedicated: CockroachDB Dedicated -# to be CockroachDB Managed + core: CockroachDB Self-Hosted # tbd +enterprise: Enterprise +# tbd db: CockroachDB Cloud #i.e. "Sign up for a CockroachDB Cloud account", tbd \ No newline at end of file diff --git a/_layouts/homepage.html b/_layouts/homepage.html index c4fa193032e..0c1568fc56c 100644 --- a/_layouts/homepage.html +++ b/_layouts/homepage.html @@ -11,7 +11,7 @@

    Documentation

    icon browser -
    Start a free cloud
    cluster
    +
    Start a Serverless
    cluster

    Learn more arrow right

    diff --git a/cockroachcloud/billing-management.md b/cockroachcloud/billing-management.md index 7a11ff548ae..0065aff946f 100644 --- a/cockroachcloud/billing-management.md +++ b/cockroachcloud/billing-management.md @@ -14,17 +14,30 @@ Setting up billing information for your Organization allows you to create a maxi ## Set up billing for an Organization -1. On the **Billing** page, click the pen icon for the **Payment method** field. -2. On the **Edit payment method** page, enter the email address at which you want get invoices for the Organization. -3. Enter the credit or debit card details. -4. Enter the address associated with your payment method. This address appears on your monthly invoice and should be the legal address of your home or business. -4. Click **Add card**. +1. On the **Billing** page, click the pencil icon for the **Payment method** field. +1. In the **Edit payment method** dialog, enter the credit or debit card details. +1. Click **Save card**. +1. On the **Billing** page, click the pencil icon for the **Billing email address** field. +1. Enter the email address at which you want to get invoices for the Organization. +1. Click **Submit**. +1. On the **Billing** page, click the pencil icon for the **Billing address** field. +1. Enter the address associated with your payment method. This address appears on your monthly invoice and should be the legal address of your home or business. +1. Click **Submit**. ## Change the billing email address 1. On the **Billing** page, click the pen icon for the **Billing email address** field. -2. On the **Edit payment method** page, enter the new email address at which you want get invoices for the Organization. -3. Click **Add card**. +1. In the **Edit payment method** dialog, enter the new email address at which you want get invoices for the Organization. +1. Click **Add card**. + +## Change the payment method + +1. On the **Billing** page, click the pencil icon for the **Payment method** field. +1. In the **Edit payment method** dialog, enter the credit or debit card details. +1. Click **Save card**. +1. On the **Billing** page, click the pencil icon for the **Billing address** field. +1. Enter the address associated with your new payment method. This address appears on your monthly invoice and should be the legal address of your home or business. +1. Click **Submit**. ## Delete your credit card information diff --git a/cockroachcloud/index.md b/cockroachcloud/index.md index 86c3d646f2f..bb480d3ffdd 100644 --- a/cockroachcloud/index.md +++ b/cockroachcloud/index.md @@ -50,7 +50,7 @@ homepage: true
    @@ -68,7 +68,7 @@ homepage: true

    Get Started

      -
    • Start a Free Cloud Cluster
    • +
    • Start a Free Serverless Cluster
    • Start a Dedicated Cluster
    • Connect to Your Cluster
    • Learn CockroachDB SQL
    • From 0a4b48eca72b6ed1c44e6b895072c95275ec8de4 Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Mon, 11 Oct 2021 19:49:30 -0400 Subject: [PATCH 61/77] abbey edits --- cockroachcloud/run-bulk-operations.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cockroachcloud/run-bulk-operations.md b/cockroachcloud/run-bulk-operations.md index d59be0ee864..329a4f82574 100644 --- a/cockroachcloud/run-bulk-operations.md +++ b/cockroachcloud/run-bulk-operations.md @@ -10,7 +10,8 @@ toc: true - [`RESTORE`](../{{site.versions["stable"]}}/restore.html) - [`IMPORT`](../{{site.versions["stable"]}}/import.html) - [`EXPORT`](../{{site.versions["stable"]}}/export.html) -- [`CREATE CHANGEFEED`](../{{site.versions["stable"]}}/create-changefeed.html) +- [`EXPERIMENTAL CHANGEFEED FOR`](../{{site.versions["stable"]}}/changefeed-for.html) (Serverless) +- [`CREATE CHANGEFEED`](../{{site.versions["stable"]}}/create-changefeed.html) (Dedicated) {{site.data.alerts.callout_info}} For {{ site.data.products.serverless }} clusters, you must have [billing information](billing-management.html) on file for your Organization to have access to [cloud storage](../{{site.versions["stable"]}}/use-cloud-storage-for-bulk-operations.html). If you don't have billing set up, [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html) is your **only available storage option** for bulk operations. {{ site.data.products.dedicated }} users can run bulk operations with `userfile` or cloud storage. @@ -128,7 +129,7 @@ To create a core changefeed in {{ site.data.products.serverless }}, use the foll {% include cockroachcloud/cdc/create-core-changefeed.md %} -For further information on changefeeds, read [Stream Data Out of CockroachDB](../{{site.versions["stable"]}}/stream-data-out-of-cockroachdb-using-changefeeds.html) and [`CHANGEFEED FOR`](../{{site.versions["stable"]}}/changefeed-for.html). +For further information on changefeeds, read [Stream Data Out of CockroachDB](../{{site.versions["stable"]}}/stream-data-out-of-cockroachdb-using-changefeeds.html) and [`EXPERIMENTAL CHANGEFEED FOR`](../{{site.versions["stable"]}}/changefeed-for.html).
    From 1cebf3f7f25ca9750014c835416a3f57b7d3b79c Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Mon, 11 Oct 2021 19:59:41 -0400 Subject: [PATCH 62/77] jose edits --- cockroachcloud/alerts-page.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cockroachcloud/alerts-page.md b/cockroachcloud/alerts-page.md index b07be44a52f..f93f55d9015 100644 --- a/cockroachcloud/alerts-page.md +++ b/cockroachcloud/alerts-page.md @@ -6,7 +6,10 @@ toc: true The **Alerts** page allows you to toggle {{ site.data.products.db }} alerts, send test alerts, and view the email recipients and alert history for your {{ site.data.products.db }} Organization. To view the Alerts page, [log in](https://cockroachlabs.cloud/) and click **Alerts**. -If alerts are enabled, {{ site.data.products.db }} will send alerts to [specified email recipients](#configure-alerts) when the following usage metrics are detected: +For {{ site.data.products.serverless }} cluters, all [Console Admins](console-access-management.html#console-admin) will automatically receive email alerts when your cluster reaches 50%, 75%, and 100% of its spend limit, burst capacity, or storage limit. + +If alerts are enabled for {{ site.data.products.dedicated }} clusters, {{ site.data.products.db }} will send alerts to [specified email recipients](#configure-alerts) when the following usage metrics are detected: + **Storage Utilization:** From 1c641d54d13327dc34831ac1aa65539df7c4009e Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Mon, 11 Oct 2021 21:31:08 -0400 Subject: [PATCH 63/77] andy edits and architecture/benchmark improvements --- .../planning-your-serverless-cluster.md | 6 ++-- cockroachcloud/architecture.md | 30 +++++++++++++----- cockroachcloud/create-a-serverless-cluster.md | 4 +-- cockroachcloud/serverless-benchmarking.md | 16 +++------- cockroachcloud/serverless-faqs.md | 2 +- images/cockroachcloud/serverless-diagram.jpeg | Bin 68742 -> 0 bytes images/cockroachcloud/serverless-diagram.png | Bin 0 -> 389428 bytes .../cockroachcloud/serverless-performance.png | Bin 103407 -> 114717 bytes images/cockroachcloud/serverless-scaling.png | Bin 0 -> 395472 bytes 9 files changed, 32 insertions(+), 26 deletions(-) delete mode 100644 images/cockroachcloud/serverless-diagram.jpeg create mode 100644 images/cockroachcloud/serverless-diagram.png create mode 100644 images/cockroachcloud/serverless-scaling.png diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index bb0e14fcb7f..00b49369aee 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -1,11 +1,11 @@ ### Request Units -Most resource usage in {{ site.data.products.serverless }} is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost a large number of RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. +Most resource usage in {{ site.data.products.serverless }} is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 2 RUs, and a "large read" such as a full table scan with indexes could cost a large number of RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. ### Cluster scaling -{{ site.data.products.serverless }} clusters scale based on your workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](architecture.html#concepts) per month and 5 GiB of storage. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. +{{ site.data.products.serverless }} clusters scale based on your workload. Clusters start with 10M RUs of free [burst capacity](architecture.html#concepts) and accrue 100 RUs per second up to a maximum of 250M free RUs per month. Accrued RUs can be used for burst performance, and once they have been used the cluster will revert to the baseline performance of 100 RUs per second. -You can set your spend limit higher to maintain a high level of performance with larger workloads. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of free clusters. All [Console Admins](console-access-management.html#console-admin) will receive email alerts when your cluster reaches 50%, 75%, and 100% of its spend limit, burst capacity, or storage limit. +You can set your spend limit higher to maintain a high level of performance with larger workloads. If you have a spend limit, your cluster will not be throttled to baseline performance once you use all of your free accrued RUs. Instead, it will continue to use burst performance as needed until you reach your spend limit. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of 100 RUs per second. All [Console Admins](console-access-management.html#console-admin) will receive email alerts when your cluster reaches 50%, 75%, and 100% of its spend limit, burst capacity, or storage limit. To see a graph of your monthly resource usage and recommended spend limit, navigate to the [Edit cluster](#edit-your-spend-limit) page. \ No newline at end of file diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 4b9dde62a64..a10a6883231 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -21,17 +21,33 @@ toc: true Term | Definition -----|----------- -**Serverless cluster** | A cluster that’s automatically billed and scaled in response to the resources it consumes (as opposed to a dedicated cluster, which is billed and scaled statically). -**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in {{ site.data.products.serverless-plan }} cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes could cost a large number RUs. You can see how many Request Units your cluster has used on the [**Cluster Overview**](serverless-cluster-management.html#view-cluster-overview) page. +**Serverless cluster** | A cluster that’s automatically billed and scaled in response to the resources it consumes (as opposed to a Dedicated cluster, which is billed for resources provisioned). +**Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in {{ site.data.products.serverless-plan }} cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 2 RUs, and a "large read" such as a full table scan with indexes could cost a large number RUs. You can see how many Request Units your cluster has used on the [**Cluster Overview**](serverless-cluster-management.html#view-cluster-overview) page. **Spend limit** | The maximum amount of money you indicate you want to be billed in a particular billing period for a cluster. The actual amount you are billed is based on the resources used during that billing period. A cluster's budget is allocated across storage and burst performance. **Projected usage** | The amount of usage that Cockroach Labs projects a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because we always reserve enough budget to pay for storage for the rest of the billing period. **Baseline performance** | The minimum compute and I/O performance that you can expect from your cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  -**Burst capacity** | Burst capacity is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can “store up” Request Units that can be used for burst capacity for the rest of the month.  +**Burst capacity** | Burst capacity is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can accrue Request Units that can be used for burst capacity for the rest of the month.  **Storage** | Disk space for permanently storing data over time. All data in {{ site.data.products.serverless }} is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage you see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. +### Architecture + +Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes (K8s) cluster that hosts CockroachDB. Each node runs in its own K8s pod, which allows {{ site.data.products.serverless }} to limit SQL resource consumption for each tenant. It also minimizes interference between pods that are scheduled on the same machine, giving each tenant a high-quality experience even when other tenants are running heavy workloads. + +The following diagram is a high-level representation of what a typical Serverless cluster looks like: + +Serverless architecture + +Proxy pods allow many tenants to share the same IP address, balance loads across a tenant’s available SQL pods, and automatically resume tenant clusters that have been paused due to inactivity. They also detect and respond to suspected abuse of the service. + +After the cloud load balancer routes a new connection to one of the proxy pods, the proxy pod will in turn forward that connection to a SQL pod owned by the connecting tenant. Each SQL pod is dedicated to just one tenant, and multiple SQL pods can be owned by the same tenant. Network security rules prevent SQL pods from talking to one another unless they are owned by the same tenant. + +Finally, the SQL pods communicate with the KV layer to access data managed by the shared storage pods, each of which stores that data in an [AWS](https://aws.amazon.com/ebs/features/) or [GCP](https://cloud.google.com/compute/docs/disks#pdspecs) block storage system. + ### Performance -Serverless clusters scale based on your application's workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](#concepts) per month and 5 GiB of storage. They have a guaranteed baseline performance of 100 RUs per second, or up to 100 QPS. If you set a spend limit for your cluster, you will have access to additional resources without throttling. +Serverless clusters scale based on your workload. Clusters start with 10M RUs of free [burst capacity](#concepts) and accrue 100 RUs per second up to a maximum of 250M free RUs per month. Accrued RUs can be used for burst performance, and once they have been used the cluster will revert to the baseline performance of 100 RUs per second. + +If you set a spend limit, your cluster will not be throttled to baseline performance once you use all of your free accrued RUs. Instead, it will continue to use burst performance as needed until you reach the spend limit. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of 100 RUs per second. All [Console Admins](console-access-management.html#console-admin) will receive email alerts when your cluster reaches 50%, 75%, and 100% of its spend limit, burst capacity, or storage limit. Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for burst performance, and vice versa. If you hit your spend limit, your cluster will be throttled down to baseline performance levels. If this occurs, you can opt to increase your spend limit, adjust your workload to stay within the current spend limit, or stay at the baseline performance level until the next month. @@ -39,11 +55,9 @@ Storage always gets first priority in the budget since you need to be able to st Serverless clusters also have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for the storage your app is using, but not for Request Units. To avoid wasted resources, {{ site.data.products.db }} automatically pauses Serverless clusters that are inactive, which is defined by having no connection to the cluster for two consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). -### Architecture - -Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes cluster that hosts CockroachDB. +The diagram below shows how {{ site.data.products.serverless }} autoscales in four different scenarios: -Serverless architecture +Serverless scaling
    diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index e5cacc52030..1138c56ac37 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -32,9 +32,9 @@ If you haven't already, +This chart shows the linear consumption of RUs by a CockroachDB Serverless cluster under a constant [KV 95](#kv-95) workload. The total number of RUs consumed over 10 minutes is about 228,655. The cluster is performing about 318 operations per second, and each operation (a point read or write) is consuming about 1.2 RUs. These results have been adjusted for a constant overhead of 5 RU/s that is unrelated to the workload. + ## Learn more - See [CockroachDB Performance](../{{site.versions["stable"]}}/performance.html) for more information about CockroachDB performance benchmarking. diff --git a/cockroachcloud/serverless-faqs.md b/cockroachcloud/serverless-faqs.md index 4b5f8641d71..7d9f9513713 100644 --- a/cockroachcloud/serverless-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -28,7 +28,7 @@ Free clusters have a limit of 250M Request Units per month and 5GB of storage. P ### What is a Request Unit? -All resource usage in {{ site.data.products.serverless }} is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 1 RU, and a "large read" such as a full table scan with indexes might cost 100 RUs. +All resource usage in {{ site.data.products.serverless }} is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 2 RUs, and a "large read" such as a full table scan with indexes might cost 100 RUs. ### Do I have to pay for {{ site.data.products.serverless }}? diff --git a/images/cockroachcloud/serverless-diagram.jpeg b/images/cockroachcloud/serverless-diagram.jpeg deleted file mode 100644 index a6a334f9dc19b4b21feb3c4d0b8b297f002ebdc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68742 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

    Uvcn#s7FNJ(_y^+#UwyKkrSw5 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

    e%7%S`G?0!)s%!wXzR2>i*G+rAzEz6C{ z;u}DNNS6N+Qf`mbP2ylcdq^Emp2`5~*k3*6bMD36v{0^FyID8ffZm@Yp?%Ogn_H`a z9ESN!FgpBRbG;$%URss{L6{gDdv5#rpjMV*4B)!PIZ=5i$>V8%H@CDC;1^{`j8U>P z48JIv6BFW{&p6zDXRw*&+|F{K?ZYr9k~QG{?G>J&ysZaA$;ZesYwwUqqS_ZlwHo6k z2IYEnt~;~q+HyOJGhaEH8gG+Tx?|u1C+&mH@yG&rF2xXmkH759yQWMc1xlVID(iz; zS>6X6h9Vw(s-TrMP=zS2+9M6VLVQZe!)bWhBpj$>8OTZ$hxx0y1fDBh6H?^vxz{CB zR4;{K@Bm0mMCCfI-x?j?$p z*}s}CA&{xQ1VF`5OEE9Jh@ue7`q@wFI4jzNx~IyYB^KCt>(&Z|!q>UKpj~J4XQ?CE zk!F?k#e#!PyYUmvu|R& z4Mo&*c|SK^Mk^m>obDsRP1q&DDw<+im3Kn!-6O;;`~yPdr(lc!8@&DlL>JG$NBjWD1Km7PukGr(a8iP%&g{sS8_n}N2Q{`~Yf1h^O!>2* zmJ75Mz6C`(KdAtirFypO1;uU9^zfS*=LG~d;0|arg99wxPYS&C(w9C$zhw-L!*t2w zBJ5{~L0bjvJL&u!0eJXGxAuw6D*!sNaeTOg_YbDy7X|)X5J@+jfSF7Yyp>r{Kn~fY+M}hR+1m` z?6~OwN2Kv0`GEazC?50@K?T}|Tlws8e*rY=zR`|F86l8OeCpG$lov!I4Ipls`;hN9 zeWfsh^&43ZklF`>&WOb3zj!222-@aog%`u6s=*MmxFenBfz*K#zqO-SPLFF3l#B zkI1nv?)^E1h4w{thj|8N_JQ2o+yHSeQ|VpRySPCT7^?dLSi0KuO1SO%$j;_M91H=F z>H6gFU+jR*xUg&bfm0qKhsAu`o!Ot8+cO!3xw)LDN__t^wrXUEAuKHHUrMqMAOGFX zUk6J41^k6vKylov6!dNeUz<88+Vp_t*bp zQ~&wo_a3v+KWTizb779kfO!k%;8VC@^8PU}T5P~ZnPXd4{qw+uPd^?4>qDRZ zgZ{z^(my6qF&>zZ_jrj57Z1e#(`zz(j175B?jU=?PW`9X|Bnv1@%)n7GMljEi%DB7 P@J~rjO}0?_>8t+(GA1yS literal 0 HcmV?d00001 diff --git a/images/cockroachcloud/serverless-performance.png b/images/cockroachcloud/serverless-performance.png index 36cb9ce986de5ee6582b3d6d0fd9428d5551f505..4b15c660b755e57bebff8610dea1c69944a0ea96 100644 GIT binary patch literal 114717 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%0A1VnIsWdLtLdxAjn@@D>y4m9C*VYzcFhJ&yAiUz zV z@Hu7^)x1mpj~w7%8|URi;d>wC%d5z+niXM1VkVNl+$P@!@HREV4>hP^j7yIMNBet* z16ka8h=;x7I6DbPHU{9a71N6Bj}cJ}cW5S@y=2%c$@ZtjmLjnga1GbPT17f$e%peM zrS{EhP1qM_A4d>a0YO@0YI013wn&D|y@SV!wIS!6nw^kj+0-yJ4i6 zsnow#l)gYxC$&MoZ(0&^R7&G1bKQ4H9u_}+j3~o_g&>UMC-Tq5ahpFgCbV|>FY{Cl zeBI>9t`+z>4vISmUc(puxm^u!SYF8s%FdU5nN3=;NAXADv)}etVFoE6Vc`TrjVMv5LE_49hfs@&efkT_U*%vS{qZw)M z%?hdW{AvP-Y2}hI4H+aNo7V z6W8x*;+@J+1%FnL0&VdrMZujLj~<(uN??vJ6Uu%(G8mFY3q^D`%u;UE4dCRMXt-+s zsyk`L;_9$eV*TInzN8V!Nlz@1G>PK&s(x_>E?_boMVFq4yNdPiip)GzWLjC8jQKCh zIm6n{owpKZK)1H6e`O)pJ!JBlt>Oqhyz#DW?Huq_KQVxJLX;hxvSphiHq)O5Rxg4yqf3uSv(QFlzA#a zW~y6nt>mx89ipS39t(rCJ>1x$XX7op84M3UcYhn3gBdTvsmBuw`oJ8nFrt^q|Y7Rc2rU_4L3`_(33;gqv;=&0yu z?6)Mot_cpH{<}70oqrCH2255EZoegpn?fgxpl%l&u1wUWhmm^Hc`^Y|L3o$O_7Q=mQawsKq@aa!}Q){t8LDGS?^E6y?cRd)LaK&8)nWE>!KPMh{2?U5tAVcu> zFP2Fxt`xrYh3D%tsYf?K2zV0;&CyldI+^6URW|q$m!6&RkZrg4a5$;8DD0@cAilft0KFqH? zUOC2Uoz9!)X{bpwO?Qy5O-tH(Kwb_9n~nQ%+Prq5g2Bunm8W=*W;9Dp+xgfX;3#(o zrxPd}-D{0>pjP`tDUlGK)=yVIif-Fr@n%)e?L}HA@LV?^r?S7UiCgsvvT%-q zivWyhb>+goWT=|;RoHlStJmg<;*QNJ2U$0@n{=wBwW^0 zk?^`j#vm5g59{~DH|^Ju7c>X&kEG7WvVSFYFfh-ngZ}++w|WbWiBb9h6YFzQyYE!6 zH++&lA<2dATkqk2XYMM;;wXi}r`!fbb2M`l90LE#cp;^8N+}UOv3O}Fqq$cwQdQ+{ z5WfN;#ozf*bQ{b1{oiTSn}>KCk-c?ib)F%GWKjI1Fk6WnxPxdEc3kU^QiX45mXQ^^ z!pmzDiDaBx6-3SWgQZe_RG%x_Z0uiyK%Tz=6LK-w`PbBjo0uo=@NV5I)CL@`nrzb& z8=6083|u|H|C%Ac@DK zA)NY$Q$n0_8TLB8e^MnH6j=W;%yjnoki*v&tvN}|%*aMlii442o>UG)BNf(3)pO!L z{^Qpb)kmP({$I+}a(W=v*Uoda(Tm01gpY(P%+hFPc^A=fd{fV)<023TO=x!)&8~|> zjInJT^9?t#0nmiawlmznMvmZNoDR32?ke7TOSTgT*7N?@pU2#B5qI-j+}xR8Rfl`~ znQ$nHAZUTBCJ#f7>i(`ABL#Ty4*rX6>Ad3(=q;Uw7XQ~CuM4RW13Fc?CGPg7`HPJ& zzmBx#=1}jm^1HBqEy0Hg?lv&Ig68prxc|4n^7UiHS9X!V0bTNQ3g8i9Ny>wu`NY4M zL9?R-B_07}Ae=M(15-h=tHuSc3`0pDWCxI41wZ@S$1gl+^fR3H<_1n+0JWiLFk}K2 zeY@oEAqE={#6uN7=+3WcSK^uC>bX351=?%nU_dpuB6yXxstje;mj(*$hLqkR5+Zj3 zS!c@2GH7h09KQR9AaV*5a#0uSz!`ORO6C`th^-kxpz1lH5?p6TBgrHR8u1o0VxXf9%X+DSyw2xW6@ z=l--x2Hsf}#i!W?zNJY`jL!3Ab#X45kuF0jNd=|D5GMQ=r#dbJORwF~uiMPzQ;~q@ zC8+hh{3?un$$=DtFyfh8AYY8*X%QeiKaD}`F1CtxukrL^S;M=sfzgEcEW`_mL*RIY zk`8E0aP=MHf0dSxbRDCRk}U)W&mlPE#mNgqv-HqO2lQxWk|5i058<{?B+|UljDr#G zAc&zH0^@r~1erwiIMeDE;BA>0Sd2oU75o|6#Lil>U*74M`bu-f_vf& z@G&rz5#&PJSg-2O6M(2Bq&~)f@Phuei&f*_QeyeT&Hb;t2yvKN`BWNWzZ#fuHM|Gp z!+&A}f7oAMKalQP{yp4ZMkyA8i`3`4L>TM&2`{LeuRYoOR}czsb{_Vw>7T3Te!1wF z`v%!VXV;(&*3ta~fOnqrTGC^Yv?4(YF8#zXy9DnR&i}N;FxkqCuR_-Z5s=N6WBP6c zB~LN$iH-R|1UrT(lzDdAd#bKn^l0o`hT>m(b^f_9XuUU~sJW3my=Yx4_I@Q1#xcbI zJ%1l8@XCVoukl!%2exeaGl`FSD-dLJr6+has`vd@WoL5h2S#vv_iv0K4977$+|fL*-(2t_V%qID-Kuh@cJ`L$eZW=A`3&YI#S{J$(!6)@qK!V|yLKTN?P( zLdCTkDZdzXxmj2kNt(w8bYgL8psvVxyF7w%&&!SctihWV9yMe%Anx?&X6Bsn_~hpw z;5XP*aZYd@ic7`RXcp?`PaxTyS-CeYdL#hc3Yi|$$4}tDL^7qHv$d-XOicXxv|WXf zI@Im7D|Se-F+gN@hJQNB3fk=pKaFhu61k_?BZ{`+3aIEBBFonWn+{8kSLm>r5xnf^ z`5yr3_W;R8j4)1cAZ$CQhO}B%%|a7Zr_H=r|GlL$_Vjrmp3^{1qxb;77NuOTxUSnA z{DXrJDO$%QTORFZ9}SLc^8F%ZAxs>)yNFY&DqqT5X~-)%nxy)}@gimt1;w@FuUe+= z^bwn)4&j~1*gwS>Mf^a^0rh_v`|fxy+xPtvPo<}cXox~Kq0EfRmYKavw#X(jDwVw{ zJ3BLbkA^amG9xQ{3)$;;UN+C?_j-MwKYDqL`+eW{bzbK<&f`2T_F+IC1G}JQYqe7J z{Q2{NA0MyQUw;WKmtCI#6(zDl;6FM^xgm-d0b6u7fy~?W?fC?@CrN}+k~mDQuQzmc zQ&`%qqN*Ls$pV#6f#9NI;|Pdb&>+bbqa?aHy1fP#QHNDa;|DadC;^q6m$xj3Pd{BS zAJvgrtL94iA>A_IT{=2HSmuf^P!q` z_qhjj!+d)lz=4PDFf^SJmj2{2FqGD^(Y|4&L&DXKoLSyam%=6*&?Q7F$nY6e~U6^aac0ahw`oKjLu$5}fa za^YZrso%o-qDIBs!jJl4Hr^8*{E%EU#`T{iNWzjmE@gnL*7))51gt&VV^iQRzWx`47W{jU%%xlU@ed0}M` zJIWLJ5B%@wf-t03ub~rg3+#|t4qmxCFa7=JPXYl#b7@4>&^ItsoYa5+1WVsG8`>kE zq1|{E@p&5OT1Ee}u4Le}sP5uUJA&6*?~iBn=1Hf0s+#7(`)LO#N6R}Z?U~#IZ-xsU*`1tFZG~*N9r4tEHLy%CO+wCENxt`oD$-9EI^; zF+R4gOY*@(;q;ifIm9bgYctPd4R6*!LcbDN+odn>+BoIY?(r3_EDTQ!C8n;?qL3Y; zb3jm2+u(U6G<~~471P#ixG}k{L&9tKV*}Xx2D3KFXPkw$y5Yw@vZnS4(Tm`DHg-}2 z?4-A~6RXumb~te%Cc@cCa;8tr#s#<+BwOuQml+=Y9RRfq+AiR1eVq~3T?sS&&+5Ki z!!{zHQJ9OaiVnUhFh@9ZfFgd@TKdDh;d#D_$8t)d^ISfGa76lNt)3@-=vW^ls&X$imqBM&@%S&4tvTQwFI$3fg8-|RTT-!bH3c$jMCAW;d;rpNbH7^G0~%HmOLg4K zcPzN^qoZ9jmzuzRdyT&FNwEY`2rKZqk+2a}pa|MyLS!VHneqHgh@HBp!E>RN=j*=x zyBOF#$M4FtpFh(yy5WeV${;)F#D9TyR6uA6L?8WsrD{KNug=#n82o%^Fg0(sT+p#h z2aP{Zv;WfF{oG39T~Fg>_HM%9DC?Mks=9?*?s+fL-k~`mbgsN)zAyL(@KKWR^^Zu^ z9zn`iZbaN%HnY#q8NS3V2jbYC2Z$jBUmWw}`)M$Y4O}Usp&h#094JbU%tJ5f0`T!n zSK7?6D8)IarAI)Ssd-WN<2+(O&8MT9d-tx2fqIP6N%A`!<9$dv7PbN7mn^>2+EXgf z1~j*@Z_PC}Zjh1d?NE^OVgzc^PtzLCj9ExbT3=ncd$TxcZ(wwQH9aIHd>1zp`5%8u zF!-;=DjKP^v6Dwm)4Y6h>&54&&)?CvCWRkDnnodVYlfCC!nef!!fBO;07OHuGlKw^N{^S4IMwExXzG@%MG8MSE115T|PeK*|btK1gt#ro%==iZkS zvWCyXWCYlTsGJ>EAidfJ5`MSxgCuVchR=W1?z$7cAPssjWC|~4K)h$J3%`T_$-h1q79sVEBCc8285#3Ay#f5H=bGk^K+lDuwKp3aIkEV1D z_?gp4kLH4I_nbMQ?%{Wtr1FYgiTZM@o?hnG0Nw7sZc=z@^kP6+vbdS;WnqM;4UDx# z+7pTRq;?##T1&hep~zAQl)&O%1reuncjCm{K?aAR){X*YfR74LJoLJF>)y|IcNy%K z=H@_fPU=1OeN^J>A+!hX5nO$; z`(XjcdAu8X zZ#tTwBIY9nUYdKNY_bc|=KQ6zf*Q4mkPD9Zdmnuv2wA3qP+R8wsAj7s;K{y)s@2yo19uBh(`E9rVw+T zozL(W+yMb-Hd?&U!;3b1DSmg4X-2$;PdfAb4*E8Q0{GmDW1P~tf`^Y*RDGjjqS*uf|DahQdc6rp29A3B#67%;EQ}2K$v5u@zQ!W< z<;&y1WS$rQ8p6i({1{seVLM^+mud*(o=_~+G3@pueaKVu|2qSPzIO<2mgJ#GW zHCC498SZ_0Y1QK`z&@{^us4&UQXsA-&6^7p3BKt!^Mbtk@#kaXPzz)|7@X+q-S8dX z0KPEGet5XS9-?0v$czSNQD9L$UieG-rcrkg+1v}WQJ#!aGMTG= zNHa^Lr`%h?^Ej|va(_QR7nzch;(}?mcQ%*eIZu!i!Z^>P0W6}*@{4VeMvp}W5~SAq zF=h#{#&@hmQYV!R^T<3{yIv;UMb#t{@xFaN0x2zxSu}{U}u; zN}_lALWwgN8sxO!m;-C3wU!1hX!-YCSwg5FPZ?M*m7$>0_;+BT;zS8}dH^T8csj6g zg4Zkk7_sMW2#*Kv&>HcVo}RU}_BR$W9r}!jNK|-V3(+6{3KS;%j@6afrj=Uuuwvl8 zrU8{Oxtn&+W%fA=!(vHK4h)?`_n8D^gbFIrPf}-rJoJj|@uS9%Af!h24ZXH0=V6 zpKHuey19%bitR0&LaCwLP*%%AL5N2eIUxP(?8(=_wR%EKW=!NB^)-RlY|)Y0ji=*WQE#+{b|A4>?^UUxf@U;IJ8-H0}T99uyShGM4&n@5h$mBXo>_L)W;t zE8p;>HjzQb{6>)-&k74%c2swmkiFOMPS<1=eT}LWC?wtkF*?I#P4S&;ySC>N4@aNS zto*BKTvJCqDGt+wr@Cjx!Z!Cf74qh~B>4d=*MSf{@mBmXl?_R?a30iwKnI_Z7dh;? z=ZcQPxaC-v1}$M!=$QG0S6hA=-7m{g2}11kKrIF9=QlZEcJtR*$?A$A%$In;g_w`r z0osr61OAQ}k-*ldYb&Vomz2}aA3JN@x(Bn@B=*wsRW@Et2Qpj2$K-40Vm>~jLXO0d z5qb3Y#CVC$kZ&3x>0rVHbRkz@$Xdo9bJ}f^`yAa#ytKkYEHrLOa)sUWOC!k_Xdzjz z*)gerKq6HURiM}bM;#*5TF|p>8kh1)w^ME3!`p}<^dX6?}uH-O@}!+#p~| zFE!ExS(St#WcnuO(vD?Xj{HnRJZj5`=jD~N;~gcp%>9&pqhlG`p-7zrnlK@lsl3Ki zxOLxa`D}ycv*9tpZTaS|koBcZ%oDBrdGU(PRBH+1xGRWHv;F!KTU>1CKHg_o3^zG3 z5ap>g+5)0(-9UIU`#ao3KWpV)f=~gZXFCCw@FhVe@m@}wg)5AdWVOU8ll>2tJ_X@s zQ-D%OqNU^h!;%y&f86-obx-XC&vNs)940oVA^5jB0NX;^L~aO-w-+4=i*v=5h>p0g zB7jXFLxXVnI%CZvWAfxXQ$sKAz)b<}Y z>achG092n6+Y?;Xkyt5e6bm{?NojkA^N|@kIIwvbl5%Gt zc6|b$;d`6|9c;xq810LlzyZ))7w98akD+;(3HsGZdT%Yao&W=pyA_~wsw~k5++>fx zV@vZ>8HSs&8;}Kj#L;?SsM}oBVdd{|pCV zgmNyTbD`nLQ2~pv71m9+F=PXZx#_(hYnRzf`#zO>lXQbBuRCmfdPI{nsSj61-}&nyksZcx3K`VS;iLw=Ebh3r^hZWK#4CVqW%~FDHjws_?VQA zNEO3;fJTzEXb_~u>!F; zed;O>8U9$b!ew0=6M>-7bjaB5zYz>FW(2TvaT{8P&5s9 zX3Ajor*q~s{k#c0gB?P$^!uBNXR_v+?3bI?##Dx3=|FY)${5s<24_+-&o||J04(|w z#LCl~=pfL|!QrqCk%ERvK{dE%uIWi@4hoM%ZlNpV=dq zKuwrfBP}#rTdN9E)Gumvv&YwTT6K&T(}kCI&zF)xc%p26^WzHIJQT(d8Jv$xFa!rK zewp{ES2%j35(#%2yiUrz-Uu^O!L&C1UtzOIo$$tR#*G98?$ga-WC)AXKobjE7N{7; z>amBEFr%4zun)3u@uW;mzo?=*j&)x9hNLn@K?b_3B7(OcRQ#iHvt804r2jo0%}MIcFKV%%}g zspJ0H&&;CMu@X~VIXpb9G1*g*23-0iqlt8D?g#0rN{jDTNla932rJ&xSGho0KIgeQ z=eeXxKHFh$pZ&x3<~%q|Ttr=0n!6ps%5daP?bG_$Od}D54A0iuk#~RbG?MH?vwGl9 z?$5#u5pGxX87kdaVfG*+i}1F&Rr?VLX3dvpbxZt^rZVh|%!6*bxgNrDsE?2fsi?-? zj|sLUUtkCqqOH$nq&>9GSqyY33}$8&7vV}C6|7l>5t~m{^d;wYasHwL#fFoXe7a+G zxkJBI@bQCb|HTY|DRiIC-1p^>>h!}%w+6+;CxK+9F7-LBh zo7B`*b^BXWYmC_tJ-al#=)ab=DCZQH6^gI@Y69e5QvM&?v&G`h{Htp^)#~;fr3EP< zG@p%^;+4~g7roT6x@e!_MQT0^ci@I2#(J@13aQPmQTKx@( zxgR+Vib>^zl4}79Io6~=hX)9b(6XS2QPCPU#)}x+b1;z^X3mn6BQzD00e&XScJ4Q?wg_xMZ;MXl3ao ziN{M6FyIiWnopoSuKX@jPU%-pY?0g~kxp+9_(FqT=U=<>{CD}KJ=`;{{eAfTtK3`$ ziT0n~6|c%K<80_jKuaG+V&0Xh{!A`ZY|POQ(vr)xFVRy_al>i`zT3-cyCDWo-qM0D4S}j(gd_v z#BPT(7&N*Ewfd<&TAJOwOCvODZIT zw7+BsC{gpR+#HmZb0gM-xmZsaJiKIbgHLgiIwwRfDAebPTZ1Q(a;MAd@p)1t`uyKB zr)s!YZL?bygLKmuyl39cf50#HY7@&4ho%%LJ98?j(zM;S>8WqXQeI`2GcqI!oXIwt zp2^*nSvqzdy8Ws};$5^{3-L@yjse_~5-)KuBS?!n;bkF4Rv;qP|+939SA7w=DN zKugU9)g3U{)%%K3Q+S3Irud$Cx5oZS46GP^kq!mPr$Xzg^e?)ft5OQafY@^)utYWt|j`LWhBo8;y^3EOIrd0^fQXGZW)}lAIZl-lP{FF zVfkhY2g&FgZw_?oGXcXr-m&y9`zE~T=*PEf?Jf^m!5r_@xexv7Qmo!j;>~)P9mM-P z;Bb&G1o}sRCviFhV{=sRVZ~c6zC9oy6I6M8~QdJ zzB(VC@tUUk)@$YWs0-?1znEiRMTg{~*M?1|W-{sJ;&zX)QlzZG($ZG%f78mHqp*6v zkupd~Lui#`6Ddg7t&1%SVKZ%PDgS$Xyeg316S-s*WplxgVz=is+m2&+9wf580`mId zBdRS)%g`{k=DM8+08STbaz#Hxb=6Ba6!WT{UVFF&r_IcW?Fkb&&*Td_6rrua(i1h3 zm4>KC-}>APxT>1hn_C+@v%EO#nbZD=`k&($LLOjukYY+7dRgzR_w>@RVtd`eWQ6i7bb1>egJu-U6>T5- z*f6jRlUQ<^4Scs+7>qLwGzJ0jwUc>E#K;qCPAC?AMSWye$ak44Ns2k3yr>PiAa-$ML6Oo*X zxr`k@-|JIJmKnh{Emp9Jql$}*`3QAue9`QC^C<-=+3Bt9U{HrI2rE6-WU%b-2vjPS zTFE`wXm-teCbAjoNz)u`ySgwMU3y>T6FwJapiWtv0)!l+fI;BWs4?@+F1M@ zX=eJx1Yj5gn!}3}?M;}E$)r&Xa-M{Wv<#`LH(%>mjJ_5uP3JFUlZ4Xy=G7J{IwxiX zNY5lgu4s7pU1PEDSe)iBRjc1lXp)8bj#grFw&Jhh<_vH-p?Ef^&9EH^S^)Rc#qmXy zIRG@`0MKA}mo3}=`P%pQIeHx4g#W3VfgmMzp^XIeMAok~U<-Sp|J)+R&g;V8N%UfX zG!-5UhrC`+O~!?<&rk{~z&x7T{dJ;~d6gQ+2Kj;=y`A~bnzK%tRRLw)p4=Cpm9UDV zTjFu?)^k4aCBqESfva;~RE)*(mH1zev26_iCVHk^FX{L^XVqgydEuF@LEh$!#c2SF^nwRpk zu^^;^DnVM&8;vH%qmXYmziU6YtPcpF#0ccn^A>Ah5-PzK*3uU7>kO+&^Fr8nP=O2V z2==6Em316)>wP&kZfa9>GfAQum0OnMr32@ zYor+D&j^wLbHi$@XCYs-URene6JsBYMxq9df6F;{tTbB5h}S%zdjecHmI53QUVu*M zr^{_E*;nOMW?zCF9wr5r%NkDSQ2HDyIRmRH_nESWz|pg8Cih!mDzMo{1#PSlIDcq9 zJ0_;E7?BzXEnB^p`!2u``zwE+kAHS&N|=f#k>ZD#zG5S_W%P+&HwIbja_hPE>4RQ` zImi7NQdgP<-)IE`nHh>G!JMlNEcQ#CfTGP{2@b2MOsT6?Ls08fP0+zBYdt#X-_2|9 zZOu6b>}(Yr_`0K2u+K3auzSBYudI^ysD`=+)PNt5mkCzcnvX85{9_Ip6CTh{@1rh; z27t!W+{FAah%k_%bn1SSFS)n}91?YT_3Pfw?{_KnX=2R{HcPMT*hVc$223u>`HNIy z2l{Kmi6Af2lwBJo1V8?`xC_oSVnN3}EKP&l!U;4GekA1}cySeRC?^q;xx|F%g1b^` z5!hlPIF@VQ<;g>2WAmQIj5dTA7C&CpiV@?Q@5zNziYKpy7=J!9fkIvLG$5KdM#b}5 zD+=t^kdR%Xo%Qzs*I~Kq(y*_Rp_QhXGqJv%{eofBwDKo~j;eqd3D6bDsEYtI{)F10 zBeqC_0_x|rdFbI(s1z9>xI9TklexxlPUijDwb}zBSf4PjSNlVE5lT@tP*Ht)Kxxr2w5qR<6bkRk*iOAGLkm z-qnyGzH(RZ7C5R`C6=J=L%{WYO)hEeT}HT}dj6_B;e#Q-`|&~7MY%XAbI`WMmdg^= zy%Vq^0uLTMxDGld#z1J|4|4S3sO6%fl>bl9LjN?vVy(;?T@bzT2|f~6T9~!Ak9qmz z;QHLUU|mQLWMIvzcGG!6QnpCHI*e-^G&rGPA7Zf0b4DSQ>D1C#=ev@gP}CXueJ z>+b6Dko411zrm_tEq|oPBx@00usP1Og=;#x!+2e@)y%oxDrCQ@k4N>5K_a2Qgj>DT z0mbI?7C-OK+d!HoaNg|ujpk`I^$B5QO|WLQbs^bJ+c_3Cu;~ixQWy64ALtu)3zJ$eVWKp zpdC{Rzm$TJo9}=T1E-eSTPS?pq8p(7m!K7I?zh{^pO6nMg$c4Rc(eFpM(HVx)!|4Q z3Ocg)7vKEbk;W|bs%yi@Dq;LYs=YgIuUHb#Ni4B~Hy5>vf4oX%SpHZMf3XeolJ&{; z{k6%gQSeklwHWlh2mrcQO_EQ$B%5OJ>$5c??AU^&Pm0vFw%wV!Fh1+R3)i)}o<*Gd zodEMk(k(nv!W=O@&Q0P*oCkz$0{9MDiT#_*L={cEJuQhCx+_DGd|0A|oqzJ5=;N>N ze4c5D#0ffI@o5!t*ER^yen!W#h-2E!uy-eJXW-RUs(W2UGbb?mpbnYaKmT;R3g>`g zQ3Hf}utbqs%-_*pEJH&rGipDTjmz-TrW=*;>woW!b%?Je#V^IZz9#Dl7R`JRI=2Qj z6w)nXd-Lq(tJL^cSC&PJ+s^LkZ!-Hqf`3bB@z`2iqaXs8HSY$3u=(Ibo+yw*rYFXX z6LZU-YENT?3bByx9!TI=->8S+?Oh@cxP^yYmjQs+3U}&ERAG>s=7p9%$yUr<`{Jki zrsU@Qc*B;~?MAaw8VZgW;m?o3XGyB55utiuQ`kgKsK(rPm#rm8BGuf9p(THY+401d z`ei2(xiYsv*-x#rTvqnq8&&R&yc~N#HBPo3Q6o%XJNR>C(>|Jkv1Tr$u{6+-D7OUv zgW^cG)t5a=zY^ata=6m2!${tRBj>md@wWU5pNO*I?N|t!IW6b0ek<`O;FUT3dtWIZ z)=2Kt+(dVVTn(HNm^%>Z+9LIJ{rzlJxG-xfRse~~H(eTGC4rqP3TRI_PNKHU>|C)b|9wk#_4RMEvPvcSma@rO>1QO&ZW4N8ufGwz)g5{%)aO($7wQ~nc3-O24Ey_G z3VOFF?pv5WGaULX+Ex4CA2|4pEqJPpsYp9Ht4VROIlPQ}x==q=EL1O3&IkxdFEBAN zrHx`e_F)_%cG&*M;Ui|fb|D;%s4-#de`2sM#wnADkicj(hO4{bN0Um+ygc{kmb}3i z8-MW`kJ$TOYgVFV4~)(G)z{ZQ@=Rp!1i=3kF0OQzGvn@y@54BTClNj+6+X?VRvgf0I7k6h1Vx0Cw-0)vcF^(*926itG{2nlZDi5&u7b>AolLU zPW;NT{suZ(;d&k!mOp)|si^Kx^;M@o{C$&>f+C*D!^`VL^SirG|3atin_VmK?g!v0 zmBg4>6z=(x$GALk_rUf0^7O}x#P)CA{yRPgUKiR&|D0b0Bt}qP{#A5LOat{obTsMf ztGZG}pTD2k{LPIQ;~0yZtD;QFt?gfxPh!dEU)>b)gEpohydbZVe)BD>`@%~Lo^xYi zrJ@pMHf+^7X$7Kfq*ty;V$w^8BKDSJWJP~I)($+rEieZ`}3 z$ktbp>P%kmq`p|5Xx)6ag>Tt!Rp#pV>YJ}BB4MAiU&7hy!Vn*y$WeZV5-lsM+)rg? z&ce~sCH3F@;hB^pqoSsj62SK^PJ`a@p7k}rli(1#S4^G8=6KKJX&Z&sVY`#-4;qn% zDHwe9yF=JEHM5ajqyG3+#;@io|$p!Mwhhv*4ckUqc z1nRD(1s$hZgin?IxS^>mGi<_gHTz|<2fwoY!92hl zu4pt=(Ww^71IagLTBZWu-)q~{w+zhjmUb2CU3;OYagr6jV#Q;%Kbk~2l#4^f+g7#T z|HJ*#al^7ZYr$xh@6R_hlaKz&X==|d4j)*6a$ge?_LiT|o?$Aa-*^;yB|_c5kAA%Fd|kb zu%S5l=ds5lBO`ArX3ouWq}{l2!(?U2I*};o)hh}};u{u>+VW+f>veZpo_&v_AeIO& zy<_ZjI)^K4qRlR)s)t^#wd|ce}&i7Br zn3(Pi+l;lc4gSg*Kk((p)^^$41P2d$30ixdnB6dz(lcNztRJadtUb;d1{_ZWr~yw7uQ{$0|^#f zRI1}!4b&>xph$FUa%yUtJn>eKnsqN8pnw8BK*J1(jJ#A)UEN@jLZeo!JRXPrE5|4h zN&dcR*?PRVH|HNR_{2WT@#iy^j1&1va8HB#(cO@ zb~+Ac(=%*d)BJENU5cO4iX2r(C{;s&`K)OmTa?m}Irio|amYC2C1@Pr|IYNh<#@Y4 zTt-MyF)03%%ls8;w`IKH+V)a=I}i#8XCWlkn@MJu@g*Z2stduAv?-ql3rR`8XBn*-Lr$5 za3zFr{corBN@+*N+s}mr(z>|uZLGNsyuP#-=?B6krKL%oot-CvW+x~p`0_lLZSFT6 z;24k#c%1*SPzcScNw6Yeb#?Vnja=u=cen1!I@vL1f4QGxF1@v2W_WSb_NPo2yZzxp z%JtPuA>p|cb0&2ftP{y2wltIXHA%ntYV+t(P~z#5va+(;1Q}{qX7fLVLD~@JPLE3O zalXoTI=?qFjvC-j{hA#dq4WNz6qLBM_0p@wAfjg|)!M5K06;xCl2OxWRZtfvj^Jwj z%*5x^aw$3m;@H^OdadHZ!ahR2mm75A_H5MBEX?fac7G!&k?Fu=M<+X{l=J`Di~%|x zup5GYC$#6Ai(p`2MC;wW|2^VH`u&Pi&M#lan+v!^QczR-qHF@rfK0IO63I#or3AI5 zICL_3LZ#E5R~3nTtl4kt2kVQZEDv|jq`Z`y%Q|X+GnL3EARuC3kd&LJu$tU5IcWk* za`IZ>{3EEG?n9>CM^&o+Z{(v2zOxJ2uhArBcY?Qdy0`Ih)3D@)TwDNNT4i_lg(v>4uHW zmlw=+JBo``Q;mMNWa-zYX$U<2S>a2r2`>Cm=%z>B2yYJhhd+%|dw=Y&{2SQkh8y~1 z^XFIZKscy2xO+!Rij;=twoM|iS1KW^H?aE%{;1+xC`Xoc_Jd!Sy}iAeYbr4JJnv_m z@?zPGuEn$gzsmd{{W0aw@f))n+wtk&TTwvHz>^98EfwA^)dU-#jEk$ik43sakwz)| zcCa?I{#%+UnZ+yjUi%o1U=>YZ=2yl%9bvcl9>H7mM&jOOzuP12@-|JgZ52F*OCxmH7Uy ztgNgs$Z7Qgo1^7Cl_ctYUbW)-XKP!nzjjuBp3$3<&bUf+9gT*y6-}ZypK@lYDfQi> z*?dBET)1_91xo5}8d_SU5-DtFSIpc6J=FkcfGM!$Yvll!u@WR<|DID&P^it&7T=Lp zuE)tz0*nUBsQ3e2FQ)b0$K|=D+463Bm}Br1T|7&%kIZi0b_3|(X0Yn0Fq`#cG-!qu zwR_&Fcm>VFn^0;+y93!P^E|g*Vf)mTJprwB0>gWFth_IH62ZGojxVh1G$hf=I~INjjj;KD2D9F>1^#`$k{*nQ|a zo}A9fkuSbQv_m_b*BCv|rQQ{~=SIuG71IPv^z=9yqt%CMzpF~xV+RALod3Gf&Q^EGwr3#EXLq7{HL*^Q21Z_G? zYLvz}$@CHKT^8yH9}4hxr?bw*Fr?t$=8*j7wMF#9t&{)?U064E@<-d>S-)iG2}g5* zvC6Q&Qo-S)zgk2uy~yzsi=C3p-SlMpF_ZAYLloh0?)k_Q?-Cta+!^mq6S`_AJneeQ zu2d4mOD1OfxK$`Zo<}XjTYZuj*e0p*GO6cjD?eMA2g8nY5@5bK0s~3-Wbct*&W8)lRIb5{; zI0jH^-@_q#y8WH?hu2|;ONnY%ecim2Ll!Jwl7A%8F1rEau{aG^(0+Jf6TvvtD&W9d z`B*|{3sBg2otv5ci31y#$jyf&4}bXx1r?P~QWDKzQ);+VDUfkV+1M10UARsmm#XRy zyR{Nn0Hjy1)<+WI?RM*qvG^~WRcLfy_bxpB@Q+pbJJk^H$fpvUI}3A!7}ot*`M19> zKYY09?C$Ol^%-rFiwibXopqHkwG-fY;2`*7J9jS}92}&%c&$Zu>#x`E`kh#(g>j7X z*VK0@8E>1)^zqWi%2ixfHe%}O2RnROkSydWbqnlmBhc6loE~l(HeQA^!fW$PwcjQs z`2hj80uq5~n}#FgVj*7e-%#~l52JTdqQV!Y^1AkZ72u1r{-&qoMWqH8GBj4@fBU=r zMs=>j^0@O4F5$#PMqGz+@y~}d#`5aw5%;yU^xh+gnT<4E?|<4>H`>))q-s zE&96vq;6E{KUyAX&ZsT1w@<*O-o>}-;-@a< zAKFZqc}iJfH@RiVGV=xb`jS9pAJ6;+(hSY&plb`Z=a>z=prfIZ3MI4-Kzl5}?%@CD z=-Fr)xg`0EKYsk^Q`*k$*Y{_ufcl3aj>uy{ENZSF3Zp}h_Xoe?oZC!NG2KXECkQ5L z-b%6@YduLsMD*bK878gr#$=`GW*8S@YtAtWmnGt`NP?P1z9bHt!(zm1ur5yjfl{`C zH$=wfF0MU$Z@-9RTo*R&S+209aeNG#vv0S}ir^;TU>5`48b2BN{^n_XhGhNS$)WF7 z(>4=be1pvyaVz`GJC|U9BdSS6L_`zleI~y@U?q>j(w;hdHlZVKEA3dnq{JQAR-!nH zTQ(GhBIZ!#HR7>6(|+N5_ad21=KlO{`Q`(atuy<9GTYw1K4A!X(vZIK^FJ>H`mj$> zP(qumb0Dx|lx%0Ju6t}@r0XW>XambJrXaDk!Q3F@DI1`c_nd1;@#*aBR1|aHBp_dFyICWaalZdQ)#ZRuWv6*Tg5Xx z`tI`z9GSFMO<3}*tBZ>dH0o|EX6eP`{MVo&j=h$9Q7u=*N)nUskLIS` zmdYbb%2IVdH3}nOm!W=d;A(DodxzW_NH1j9uPbvfl`T1BW?r=hdUF}1w~Z+()bz!3 zk@Khb)=621;z=PIGB*1>k{kcgR-@AAX83kz8bBZdE1T9>W%wh&&reWQHLUE$Uke-7 z<6Ez7ZH>;;M4YCe`D!@D&Ivuc^EMkf44BBpRS-Pok`J8}-mp#uV2=2$9( zfU3a{KTid;JTL*E>g*jDUA_TmRn~zXHE7(PolRu%^Y<5$l?@;zBOA;S3t_zo|LrL5 z*0#@gWz6(c8Jz;jgktfZ`;OOnoSID#H4l(cB+`!~L%I76`gW@I4>0X&= z8vnA$c!!tLnJF|fxHJ^%ns+FP4YNK`V9?!=Jamx&i|hxtAdU}D_G)Na|3jn3U>hSJ z)0*YbnioAVBWS8s{BhB`A&yC0!nxaLU;Y?$Q5A9@z7f}6f{EX9kYToMArIZ10Lq?} ze{IGuONRIAqtMGE{?9z#^f9q)8qPipN6LpXi(U?|tRy0^q|!4oG~sL!DS3Gvx<62C z^7*sqeCOeJKdTuaXNGh3EEPbKrw9pYVR*|YF|{~9GQn@X%dzRq?C5!j%f>7=^7C%>4MwV6rWoOYc__O6CmVVb?myTl{ik@3O#kggQ5&Y{$?NG26+BF+ugr`a7f8{$vm-o|L|~nEG+HS7#@7tsTY;0 zAGT9b^xQus)$4tf*(@fT>;t8y&NYzSX1{ve?Ng+MvUuOK&6IXd*n!6-m6W!&28y~~ z$X-|krkYAtWY7vO+d|{F0;r4X#Zx^19u#{czCzg5n4?=899>4D8-s10%x6+1?R+Io z0DUpF$)Zg{vEHz)DA9?F?n78?_{N@_A4hz`0RvOYAbS9m^fRs+w*Cz9uXJV9Z=_i^ zAPr_wd-O2FsDsPd)paU@Omr*apf~CmgeNFQ>+@yBJpVS&C*Rb|pPYnmeo?cWwW$qb z-h5Y(E1e|vx)+{R&veo2UIvyX`}R)`5qAdg4DwDGUQ39Osv97FUC$EvBnNlfOfZAs zD8_RsbEvQd$nTLBki)}x`S=EH%tz!54O8TpJe-}qJ3G}=7a|yTy?{;;$E#n`l)D4_ z=c7d|BIllYi*4OIoXRAa)?mVTW|vtI|G_+M$VF>pub?A#ot>)Oo0LnwE5VzBi;+e! zh|MB$NA*N3q3FOPta~zS%W14%X-QbUg?iotb4nYh%5&&s-=XMda}DPSwonfT2Xinz zdCLa`yGu<6hjSQ@PluSiy=E^TUBz^K#~ZRD0mDAW$^F2l>(k-pOkLlR_97+ecE2Z2 zFqq30pf$v+8u-#OHI=wrUNo zj~8czl$Dib8mzXh0hwt%ymvpvsJ>g9cf!MieM0bXgeJG`+&g89W=)^a(9wyc!_ii^ z1#azpi}4rXbFN{E_oKy8RI6!h((pt_FZ>}EFp?{7370e<4a z%=~@BPzVOcz$m?_KfA7X;|Byog zfA37m^_uf0_g|GCc-po|O7|TDMpw3y)UpL?QCq^hfZE540>Vp>*(kXtGWVLdxbkw zqT8GvbDqtFx2wBb6Q;>$!mlvx>cmzZp?N&()-KcK>S*!uaDXIdvwPPOk%jFHoRyk~ zxHrjZbR3Rmk+lX@iRtT1jEvDTiL%+@OgOu)HH=Lfce-L^dY-wq!! zv1y?q7Y@Gc!R^tpqog`i4-%YyK@wRH!=YJJ*b0oWN6%;#Gre9A*~zn;4G<6gOdS{) zpb`*!vOwhwQevBC0bdy&inpbxlMQckkF@Z)J#r3QTpkgxaW|9nj>Rt3hs9RKSr9)6 zycIu$%YnrH_(TNEfYO5)L)w>7-QCC(h2zlzY~Ef0h7`KwTlaOY_nVx#u(S@Cqm1aC z2RNtUBtCb~XlNG!64%pUIWzi;+}PMyb^3N<_%zvaF#X^7$1FHm60Pm9f4*TKZITZZ|NXl#8{bc&c-Irkly1zzCY6-S>~?tb*Lg~1AZ8^V6yM(WYhPWXc{p<4`L;co zc)d~gS<45xnYv#YK0H5IvVD(9$iuPg|MvCn>Fa|Y_?_tZ_;|%-Cx9Y9K0i7g4tz|B zl)_12B(y?CLzASqEU^nO!w?`QixQM7riL(Qy4t}l)*C3OsFij^D!N;ZLyMH(WubaU z40dQhuJHk1;dxJCijG`k4SE~4U$y{|qku=K&ZbmJxWldvVdj@6L}P?rX~#cyfc=HA z=ggbp0T-_Ar8w~iy{B;B#s@Eok448fU)8PUwHRxqe9)5l_E*J(`Odfe?itVE(&hGl zg_lKi?`da8T4@L>ZT%c#DXe`)aaOyHn3x9~ilOY{s*+PFckM(29SO-TkMnF&h7Hi} znTPq}9+-!vo#k}e`L0h8U<|RQ>LyMVg&9C39mK(>Lf)hepKvR?f~>$7mRV1#>G&cY zCFRMiL{wYD!5z5sVaKFJuKw_{)Lb1XeIkkRQ^^{oH6 ztC@A*&L~iTLj5n7#!_3D^1LS`D%!xANK#@5r#GFQ!&cdGBMuJ0uoIkkA#=}d`?VJ1 z!qyWJ4W7AX^+(+r4q*8^a>0Jd_%(yZb5U)@l}w0S_T`Xc(%S<8kMz=|$R%NqS{Pm7 zTLJcH74X4(K%mMCjwO_mK0(FGn)`uys0>IMTwXT7>S+Y6v~q{;73U%rU+e+#7!^^NOJG$StDcG`cCXR|A^ z{dWs4;wgorKq)UoU@7`SWUGQ+`E({6k3tEsicaYXbR-p{)>i^fHM{{GXrAVouEP8a zC2&$-0IpL|h>)>Dz>{iWe*~ILKZMkyZ8m^bsj|=pdRCe+>7-dHv#$r}zrIdK@B^&l zh7kX^x9^>#wc+!l=d{LX7|)_&0F-_>38fh--8#bDYILfMwyb^sBBT>(<1LI#Ti1RNVa4@pa#kU%Tq#tr2G%#Tz>VSz8VG( zdf&XbP^(ELXbKZs1BA3xmhSn|?|R@gk-FK>p3r%6NeK4$k8zb&rvSL1i3x+7!*Z;? zK+%mk%%eu9=Ku5{gR7YJ_7caB9AV;=O;M(Vv7p3xgD=6*V;)vvq0;$n>yIx;NkeMNOgdTiS|Lsiod?u8q5HbbWXR0>W?Z zwj~%UGm`vb{+8sUTj(V!^(YJ$J<)8#HoeAchJDq+WCeVW>5j$LPHLg|K{l?U{+Y26euuoTGbi_MlBmh{d*# zJ2dA65v)W$wuLa7{hJ8ke)Bp}mON5%xp{W!_G27sR9*m*g%4Hpq!6ju(gq_H3#{)hiv|tYQYYM$knl>0 zvxp^lf1&?5mF_akN5{LmwUOx^L?PeoHMSQouOFwyZ|HdjBEXNlSdK&CI$`*fe6GM& z`tmN;fjvNElxCvL{{%kOVM6;h<5Aa@fdgAv$iDrF$gvDnTCt|Iwko5Ea#AWw0dqQk zeBMzpR^zT`@t?Y5=(D;nfeUWQ)V;IdpByH0qJq^k0Gs_mYi^pGli~{? zKB}Zxq<#&$CK6&Ahr0D9aNv=@Zk)x7cy*Wj`d9S}^@(!g-1NYtyDSzGKOSly|7-^0 zR6U;_xy#w$mN$_W3GpI?t1|5k0E~zBsE&q63glQba%p(Ii6C|_X@s_3=!Nu{#{C?NML}@^o(vZpO8Y2Rsf~F$ z0Xy1k*id0od#I*|Od4dd z%IOOK++0qY41(@OI=J~t2y3FPwo9%@|@&bWxS6L^{O^XMqvZaL#E%D zzvA0}J zm>o9M4LoMO9qoBaV^I>C{SFeTf6p=BMv<0jKCe1AAw*2Z(a)8>Siav&@{2YnkPdoh z;xNb%#VAigTFejnO0Fg{a==Z= zSOiY5xx=api+Zx1|Lm|m%-axiFFSD>nwXf}2L-AIt`=%mR(S~T2*hb(iWu>(l%|63kr&zdzppSZO#l z^!*E?)37;$Z=CLDh7=>_*zpuOYM2y=?DhnfC_>-^W9e*KU%&50&bfqHwUoJG8z z^5c?rPYxB-gv?u$NyrfQq5#ySY9mTj=^Z&4{LG2%+wF(SFahS*3db0)L2ogEstHxn zKC_VF4A}G&4IO$1atu89XY9@09o&S8xpiwv`-c`(d-(?23UZ1&GPFHcxJN(+Q4DC3 zoweeF&q4L;hhreLA}hfd2Pfu)XO$Y59Q_iWZQ~SkVx6IxM|whU;lCoZFkDa@Y#k}t z1y(}3n+64?%LA*YJpL7ZaiYPo2S}+Z7Ew9LKLRhs=d!5Xvf9d-JkbzOwL1me(!^1J zHUAEW{Q6Y>h0$_MIh429EEqMN4w^~lwLFfrcvA?t2_vL}D%T*ry+lGH!h#c}MpEM% z*G*l=fVJ&Y15Q$e>Tq48lO}h|`MU4Sp)H@h599RdP96Fq^v7-`+BhayM8_9W=mk3G zOVjz*=H0CKR)7s_z8S32^Z~`r|0>9nN)%#8kSB+*4$#P}HInAx#o~91{v*~fo$P&_ z56h5|iOKwR%fvkcHl|bGIdT>u3PpoHO}@@X;IzKZ)o+)#!;c1l%hyjn7`2^6|Dgxl zUCB~)%MQQ-N8*S7^5KQZlS>i>w;;>o0LEZ#>grNIcU49WSE6NNJeOOk%cH^bOY(Up zF|DAponH;iCPe63Xg^draPW&KN^_#8o12>%Ek@+6VRq{;wK>gCgvkOGIg9n6rklk# z#|Su}PZ(nOUuyBs+J7r{q*cQxZ*LE}a%n3++`kGiVi&i5ncy%_1i0$6KEhX1EljVX zH1p9g?I7xc?)wZ4!(O=Ix+v8`t29s%`4Mshh@I`Bk=Tgo0llukKYt$1!&uq0q#Dq3 z*voyqz3*Q55;K_$csQ_W*)Bo#9_fJvuI)7{N1^jFZHU*PCM@jo+Dw%*vF9)U6|D*% zGObfK{n3+DJQ;S&k7QKT_NKSPhuze|$RV}pD}Dayg-}yt$(RrGk=;d$3Cee?ZeGMF z!Oq1IWP8}@z-1^h`j4a>;A1fFNbds)XgJQPQ};om_teRgZ^GS)KBpY-&V%-Ay5+cP zw?xU;jf5{3AYI5XNN`TZxSzqC=)W(fM+aaB$b2PCCB(!Py$bn?l;?UlfU z?O8Cfd)V2-gKM#NP>k?bj0I}Lu=%^(4!SDTR})ST8#_fLZz96t zWxNVC{|SEoM4qpae6BqZSy&SCmf8Ut`=)sh^JcwB*15F=it2JK^7STyuN7wI7aeBlTPz&a6r~C2liv0*5B*(epi74rU1W z0tY3N%gVkOY;0`EO%1k@LqJQu;?Q;dAM<~If@n!E1diHtO_AjRYmj^6kaGm*0VOu1;JV7hMfI3#lQ5o9-Q62p|B%xLm5r|Htmjg zs>-i;pK9VQj&@Z&^2+aqzcD2Xouaq1 zI-XM48HaPpv_EWr9Kh)G7$WU#B{R zy#uF!4_GKs?W*GY*MM~0>;D1Li6y2G_|g88QSA?@m&w9k-NDA>;E}chxf+epmMq45 zpAJ=hb#~l=mZ)okOSDi`>3hCiFVLeTOfx2d;Tv?;D?o1PPAs2^NxDKK5EQ41BZC21 z6of3}zNY4D8JJoY0VxuZue$-2h(6S83ZdoPF13g|Q@|lx#w^9RL&pcP+7Z4!B?)8) zL8y#s7GrjS>=c0I#v~mk+hGCq*$lp_p04ckU? z!kzZVQ-%s3Mmy^;g^TP|f&i1fs%hQv><&Dm0EfIK>{nbBHa1Q}4ObTzm#;>kSG)|s zI~~ddVHW!nP3pj9Qc_;P%t_hV6+uB;N*5$-`D7@!gAMeFgfTrrX}rJsmigB|d~9BR zl6MV3=ja|<->T<4cc7~9>xzJQN{M`zopU3v=u5t0_<0A`>rjGi(5gaA?TbxHzG}ep zsV>j0fLXca>am$jw$YuqRp~7RfP9$O$e>lqE{B6wV;~~>ym~d@c}IPV!37ID=Uxg> zw@=6;ix;^p2jo_}0)Dc64W`rC;@zXSasjG}i4)((swXEW&C(a3ruq3e;p@(3cKDHa zjl6(jo6o~`B!p?c&^fJ*dK};M_{VnR9X`zJGL(=^EG33Az^5U4{MUQrSB^N$DT)Q= z89+`7$L(567Rc4d_Xci%iskEw)jY09EePoovg z-f>kXN)|<67vJ2~1*?CKtU@CDJ4^BMjM5o)vv^w&Jb5GyRphC&3&X4VqF8c|W=0go zbjWYNA_jznc9w7#s`yZLGwD52pW^dB+}J93qluDhQ&yjxoSb~TyoiB&q(uag6^+JK z)YJr`0v;lnW-;~SD2oKY_V-fx$7*&ME@nQ@phi)C<}vR#6TFfb%i~y6+otnJ4J9Q7 z77Z8X0m0G)L9zeG+Iz=i{YL-e@4Qt?Lq=LkMfNO&jLIf^Z;FzYy~o`k35DCpNJeIq zP`09EL>UoDRzh}!jNiHL+qmid`Fy^A{Ql{o`@UbV*Y&!tbDeXp=XsuU;M8x?0=^qF zq#A|ebimF7mr4pD58VXVBNLF?q!Q~o$n?A@B}MA`jT;-V%rdnV9DXmvDhJOnm~JA7 zZi5=tK->Fje$m07a6Y~AT{x245Zu56L>*?oi^ z%yZ+YstdR=MF&Zqta;gFPr?19JjlVWvIe1(NWlwj%J~T*84AgaKlVSw2b_Ktx0%Ef zF@w7_Hw(yAFhB@V+`wJQLkw&Y$nVkb*W@y=y|Jo@KqlE?th%S2*Oa#CN?^Ny4+Aw^ zOKqX(=3q77muojHItrRCUb_9ZLMm?-0HGtYz!ZPqpH;f3E#UYw<)Q3Wty-CN``>#n z?Y-9q!~{nFCq2ln{*YFeMaj~ln^|)j)-!A3;pu)Mt*3?dwggs%SFlIy*$!8pR>XmWH}a)MXJkx}s%a zL`c}2I!Ob77#0`*7$iGhh1~;PmCf3;WJs$D=OD0J-?9;wQuQpc+|Wu zL26%oY$pJjI5fv|23XNypiQFcuQK=xe5!f(P#^-4sBg#ieewa1xo+%xYC>@{q`=URM&A!8B-J%-JbI$_ekWaPQbzVxENN0| zf@gwjuUKlWpA&)Fm9htAq+ZW${=7s9x$;@yiDKMa)fo`X~+Qe&oUfJRJs1#2Pr8B*8R0 z9yb&wn31?oO}q(n$+5#0ix9_XEqN&+xq}`#sZr! zG!>`uiUto4&O4%(QFK6108Lx;zY!q6br|%C6YB z5_@IW=R}0tVg`lEL<~fI)<7+9(VbvGQjcn~IHudi=|aH=+unD3?3_^~0upT_&r%$} z7autHfYa!DO(wQ*q(F8N6kC)f;Yq5Dov12RoZHQ#gg@p-3T@>5eMZ7|>og?>b{f6+ zCr=QQ2`EW8v_GBZ1Twz5z#_1PvkR*4X`jDGic1ryG^JHg?B(K_YS`nj7vH*nCq#Hy zw)OUgzk8HnEM3Lu=%!gIzt?|zVoKiI=A$PxC8l=p9i9y!RMDFNAE)=;TMDdgl$?2a z9*|U&U-8Ss1VgFTwF0EHKy~4C1SrqN9wC@!O=&~uN0cEa&=Yd>0`4Ss!@YqzhR{p% z_5xRVe00jr?N@$&zH*knkX|W-+$KQhMp>rA(8MNz;?X=s&7sdq!61LCozR4MQxU)A zs1M1J`|b2dmG}G2mx|Iq_GxQTeO>1${)5gN_uj}WD6~{Mrw)YGIVh{qngBlwfuUxp z0PK{VIm{~hBjUuW)Of$y+{8|qd+<#=3%A^*EAA2YR}ObuYUHdLb}(88;l9s48msf7 zoMaTmPy=_K5l&W*wTjbLMYBLyP+5+bARx&~8#nP_hbwoB2_3VNyYKf`w(=2fl6K+( z%8yR@@A~AW%6V&@86mp{hO9foX!1`WjbJsPIc&%)Zfa6Bg9vS`4FHQ!%j(_Z3sLqR zKr&JUZ^+D!>G3LYADyh2_KR~{I+XD1Qi=VCaFIA8J+5~GApq1 zKl9?TwUzuWercapNUXfP>e@M19_h%(p3#bR`M#gu{>MFJLV%EWaT-%E^8 zb4&w9Qa^k73nRa46#)!`CUB`2q%QZp0MCphdWQp1l2&&601 zd`6~;ZeU)lXQ~4pHZ%%KNK8(a1qcYSxB;&V%LbuejDrl`E9AA))+<-;P59LCf6xYkFfHxU;>Xutaj zEg`Q*w2WmF6^VXPEpxpeN9LxO^GT9_6brS^&l)i;yzqo7C^EeYs7r|-9LY(#u zM|i;5RWq4KsaR=yK__N(>PvjWb-ItwC~g%o>Z>#m8Ws{&V6h|-?GxOq05S}fvO;8% z9pO~Y?>YYxm`)W*Ujd9sf@lM`(Q9I}rj+|Ng6j@JnPsovC-)6=kiIu%rfoRREA~Kq zYm|vvM@qqci*u=W{C*Q?Qrd4xuzDPuhTG2skmFI9GwYceebPUMyj#10q_>oFAhu8$|X1&^}pm25Q7gJvV*NdPdua0CRx8 zKg#n)*nP)W6)em>BOD~=g;JEi0d@W!WDcmbw4(?Qv{|g?RV6qR#Bsw9u>)hf2>sj) zIuHSwbfb^YP--ibkj#?g1Hc;!R0fJmRzF=kYc3NyD0|kp25@h9G7UWWcj;0wI<>aA z0la$&s_LudJt9mr!6MTx=S%3e(Hhdj)#}Z3yDrXaRwdKO5Nh=hzE>aQshQh+ivPr(*^&L{sLlJSTItb;4Aa*h&s?NRm z7zchK@+!8G+RaC?Qxi<$5{1-k<~vLO+7S9|BMl4$^=xv@4zc!R?%Zg|Ni-29Hz_Q^ zbZa9-X{BXkCT5NwaUa9z0)gQ0i{zuLclGulMx?%h!ppiu$71WORD(DNKAfp&{GPLR z3Pj6uRTY$Fz=U?Xox;CN$Rt6*$*?bspS0yAR(+SINbl`&DSGrJF9j-yYf@r=N{rv4 z_aIQ0-hkV}9PihVot^_{VlW~9%YIz|jDR644K7`h&I_yf*wrLtkN`y2{X8`3LG)E+IVPPXdvSzX*EI-l^`}vO0ChbNU827Uhf7l(jITx2PehMW+s9(85rT--jfJ z+dBgKb=fzH0ova>?B=r}ZGa}vL+Opa(qGwtgmGYjGsWTdh=27d-q_8!V5{`ykXi;r z#*?%i&~kadZ=EadjHu~u=Sv43;hBA^$9rO+fE3Ej=V{<0powdO&AY?%38S=bRfgdl zl&Uu>uy6nqD$v*8v!aT;JCVEghyK#)XmIb0fx++oFrQlmOrdzEMA(zHCff(4G9mmb z3jrULjmyo=-3t*|EaU`+yN-{Kv)9+{h7vL1fQPQ5avPq6{l%-J_;^)_(7>!HmHVqVdC43-7?|qdew4IpFUO8_n1=4hYGn6yF5O(0P%%Hucbv3 zu=Qw|xPO3VM#}dv>_sW-DF)fUjN~%nVKtEYK1Q&m_M$CRc&$-U5K=3UiR_1bn*rbz zp~SHpTXy!M0Nm}{x4EYn*R<7BluhwW&LD;ZVDRr^%Y22X^~fZoSHdaFxKizjp*)?UPUqOm2u* zRv#SOyQ*W$Y>BQiR9##W7$%9QoV{d`;CfTq_xn-d0e|^5<%<4d0fBfnF*tM0g1KJ0 zCXCG?2oAC2xiu9XLx4ctgXFrQ!9nMz(E8zJd#LM*96=ayPeieB=jF4Mwh5Y-l=iRN zL``=9_0u-W{1cSYJ8ooD8e8}Q2veU+y-ICcJ6SH~1>6U!j2w}zWF)}pM9YZaS*%Y(;Fa;H=322y{rmUJ4XgBA6p?NRur-k5YR)m;Q9hLY8i4J$5Yt2*Z3YS{p^qq8hCa z(9ng>BadQK=KfO@8X5fNy_q1;#x4+nC<>;(kT(7v(F2A(fv(9k@rH4f(mbfx73z#M- zSApt8Bp(qIl-LXY0&Txeyh4d{(EbdH(On9I0-GzE62eWO#Igs=i6GcfHWVZ-z7x% zAV%9huGdL-*G^-Y2Na5DLkH3)#fK%v-|)~0%N6A98W-32wZ?Npx|{eeihycey$`XQ zDxg@_?(YQYjCXu+%A!>fr{JuJm78t|EDi+T80JAc0U_?mJQ-AT&o z(tp?D%kYAHC;%?|+t}nF{*u|Xr*SPziKf9&1O$6pr*Zq`Q&*c9p{z%MCt`kR}-y*?|)_({~lw;%p-1YS6AtY{ZCl$#h-whm&%c+ZQ^4m z!O$LKrY&DP&L}>|9rNGYWQ5zK>d~JhKYmw|fc%3K@upy;SFdLd)k8Vj-3>)9c0zYi z20QeMG~Ja7m<70SCm=I8KQoKG4h70gbqLN4S0(VV2m5JFj;Y-velawky9r%0oKpxS zdYLD-Egh9jd-Qq4)kuBg={;;tcmP7sleZ1UW|%(pTSN^$AtxKbS$}<77r0X@NRqr52qfdi93OVN?$TEn0D!ZPV?Y zi|ShqRr{7n9`=HsYnq}7h2tMQPrAISRgvwC6M#phCG_<>Jj6p0KC$B9D_jB^i>s5g zI3^T8ei^IM1;@|OQrjvaxGDYkYfxVcy4Sl_b=4;nm0sX6zDcN;z-<9o;9|@aE9v&_ ziBLk!)KH8Hyq#uSsOk9*Jd~s%UC1Q0oqW$%1JY;$HIoWzXP!acs#2jgfrorm->~a@ z~~=g4_DnczJ6_O*Q2>!mXo~d%fMre3mQxtaRy!!3a>q}IytyHP!d&@ zZ>?42vy8cl>L(zP&eQL+>zCZFhR0ljH!hG7NDe59)sX01EzlH9AYCDzyix8fQT_h&?yYnTLPBvXlcl$-j%r(r6GayiQT7uHyTkc zpE@hb^Vd69zC&9Q!pPv@qHLI0!nz>5br@Azh`aD`b`=7$BDH8$ zqm}Ix>Tz6XplasQe;?oc&~RYSL1yNN_2@p(Eu7$%gLPl6OXg941xmY4eKdeDK?s}~ zO7{!?yNat^)iKQLk;>|AdS0l6LX{PDM#N%Q-Hy&2Ubn}-9S4Ocd_BjQ4~${oM`^xvf`aXRLKsTw zU8?{Jh8stdV2To9ZRm?!GbQ*nSwa~{219+Ht~ASsqU;4>u&m5OqhIn>T6maa!FzxN zioH-Zs8H$B;s}&4Kqvr&NY~lFZ_MC%G~ZxYx53Lg!HbyrvpwwOBI;j-NZt8GsK`k) zls*$6>n^IH1BpBGhYHe%x9&Q04?4n0fde7i4z}8`a=bJjgS}c}a@4M>-6#8td4uJ)U&1Vs1>MEaK0dN_R%|vS1sU{~Vo7eA75yW|8AnhCB zl$DXu4eV5|bZ&-du-qiHGUl3{=rl1N0q&pq?~z085kPj+#strvg&b`CK4}+d*}{@hL%MQJ*$5HyZEg>T zl0-=9o#{S6e&mFnj_*u73qh_V?(QjwKjLuPfa2lwse9R8OP(ksY;G*|Yo*2*5a*Y( z!@rJ-DY+>5IFg3&2HaRM{<>ow)d|d+E!+zGXQo33upTPGAk6Ly<80-M(C65!g*Wc%aVD{ zYpxk?88F_++&(V_MQV{3C%1KZZLW&P+0)Vk0hV0A=Tr5Ib+j?GX>vggXu5f%2?_Lz z-nn`PYOHSm;|xiu@10O^GcGQze$w;jv&uxM>}M*tW(uLjwA8b5X72S0E6x;2z+Lm0 zDQ$s!-9s4UvjTnHy@PFGHQe9;+9*kWcJ}l-g>7gC3lpXvJGeVgRA%b^l~sqCOsZ=X zXTR3|5fz7bWDXv0oPY|N`}u7Xp`cI8yB&z-2Aw-A8 z)q&wAz&ij2+v?HxTJ({RP}CD|?ofb~Q7~+R1TL@B5aeBlZCEqgKwO>1a zLtqJI3I4Z|Mzt$HWZ zpl*#zc}yhM1_*zxVbzQf5Ls$gH zpaYWgb$i2_HyhWstg}-(7)xH_3Drk8RFW%OKo!H1*ci# z>6g4d@A(LA2$&QiML2r>!!Dq*8hjm879Ez@|Lam_4cP;Ut%y-8C=*X3>CEH5%W=Mo zk%L-l)ty?_dhVzQNk6oUU)36lk)kpZ_vP#k4Vma()j%e==l*&J8GgDPTe$IRbpfZT z@nu+WiuYeg7XDlDZX#wy>1fyeU*B7O6G76@U5U#H=7I{5`K#IwFB&t5k0zpj#%Hx2 z|4agW;-$;;cGUvmhCmE#)X*|LH`CQ0Hu=FP0!IA_>x68D7a3@}_Hit-^|b-&YoFl$ zazKP}t1q+6D-urjbQMVM7m2e=`E^Ahka7d64{It5w|mxP%el{sY6ft$KJfdgc8Ng! zR{;QHNB%&vl@y#}p?;?>9PW=HXj@EDGF+#H@eCBIa0lBz0p;dUX6_En}KaA5xkqS z`dLWk($bTHlU6vyO#N_Emes>1f=DjTVJZtpJ3Cd{U=!0*aApR;$;H|^LCX3!Sya#U z#%|#c!{ihcNdOLId;D=c+4>BDCBVCpErn9(Sl`30QsEB6ZEDc%_kfb11hBFpXD_S> zI$pC|1|Ak-PO}1FkzM0e6y#UvaX|!Myl-Mm*sdPp~5jult1l6JM+Ge}oRmX$Q9NT?n%-i$#a%fy3taOYf zir@FGFGBXGw_GI5sYKgowY*VNZW%}$2edl*P$(?C@Jr=|Pviefsw*mbAKqpHtCBF< zygRo&2?ERljPZ`q8QQrrr8QMmT>qYiXhAR(`;COGW+?q<0)d+XIhsGsB_3`bqg6BZ z=kbtBtF~czCXte)E4Cypq*H9OBE-sNgIX1peiPQ;!0mlaJqTzuYup~!(uaOUo3a4{ z@z@bA5SX6EA|hf?2UU*rhM!d)4sjdFPnHWo^__bPqMhzQgI7rg|I#j>gD73aq^&lJ zPXSPhgc`tGepyjD^o9@0>Lod)rEudDR-2#H6++wcd2vYb9Jz@%H+g#_hEF%J@K0G7 z&jRIu?wQ@bO?z~*1VYwFPRW3n+6lM?r6Pue>K-7UD8n?Gera@RL1duySwcz-4Fch6 zsD*(6SnMWF1$5Ovwoo-Gzer;@Y^AJS7AcEOHb#Tnx6e(@JLjH6RW1u^XMJU~y&%PZ z@YqEszcvgmg7lb(ZqFW*klD0x=$U$1V7$1ks(WB2y7D#dgySu=S%R&~L7H8`lfo_Y zxc>KwhNh{s$G$}DYBnU#mcQq9Njp${b;N-XVz#M15EDKyMilkXHnhja{GUt0J9 z_?x_K)k#iWi(ABtGJOIvV65*r-LSJlU2)JUp1f z)-wpD{jL*HJvNJo2h^z@ z>_9$4ZOjKRV_Pl(54)~;3MFV9hg_;TPXJVGp#fG6Gz7*`1mO%`4W$vPbCfnGNCX7) zn17OTcP~OMFwX2Z05V0*aMU@R=jVoWe~T;kx`01uhu`3gzU&ucBd(@$hP-o!dt$}9 zkVyW;rjo|A_@URL7Ifdt2&qm#ht(~S3_6?*$4jJ7GsCf1dPtk)ZQsYoOmfoo*Odil zU@OPGs94Dnz1XBtii+Yuprzmn=#sgJEMRQ;x4j}ic#tJ2q;2R<;1OJ2c8q`nlzX8J zT9+l-stG$MfI2*NgV|LDJDqgyfIjWFSZ@K>A*co2w?#~Ktoudj!jqAA?<~9B?LPsi z_x_vjWJ}WsR%Bs7p+KsSmx-B~J80S!9g1lE?V>nJ=asjfSB<>y205d$G$PZWQUo>l zMt$)N^bnwFX+y2FF58^&!X6fm-*;v)+pR#^G;aT@h_mj7YM4@srKzRl{XGZU`)=D1 zR%5_B+7>L3^qDNjZXqbo`|kdc_=-S^i}IhSQKKVNCBSDFO`4ON`&6@rE$}@CG3j)p zP{4xeq#xvgh(R00O?p=I%{;+v>BJMDm6#hP@adiG|5th^Q*2UqG-W zN;O3EeTMrS9p52J6pny0>huldRWuNIa&Qi1R)SihmVj0)tlFDHRTRV^nG%V3P%*hN6dZHJz`NHeBMQL4O=D!W+=3X^AzLI-A4--4Ym z@lz0=_!;k%jnY1S>d#ExMVZ2L<51S5AyZEfS*p9jc;>9(1x)ljxyw(3WN}FIpGL9y zAFTlmDf;(b=zUx}5iDasH6Rer=E=E4Sx8aE52WM=j;382M!5j{aVhWfP@#pA>dTL> z#f8WlB&Yl}jZ5MWpfz4vPArt73f1LoP%N(#>G@62MG#lb{|;+v?% zpaPjfV9c)z)h~~Z8#UxkWfihKIc@NEjgx>sy?S$iLY`3$DIrq+28C0wP+8@Hora|K z01Pm7gXJ&du^#?AWBD||zaA`M3?qjjoz6qLK6|rF= z$Od&};yc`g5_1$rwYjPx$=(E@dSnO=inEuh$?wJ1RFK?E2}jf?l#%^dF4B0!)y68( z@kz?@BIK|28zW#irKea`K5T+r;jMQ9aj=m+I2*jm0I^2rjD;W`cGo~rc}qYfa+)X z#LpN<<|}sJ$~G;qL3xo&moAAvthkg` z0q!vcVDg6I`PzdILyVd>9JWZBfKe1GAle_Y@`b1+*wR!svyxRb27lHx)IcbWp4Ru( zNa$%Wu466B`)dV&`DfE8eC*sWX}SjQ`bvF?T+&b&ItCARuY6$~)W z==pQsSqT5n=RD#xaO;#elVz<28PiD;-JN)8m761MC*JH4WeOd3Bh^a_#3%bXG7&`d zR|d-rku2qBJFQpd9V0+}+A&)U<>5$IT@$&j{4q}LAMwo_8E-JqG7p%B5gnz~WS|r^ zq)a1A1Pp8^WQ!K9pnPCO$sVMJHfHppdBgynlK!50RQ@u~NfftEo#|erur49dx96*WgtDa>q$1K{;%AyA9L8DxleR z%4Ys3!yW(QyH{3p1!7Q@1l+45S2g77*p48yVGmu$ z@()%fWrgo+wgzC}YYQeRtc+&m;c3A1OPVvy!Qn^fpR1}XQIpa=xH=#IW%fnmreOk` zVtEXfoqo(es0mEiuMA`UX<5JalL|GgQegrW!w?`Qbe4%%0o2-q?(IvW?i}v32A_7KwvlJzl25c`=&2;0*=<+Fn1@o*sObh3Q-%c)1v z?l#1V+fDv_Jr_O)hSud0&f}ZzG#dQ zwom1dqSCeNwX~hIa=#jPOlj++PtJSeI-Rbz$+o`_HSnp`d=znwasR=5q`2)A z=RSR%{^$u6AAt-mrkgh$^@S|%(W&g%*tgr7R4Vb8gB}-)znv{I{#G zYxr}!RN~!^f*1Yx8TU81eWvq!IvW4ZGwD#({yb*=1dv^!gL_K7T^W8Y z35+W;EiYm91#y2Eejp-ex^dz;5xy(%2W$B6f_lQV@A|vh%ZnaMvJ1--!;j!sTv-M` z%WE5Ij;iAixm|Q;zWi#QG&{cj*4|~Ud+$l@Z=bRr-G&4~w3CEYS9#lRR?YpU^*UOv z4`W@8Om6#yzO>@C$nBbW+8LN`5~7d$>Dt3FT(At>Z+HJwsDOL)+}UqmB5PjrpA2`r zq_Ha|&$ZRC`emR+jRbz?@NXgN{SW3V^*yP91%aHc_}7#pbvJ(7&FSPhTd4TJXgGVS z;%QCP30@ZC{i~PY|KNN}OsD)-^H#eaZe>3x5RJ2kI`dU4`tqE(^|Zf9+9*BX#103Q zPYm!B!fWT`V2bLQoA4d%G0*6p4pnhbJMsxLdZq`w_0_n*+{x4OeJDVoVB)|LW9~N_ zE+-*Np}HrPO2u_yd5UkA{d8e@eVJV|xbi><z)X&{9zl2f;?l}mgT{B z6NP`tW{vjjNZVRl$-&du`8_XqPZo*whCb7Cx@fE{ts{G2UH-v%Ql)qZ-`V=+xA}#3 zsF^`Hm7E125D7!09r$&@@NTA4ZoB#X0O6a%?>QM^9A|BqmitoM`@`;g(RA}P;jKUd zywF~DT4)o*&+QAiw}(!y*9u&O_Z!VE;I8`guULsbkvffT%_2@ z`2S%tE@3_gWiS>8Z2g|KqrX;n?_T!Q-l0P|lUI!<9V+`9H;T+Aq8KuenVa#J%WBJV z8%$&a=TJ#sS1PqSy;$4l51~~(uZ>3ag)+EOV{-q}a%5LnVb8U`CCAU9VFa;pckhgU z_|5#P82XrfE8;3|QO&!4V&MHZ!vqrfZd<;Rj#!xMqK#xQ2tcT04Q$^7{Iv2Z_D_ zgX&N{XnYiZb5YS_COcHK_2|~`7Z0S}B(Y{1xQX2Gj8(Hk_6{~P_qHtj3zXeP<0g5| zhrjjOTM3|>9hHh&{=9mdRAQ)|@|_Js`>_j_Xe4E;5?(5~j&hpU-MRMVjqHR+%>SqZ z|G`*MfKcTf*s~kAWqxeJB2j_&BMKCuvpiMTN$L#O?0K{W`yXe0y>)-P--Z>U z{h$RCRp;7kY#cJqeea3WVVl_9mj#G6qxDU3UFhwLH@i z0!$V!KHqe2Bf&k0U>I=*psnX}O^2y*-=yq8a&uVoDR*t`3+AKBDwoQ7Uu!TMee$R& zSK(0IUbCX0UZ0`Z@OZEhplJpwwR08lvm}9Ak(aXi+qfdRn~r+AL@ee>pYOQ)xAX}e zh1sHLrjx?YR!JF;6Z`ID{aKkm2UE1|7JAu3m#q7n%MVO2sxeD!kX_8W>EQgn**IKx zeD=hM*#1dhqJK6D%>|eu-mVM@oCLa_{U+GLzBBx50qbs_uhQAg5)`imLTZFMF9kH8 zn_vwc#~Fck&T|_#+df%X&x@&f!z^gh?($>mqf6;(Juiuubh^pKQ09TR_#d`MG%g>E zmfaBufx`lbDv7Uyr=nC?UiW+8{}Z zZ;FrLZnEzzyyu>ZY4r_jBx(Sz=P#4oHYVJ}j8Sj$qm*3s>(-Q~;T3qj^OMhcargRh z74DUpdHB_`T&>ImVlQg;=_&UV%v2YuIlXaSyhTZ2NP9*1;${K!kz6x^ z?)-XPcVR?A>wnU97iD0o5+En8IH`nD#8Z}iV;MdLi+O{a%5q;VqXBfhNUSgT$LnM}MK%O6PpFDHdq0(^0k z-i%@j+&eJRU#qK4>H?>DB6~b&>eq|>T)M4Xe@pc`p^3XIYI)2g{0W1P-q%ylYSXI! zQs5-^nxMhU<9H?UgJT90qI!1dFVPfW06F28)j5WfFq%D}BuEkh{<@vOG5FaYiGz3x z8-q+@bQ0S}p(FMod<Z9T(Yuoe<^ZGz~2W&0>@SKZr6ov}kf$bhN1 z|M_=T4mzdoJHGNdLKd7Rx&xMs8=PTK*dLH`uG4BG$4#l!W@Dm0bBz*i+M^A->eUYh z?*23UQd=-xd&8j!-ZJiA*iAH|Ioohzb8lPigXhN%IgJNf*h*!Y%WdznYiuDIZ(iGd zE6Rpb0Io~u8PP-PB5wC)a7}M6$QvB$9#ZsmhEB=tSttCsRi*x(Zy!cj2rmUo{kB_n1>Pn9y?`XYVqt%bHb>sZjaYWGysb1(EO7Y*w91{%`H_io%# zaXD~-8S`emLbSu^DR|~9eoHL=#3&a%oL+ByzUmJ<`Llj(9tYsa40^Qt*93cXnZeOc8ofhvr9mCpMPfP^M zD0`Yb8e5SZqgcFn5Q+ijE7}9a0u<2e4Um)@Wv}V>+YVy0ZaQDC!W}iQU9sh>7BCMy zIQTdNfAn2-EZ`5$Y9v3po4(>u5eb7em#+HW4L|ACGsC;~?2YRJgZ>B}&;A7gvQ6l_ zyV;`ddD09cVt)1FpX~;(8r|sq4}tw~1Rl7c6f})<*xM*?J0<*F3=qGS+cSBgn}+_z zzytFeOg-m|4*q?vrTt)lu2p+D?Socr3lq%Nov}#LuwL^E0L8dl%?8bvSiz6k53{rd!W5e~K{caQwzh~S`$dU3q>vui$4 zl(SnuIQ>cMC#1M-*bM;B&?z6-oL2?f3$sd zQrVVlBb4&bIvfP!NsgTNh^5!n4TY!BDdc@jO*vq3?lAzPv00Ri%>0KpxE_!BFiFI< z&342(Y^T)ioaYyjH@_Cm0Q zm+t&+-@HZP;1MkCj5Ect6f+ff-{9ar1i<~wU!c=--AUCjw_!#8!3ZNyvs@-u7QWd> zx&ml4yw1$zVxn^j4fQIi3gxLxa*6}5w}PzY@59G>C`IV#HQk0J4R=jxdH=p*a ze!f>*j&ttTnJLlBU_}IauCSm1alR({<8fK3>oa4lHTP?(Z%|(o=@J6@xhRGtO*N+j z4yK}|+i>olo`6{v&-TU>fBl%4#Qq$ZQ;IuzIM3)f!nC@3zuqIfA?~p!kPKeRZ8rny z_*H^5Zp$N~4Nrz|uERGRO~Lz+ZZ$*#^$+>UzaQ#z7KXS_(J~l4#z*5@DmC*_VT%&i zvAdyHclK z;@*J~!+Lb0Y#wW5HDS$I&aR`dqp--VTaniYkEpGmMhAG|!R!c}3slZTHhO}8p&-eq zE4cbzr|AL{fGv&cMmj=j*klm;jhpPvrrwflI@_H1S?r>;Y0D9<66 z-uwT?&vq{T@$!WVIX=IO`h~ivOK0AA_n87Deyy4+>*msI&xHFkL1o+Rf2r9`M0((Y zHY8CUXC+FYAN$j}By91b!*QS;$VpROdZVr_-ijq-w>WO9$n(=@K$jRJNKE@TEb45W zx?xwa%*^lt%WJ1hy#w9OyemNC<-ag(q($sw;1ycb{Jcr-W|jeOFI@PFu*A5p$o$cw zsVCMnWQua}6_;cVb>A3(Vy~QWclR&QgM(3h&3)qDOtQWvmU#c*VR_J_ho(p1>>T1# zK>xR|2l;xobojhn z+{Qv=NvaF&H;l51r)63Uo*JIjga#v9Ery`E5(zXu@Df;pbiJKJ8PDsyx!;@qoP8qR zH7g!d`25jlH?2<|L|7`>*V(?AJ8B-5B>cHfv4=qAEw)=)Fv9`BQTeJiPp znlhwjO?uv9IRuUA3%MTe8lERB(kPj^ra3ziV)R*s?^ZQSy%Qtt3MNSSwwy&oHT|8e z_qmHI^5o-Q5RViLWsZftD5Bpv2g&#(?N)`u-ZV2oOEW>&V7?zu_Azc9i`W>%!Pyf` zEX6fRnR>NIZ%Ns2k(Xnu3McP4CI5u`{d;b<_OdWV$?SV;AGW;KV`s+7{zY>3ABqsP zdoeu-tM&K2lj zjdV3oJMQ%X^9-)AD?k4>&&Y<&DT5K^NN<+knJnt4Av1lr-QxL$my>mZ&#SHh)6sWn z(rZ!SKP?ox+EoLtb{dlJO<)|08Fgnk%-4ag0n7`C-=|kH&!R<$HnmGu=YC&|Oc;@`+FXIj^)I(D8ehaT_jf z`X3X&!AJhjwTT0bv6ahmBP_jYjec;zGZxbn+%^VZSD$CE2s3aaf>+$|H1S>z{X+bXR0AKN2V6{1g~Nkr%QiZZT`bA5u2)TJ*j{AN z9g*C*WCQJCIC1`<{SB&`W*&0>hQUHV zG>(Omg9ebo-B}GS#13X2D*bKR8Fa*Rrpu?VO^^1mt!?yaECr)R^>|aEJl6!hY?!L& zRJwthC!{)S#6p&_`{ljtx|*NCBu>`<{Q3Nk%ELKTdiH~LXXX0r`E8gP;#5zNW$%I5 zg1v8Swmys`7EVsa9uVtHm?%%YTK9EQD5z zDCw)y7pM|dJR;$9^8T^M1-<{8+8z*9cG{9$z`FdW1fReg(aW$~zRkbEsp%ug`0UUO z^Y~inFJa)^b*tcyKvN{l^gEd8O-X6sO{MYNrPybJd0r=wJ|=!#zu4yO{>!SK6Cn>( zAsggD^##5T)qF?Jt&Vvz46uEq|&?Mc<` zmBE2D7+azvGi6&RMvEWL_cAn&=8fmh6%Hf2y6ND-I%S@s5n%a<6Im z&yFAVP!{HMs$6sSbG@g!3n+2srP+r|kzSsa^@Abu z0!%EirJj>fowYS|_21t0I~j|~^-Yryd@q!i zidfY1tN)YEhiX4#osHT5=urIWsQ2kAI4&+1d2Lcd{=G+bQZ%>U_pIm#e=f-uel+`9 z6d-b(Kh#u@bIQz{5C9ly=sr9zhE&mu{0-{?t~#2o;K z!35*aUcgAF=W+{*7W?*IdJ~s0`)#YpzF?NQ*I>74g4?fbE%q#?s!&xh`F2MB-wT89 zyU?FSR`z$4pd$Y4(R? z{;~~7;bt9ETLo3*`YKM_G>n`Zo27iM;5FCywDPc9;={&Lu$bF-9{(d4K_~kfHou-` z*ai0==Z|ccrv84^MP72IwNg0j{o#i6i0W~h?xre74f*FmGE)lj?_$Y*SYp6ue5_$v zp~E_)m;2FT6cUEjKO6hAHB9w53h>-cjizIeU-&wbeV_y~m>TONd(9Q;_02x*1mS5W zLfb|=+?F+$_YVDO9w(@rtv>ggPT1n*=P_vT*SkA0$jK6FlNXnN$_R?Zk+~sC&`E=F?0S*a`$QSestgQbIi9%GbgPhJ(%#IrrAB`QoUDIuS$GOrxc?%ad zq_-k9WH>Y0bSbnUS7WIuNoc?Z(|YUd{INYtZ+xG<8Q?zua|>%&{U;B|^Qg{H$4z{a z19mpO@U3ZJ@>||!*@BO$0ws;|f^17g17RG7#%Y<4-u6TvXjkRvQhlQ26|LkE-j*MI zRb2f-P`vsX9CVeErQV9ljMilvP?{3w`dAJY)=@n>99(G^_gTRvJ~trKv2h z;-2ls%#zi3LsKyBTzxD^B-pXl$oJRt%Y#j+SS*W%slUXqnq1!xv_n4>gkDU|RbqXW zny=D;m0c8a?DY8kq~fMbLSc5#^LN=4j?Gyya)}jJ-ZT}}5$-8|6Y}>4g&zlo=phdi zny*NUomD-4WL9eN^Pz{IAJ{iH+cR|Y2MpTngA-XH1r(Q9$DySHTqF<@nmKV(nqK9 z90;8D>A&5#)IRsm82QqCa^4zDKc4wI!{U(Fk4L@_!mKYpil|Pt zS*M5#L=Eer`LSqwVSBqQW~l>yl1fgQ&yUacad_pETTju9fFikxCRQ<1mG7`Z-!Tom zf0DEJwqDa=@UYCz(Z{Nq^C15f3o50*Ge|H-%5Rk8v3l-UcprfY9-n1=W}f9da%}qX zM~hY{cGXxv3fj7KqV{C{DHef56JzE|`D;ZWqb z$Vexi-tu2A8{ReB3E;?qvWN?YIh%vqS<9i95zPqXk|Ldu=#)seAmPi?qICbCyQgiorLh|PoSG8JkYCTFQWW=d!t=5`Zz;Z2z=h4XG>&G2f5%-+J z3H1P(t4?it2^SN-x?5((R)70$X6H3N@gj5HCZPlS;;O20VdKaFnu7t~&7A@+RoAzS zEE@NX>dju1C}gp2PU*dpTPQL9>;3$oX9*DJIOm9y zk~$)AIc+4TFk3RjQA0h=fqz)O(A*pQm;3P@SO;bmc^GK*A%2=o*itF=?NA44n&6fpNlZ4T*GK0V!f zu`wHg8xg0>luN!IcKf*px-Ug5>~;|A$la^z^dumgyiM=K$9c6v^AU>htE(T(s70Au zgs^@5&h7Upt4-HDLGxUp`EX)KE^jrwVx-ul#&Bl7f^OQz589p#XFBwHsK$#-oSnWd z>P7OiXtHjWhO&~zNw+VvaO7&iMcC92nWcYg%?e0s7+{^ZN+K6F zf(R65#Hk^#PC7r8)Z(E_FGr+M8O@2`7liM$AI=JJN--VG%#ABBx1^N4;?x&y%ru;t zi*;;iV+{K+Qq6B>_ar7KAJo-NUX41Yu!a$B9W!__<85HMR9KTba`WJ$gKyx)`I9we z3e7E>af4n^IrghQvz3CVm~HIm^ZM`781u}0Q$@j(&{NgD15VeLibK3C^WYD2by)p0 zWz8ow75&)D9yIR}(*IbsTliA>HF{+$IJC|S`36h*RmI8g9L$VPEMVzR?7-SJpn<_y zK}_WF^BDzSyeIs^Rvt#g0D}bKtCKEd>2C@c&eZK)vr{h-1+}6KawOZ^LLkE=X=rJt zQpC!9!Iec14AcN`vcf}sYa4;l*Q6Y^6bA)|b5va4i0g9d0@-mG>R)Q)K@+@rkJ81d zER8S@gTvHRKKBPHlsl+eqvTTxAD0yfdZWfr!CwB1st_r&fBAJgwGQ_dv3j=%eckP2};UB)I z@oWh+w?oe2$C1I*Q?bb%Jb8YyIWY9k%ERm-jK9-5c$^wWknfsXC>Q_5oG-V~cF%7G zCOFWh%DOf55CLSRrJ=?LRdC~`Pk>`{;qZiTibE7tV7*~g-XA!H^Ra02L#4mT?1#|# z&{ybw@Mb$W%&K>v)XqK)-sBexC6h#Qra^XwBTcsp((98tnw?T((mR^(ghqWD85A^g zn$k<_ziQWfpszAFe@?wk7x_PJdQYVC&4x2eKoUBW95Wp?Sd^`_3)4pv2`(S;anxXM zSY)EV-yq^(rr@ee`}NJUo$_9xJLA=?8DMWNGb#w(?&CI``wOE z_1kS5q~}@uyLj|T1$##K;2zaLh9cXPd{-+0Auy_eUFI$pRy8Z67_=i1qHGVU}Z zVlsPc;p7m*pkf?tFk7uLF)*{)^z>E-zEgS*8owGx?i>zyoKq;l-3O*d9CqCgC2N@| z7^r6~uSQP8_rJdWcm-4ior+b7qlSG0!PP;gg)G!YUZKHK13|7i)E;!mz^V#Q+z;yA z<~?{*EMYt$P#_I*?23$3PWMOKZ6817me8uvbJX{cGNXtxhc{HZ*|bf`Tu)}qu~drosRN!rgeG@E*}mP<+_Z9$-1HWJ z_ZuYy@X8nfhT3BP^_p*~;j8PMpa`#l+j{F_AphgOcGS7M>qkP+E@W<&O^{{2eDZcy zgOW4u0BP(rnD3^ZydY5sh)Z8%Ie+{}TZ@{LxFF2+M+=zD$BpihjvBu{;wLlz|7-8d z!>L@`w|5$Ll88bf$vi|F%+W+<85fyC=Git|$SzZ+EEd9|GEWI1vy7oAW9CfB%reiv z>(NfV`+eWzcYNP}-*@c(T1QyxdG2*T*L_{*d0yuwelc^*><=*rIREzJ5AaPH3Vw(% zaTKHb<*&Pp3yQyfTH1z1?9aOCdhJ>IK};D})f=1P77qs6Z(uBYM(>8v=IZ<)7+A~c z+!plKb{DnpEY3@wY10xS5V_Q&pph5kP|)xqqP9(gyIqw>6}HB=L^k_Q={%JHmA;c# zT}-6cfQxYey+MmMUwE>R~0=#uEN3rgq^F!lvCz>>2GpjzqmGV!qxdhc@YU z=IM07iPrvMIn2ba+SzR0NoWj$=@Yus6VfvF>GvvR|1vOlb5s8@1P!g zG6GZW0)o5M&Zrae@%C(Wijdd*`O7sRsNCN^e(9xB;XBvduv=1A9nmSfq7nqu{af1Y zc^pWyQ~T~){THAdxYHy+Xppz4dvI+kZ4!o69&;RUb95RBxm~%-fq?bQtFKXJ-kl|1 zuMGZ6N^XZ{l&HQ;*3hs2`T#;)&4FhsZ!cKK>H<)Cbk?a(s8UtKqWwaQQLHmFdaY4M zE+Wpll2EpI!0b&31yOYyK}z)y6c8LS_8sbj&^1h)1&Cu6yvy>O)y}fjpvP9$j*8y& zAltbl{7a<1;|DUM3Y;#h{>tX>xR2_x3xw-OiF&xB%k&UtWwJwTv){I!DdN!pjFH<7 z9#$@`(JixV*~g;o6$Hc5$XdTF#)1O~j4a}Nz3>@kAoPx94r#bbAXUk!H_&w+&Ko-cB zG$}3s;4vBp{mXAGpE?*lPAx&;S1p0jFeP>*MKka}pPxbl_%L>)&Y;K>nT6;~+wLBV zP{X4G_n$D;T$XsnTodX~h!+F{Ba=`JLxFKd?ILvC3uO6^Jkr@GJYH3l1O6prjb=R> zn{t0ZX-d&CUJWoXM{W5oq^*4$QW&K&+f8Bf#nMYn;D2tYogd1eXPQ|EfxVU^bU7k$$7_bn`79oWpm3#Fhkxyb$q-PcDkJOF=f~n=ysL_x4F!3%uQn1pPL5p(^IG+pX z#dx|83;`Bg{rkd+5m56D%-X(bixG*&mKi#}toCCJ!Dt7nvR-&Z$b+r&UwRE3jSoy! zihp$@qe{c7^a{d54#K9CjIe-2T^G<^ujWpjZF~g1K%s(~V+y&R>3OOw2dLyHH7I4I z7%2%KA&Jy^>RHamCz(CgF3Y}w{;9%C=L>o<{ezlTfvbH?0+Mt&&F|E*=B@5-UX5@gk;TN&7v6i>KVi{K zt|U;jO6`O&rL$ieJABIz4$OcROw3pctoz9IBrJ|bp^rs`L|bx zTNAU>vz+i396Vb9{mo>8K`lsLkV%x!YV+~>?}=I@d913Y*?`b`LFi6kVa*90fML*< zpYMmtR>I;_=s9XZU^6Uw?nK70Jr__gV}ul1)nSAM?txl%HI|QtNaeR{ZY_dVAf!Vl z-$CXX!UH?=Sdwyw0{HRoLibd*@@$IrrhsC(jzN>u_p8m_(EOFH-47|&>vN? zdZXO88bQJNYUm8wSrAR;F!ER!65F4>Q37c-{lGU!>#FKN(C`Ev0C#PNoSEvdOMJAc za(Am|*V-wMRnP9wLH$+*gB3p8QRB2(lWbqq)1pj<_}vG5DV@-RL^={E;o*QwM+TIJ zRw71@VK@J{tbN%LNXz7Do|gzlXFv5~9}hOYSdCpfV;oa_oni4Z) zQsu6-0~YfuH)S5x%sdz#Gbs7OP@Hns-Jy0#Pyk@%qy@^-@sUljLYGN#cwAQ$Qa=@+ zsudzXd*}RrNl-O_oVHggWR<;2tQk1Vj0f z5^LK(S*C|L%pQKqb&z<;{Jt}=Ps0u&TIv}G<2H0$ z$6Mhd)3DURD98Ad#ck4DtM4W`H+p5ruqG>JRqe#e7Iu1RCsRdnnkgZjDtL5Y$sN2V zrg9~0gdiBL&P!J8{doFHhYd!!(U4>fkln+>1F0EqSJq>l+Eq}A2AE>`Bh;DO#2xjs zY=7t;4eS3xO-e>ASX?PPctTC5 z{-GxI$y7#1w^4iQjl7^{0^i-IqwN*@5h55+f$fksH=0klwKSK=?Z&1>5%;vkSfVIJ zvXRj-{WAN-Z)&X?R)cE+c9n z$v(_ZT8ULh=(wnnzLvK8+Gw7CcPs_OlBrp>&EE7gIn5br+#lpBSsW#j?K|sdBLUp^ zs~ygh^jEv+u9LAM^J4XBRIg;uT$g3wfPuAiwQ|!Wuuw8RvYT9rJ!NHZJ|{H}i3tXJ zXY_52u!x!{-~WiPw458nG;tQK#=iEaxvL+?#m!qOERjxLX$r0nmm>xa@~MD8a!YSI zH7=&ySlg(p#nP@pkD4P3x+xNqrj0s@s>zAwiBQ4{Jx!$Y_o|mdEl=&j4ti;gijIc1 zW{ynbxA`(3s*%k5G#HcUnQHCtB56=%`K^3D&}ziq6~KrDQC}Ypph`QID5R?oNSK>R zqFDB;zLPt~E1kgDtSZ?Vj9PIpC2jq}I7};yU={uOdN^bZkXK;9{c}uZ*^x&!z5K)_ z{ilwssm8_6r>%W99By~pWg{;3XVOgT4;2dPKDEoj7L)@Rk~mnK<1aSk7qNSH>f9zF znNRK5lqF;1LOOLbhNpCdL#XAe;~*!(Cb+)XJom)B?>U?eG1_>|=dVR3m=rNHODzUG zYwgDGxG?^bb-Qol3`s%KQmEaj9&4|OTT=Mmf*XY-=r8-n*Xu7?9$E0YNS|cu(xkKa zQYoN!&EIyZGf-~y+-$JoclGTHl3lgQA`xnH--%)&s`pRqgGoDOV|y+{szisMR8orF zM>JgT7kSu!i8Sku)cWN!-!rws)wu1&HbrX z6sFQ%xFEj1t?9PISp1Ur#LLn{8_pV5u3f@B24oLi0e~=D;F8h9sj?J^3x;6CxRPY_ z+Rf}+&c#N4m^qL>!_Hi+Z`FR+N7FU#MlZ=R zZkJ9re^^YJ7i(sGf>(myc!UEQCa={UdWO;$l~SB`r6|(2bZxW({AHvDwI1D`zxMB#1d+Slz8s%hHYG+?LsT=Sd4lx#v>0-COH< zS(5ZBwjO&l<|If6OGYylZf}(D2$gbhSh9$Sj=pY{YwYwx)j7J5Dw%z{ zDCs|ui466{a(k>bVyEPmGBO?Tu8$+rYN&(jW&_)`)M{rw4~-dg^yd`$l@FwGKXQe_ z0H2`7Nj)1j)drFY%qO;upi?^F*fdf37-m)9)OFtcK;z?N)8q z-853p#@A#HgA|TZthkX*TL$%2{QdFmmp1^+lf= z8|?6fx76G88W^L>AVu5nTPR#sG~LH zlk++>v)*+&dEAbqiOwKmHRnwM1p?bb}1S5@47n0{6e1tH( zDsh|vI)XyZzw0dZ_@&;}pBn~GQCjOtzU?jQ%v(~u`*||c>YVUG{WaG8&SNS;!uWSm zXez6vlO6LyH+hwHo>FIFW=HCKr>+jAMYz{^d0YDFtdxH$O-Hc% zVtnO5!Nj_s#|k2>9ie`l)P-L?8Z)@=%90dQGVZ%TDeH{)>iZUUaBNcy7?nI~T-5E} z4e7cXEeVl1X#cc(S`jKQath-k;hmtM_qj#>jzlXau-6Mj0P7Tw0 zL{hX(7e+In-l&-<@=4-Hi8 zB6JK_&n49k&5zyMq$z<6{D$oqDw5wu@9t{(_GI~u7A#6aj>a2=%lY$%ymkE|Psi8l z3lu&U+;WYuV>p3uu1{iQ2+5gc4ui;3a-F+yT@Wc;27xSh8z#25_KTd*uPtY)|D&tL zYhLK~Ch>*thmqaso=yRE&57OR`jQdxgTT2St*2$z1T$e?9QyLI-`wAcmf^E?0~ z<3bm?NHIkBTgt5@XGsR_vs|^-X)liddD;Bc+e6OtjBGR*u5!5Qfmb`cluAwgw$*F? z;kQgYE$!GT3l$IiOJD3_$h8)GaVp4?*RwPnq-FXP$%m-YDs~~mmW#2Pg5ZnR+WFk_ zkCaJ&laxRI#dYD@EHr8_YUBKzjuJ9%DI}vE7O5-uNQ)8A3<7asEE9`e*B z_tm)pcaardAL=5B#X0sD;(-%$5atC5-2de#C>IcFf^y6P_j~$PzHs4{O#Nc!q#%Xm zc5evJX@b)-Swu7-pje{|9=UFhorSU)i%inOg1#mr$9k~RZUw_t#*T1?fMum)gd<<& zfR1Ez5-B@rS)g7}{K208vX+_B0^tbP_k-~Nm&KXLA7;~5ixO_Me7B?bXUgu0UaPHc z8hUP8MifY$(f(Jvx~|g?#r^_xXHKYxLIyRLO>d>ESka4L+F%C|$ypbLxLbIqMzgYwI2ia3YkN zbs7ZPrqpcNB~12+9f;1x#>Bb>2;(wa>qF=D(nL;22gf<~JA19e$yBBa)0bfhs!NXT z;)gc6>p_Qin)dqA*Z^c+&a^YR%_2)gfpeNXfft-2%5mU_gL*Po8&m;cV%YXur&-s5 zo(?&qW>vpa3%jXly&tf4n^bdaZ2&PezyY`2kXk684_U-^he6H<9RY;lvqerYThp1) z^P^#smpw-Jeitwao*{^h#bn%aA22NQH(EjJ zQ=c~dyJpJ9G%45gRI&=ihg$wCt!s@J#Sw~GE(T3$g+99aq2+Uu3t_Tp;9ugVQ_^x> z?xF~t2C_Q-tD-p{czY81EDamQC!vrW9lm6WXop^JC&}UN!ayK{HLOo+LZmlg{_lJo zAuSKF%p=<;)N<}i4hC<5YD39n=}9i4ZGZ|-#ZTv$9vKs}k~Sd7LHqntX_#2#y89~h zE5=%RPsR=J5BBG;GcrVI#lEj?7W4e!rooZ5trIU{w~@)UpAM`OxRRf$U730}ex83< zqQ$Rb7DgRBP?cM(Shj$h4buQv&@WYZ4k$n+0VFPZ@SOS#(zBxH6yl=ZHaw3;st^G! zlSutBZ)0zQgx>>;WPVrd_)&y8dYwBdlIv2lG=Rvy5!< zr6Gk=l&vYRT$KoL*U_}*RpHxdJ(H5N+&+8aP+)Ber(CqmD2s=ay^PmM@ts_>(Y2zec8wSrX0Y8H9zcoPPX zf%dYwX)BN7X($1lz>D1*#_9={0Qc2M*&HKqsRRftXOL#W=*P%68cvD}jWD+W^OL%*ATM&&fu-gDsj9PaL@%B#{P zkgmu10G#0=ivlrYW))1ht%7L@Jw1_m;woQ&5w-XXBOY3*5Ph5VZ0U+Oq|1LO>*K%f zElVJ%b58fD{o=53jn)%{g{;$xX-zNeI$(lih@;jCBN%pj1r4nrR?5OSy2j1zm2wiK zyIOk&#%B`m^1b8P!U&EB{e^?XYq=)CndiI$FY{mnOzgl448+(Pe9ZAuVr3XOT=PcW zmIWd6-+$yvR}sg)DlCiL&yC*4y4%&~gmvSc%Ink~L`0m-rTO%8fmUdS>dz-3V!rU0%r!`w^C*Mg01a z*U=KtYbFNuJSE;S`l5kUO4;NK7iTo@I{*!E;ad6T>Z`D=Y0rS={@mt5vkweb5S>0W zNjvLw8$n&lO8LnOj>pOKfHneA+j>Ji#90E#F^QFPqsF17k`T}YCpYK4nS5DX333Tq z=-N!5`^r}?P)eS>e3fY5YaW}o2Pq#RU7b3Az^HRw5UPDh&JFp5SBEl5?X|JO=~|>c zn{=m!zC$b{0_gP1CHMvoMAmi$(Y7nizP{G(0TVN9Vfm;lp(~6=&#hL_d6;@2vO`}b zdtdy#+wg`_m6`TJ)CJwjN9MK_W}G|8qFZd$Gvi-BL{oOC8{y`V=WADn1|4oYVfb;Wx~c4{Z) zyMxYuY_fXE2x>buZs*urWoXbUNJnS^tBvK?-g579!e3jK!f4hP%)`#gz}N|>7EFPP z4~5J*TF40$hdCRb4KUMn!jhrP%9gCec6~e<5pHxDlRu22D+sk4#g^-!XT__G*O0z- zXEbO;?=eY!Q!azx^K~I-{hhYxoF|DgX5@Aebz=l~7J8IJN3t(xv^@){tw*6-#{6|7 z*2!EYq8ubk6X9+!WtUyD^2OjrwMBK25VQucOJ2;H;T?J}XTjq7&mt{o1p>TMa5GEfxM$VF0E76qk8)p9QCnAAzRrhUDC}yeyvU znBJ>*1YmfFMtI;Pvt!zc{#=(K*gsr(fp2io=fNlYo3d3w*D3-ZRk||wxm@8Cxhqni ztAVH5ZOMfGoiO>%j@!I$P;RSWgyh+Q(bj0pL4qGsVSM6@`z+Wfcr6X{C<`$u zDAP@hnhNJ|2vxbt$g+GB^CTq}8x#kPm4ir6sIGf&)2{BI&%6)bfL_w&M0njw;4F_x zOG4%5TbW%6CTx4VGO2jWQa#U4__f|K5z6fa(Va`d*)EI@N?67tiaU&NRZCeJ9gliJ z?aC5ISvpkJp--ukR|P#PALhp8J&GJ0RtsQvTZ7hXWFhpH6awHx%h!bj1JjQHww&*! zXY3^7gvg7JOV8XoQr{=n__8d^2NgpUW z`;_6puNy$(9^;IJq`TZGYCaBnwy-ewh=($x>{5J@=2X!*l=uqTTn^Fp5Oluw)Hl@5 zM5pSC=Y~S zrd><)S)E0sTskEK1RMtK0a72?z+nBeY|1gezZ@&3m=!@<;FVZG^OMF$1M$nGuevC3 z$FgL;_C_{Hrz!Gt;rLSC-W(I9Y^e4_2u?5CY@#=x#ngH2Ooh6Z({!w$O|Q}w5$C_u zHvh{ld6(_Cn{GddJ^RZ&Z!uoL_=Sy_ZWq}hhs)rIov#9y3#BQ5ve>iu5%xk~mYL?KJRNOD*@g_BjJaG?2fhaaQERL0Zo3 zuHv$`zt=wKdu)(iT=IB(`e;F~t@PVhpDrm6<(n0s^7ngY{;ka+XIiDab}LJyOwab+ zo<+(>ErMw`>gktmq+oKs7pt@wFM!f^wbx&q#9nk~bAgB@S-(rX3eGAGR#)I}$Ha#F z*xFeNhZimlNp2ffL67@gH5L(c8IFFOE8`U|!7Mu|I#o6y;F0{%6y6X#(#xeA!y|cT zx+}wcdjI6))q;dU>Mi^0GT)TT2SRS2>9WQ;-Bt)->3>Te%GyqXn{9KLD0LQ&P16sk zi~Jc;i=ok}C|%^%&;IjgV+Y0ALomXk3D4W%;L+h1pe-IUz0BDBjx{WE=5DHkdM^1+ z*Rt6xqri|aLyp)(mq15(<+yu04XCmfyRGh94HB!>4@}9~mS)8334-0*H`=C-g&=3X zR}RwfoBy;WD?9qt#ESp$d{gM^opl()613`Yx>R=wCz!2qdH;`9yXHvf^cjtp?cQ5j z0LsP=h)?J))Z^#|_tULj>#G=kH~`Y%9Uh(Khjg1~Y3x2;U$a|!2b3;O1T7LB!KhdX zqqRfjwCz5L(ThY1QxEN*Mr7IMIfG_sHD}&xpSU`oXCw~3Hd6qDu9?EpPB@NY@nFEBP&rfO_nopqL9w_f*Hi|`;sbeW15_h=0&%XU-7^C75gY;Pm zzvi2g?m5KcIwd{NaD#vXbCg)wz9=0xG@X?=MHokQXPTDHpW?hJ)fhtTe@-^+vuE-P zyV2z^BjM*M4EqwxsH^x{wN$VVTBO*K#-qgkOB#ZOI2V58oTD#;5q`}}kDu;gU>Bqa zik43^Ia&QkK;coe)<{qoa$b~Mc0r&{{+Ov`->I#$-U3aC zn!)H&NMD4_A?mEzJq>}W;@*=4L`Gd6!RRyUAT zWI!~|sL2)# z2ZebG=aD?s0fw>ShRPq1>=pdER_R65nuzO`Yu7j_KKyVdlzjhqIl|PvdcSAuRPl|- z>GS5dPESC-e;9TwVy}rZDeBeGfG^9M&pk-JI1L068!TKU~)-99~#M-RL_kCCrql(xUY!2BWSxl&Jk zK58pUm?h~>Gve8hPD#DzMfZ&W&}Xic1N3{>Li&xx(;Y-qTG*3vc6IlqO8yvx(WPm2j^az~mGX#H`^XFs|@b=`+zIrrT<6*=8M zwi0AFrcaQ!W;Z542Y+~~OXW|55(4ak9DUr>Nv!#C`TEiT=;*g9noh{a19`!)sa zs(F<7&E))03(@{1OsNO@DsXAJVn4?=6iM9E3}9NTH2ks6clVg*^~1uT&mDwLawR8_ zuUD;4X3_D2ea~D`XDOFVtgthwhKbhYLULv_02NI{%*}d)^*2AkOo@l&YTzLyQ6xbG zY?3qz4P_x!KS=XQiuwh!apZFR^fVru^CmQswp@&kXT2Z^a;W*ZG%8ELeXT1G4_6NRYcih;^v6!hDP33VB-5-Tt{wAEv>E9H(5G5BX3PTGcz;iH#dc+og5r^ndufr_q=VN zDOEgaai+}t8K_9l&fWa7yzDSFJuOQYUBWRsJw4q#FgZU=vd+Y8?dZto;OJ;nfOd1E z<>27R7Ws4UA=>7?C$Ux@yn`4({`f+!1y*ctZ@(!le7YT5U0Zb}7cU-)rnd$;)4i;rCQ zBuvVmxbOY`-(Fmksdz#bPx;r#jJ7d-yl_Cn+X(>*bAmfBp|XJ|uqt literal 103407 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 diff --git a/images/cockroachcloud/serverless-scaling.png b/images/cockroachcloud/serverless-scaling.png new file mode 100644 index 0000000000000000000000000000000000000000..342464d0857eff1e3dbb8c4da2e230a46455cc7d GIT binary patch literal 395472 zcmce+cUV(Tw>FFv>Agw|9qAy_ArX)!QWTZmn@BHGL+HJOQltq;Q94NP9i)RIQF^En zC7}ig;S0a#yyx-xzW1CzzkOXhGntvS*36oF?pd?rGASYoa!NI{H*V26W6bA<% zgT2d$ZevTjm+eh(a7ey8sjBL0sj715d$~I}x!B|2XvV$GB7A0GOdEO-w3mc)3;#pp z3jQ8`Dor2`!5)VoCo#_(Dw^1>nqK4?3dQpCAi;F5Ni`~^OTc{VS_(OL1x;P9+xL@1GF zC=NVKFqfNJLRB^57T5gI>eiJxj?P4jFhBU}^72~ni&;S=9u8fK2bW>LmPRYyogUAJ z8^SpHLDXG+4Z^edmJf~85_w_~1H`%o8)?M4d3N^$=lHlLSgc>;Anc?~^T=?ZRI~Gq za$~W82Fm^gm6`{!;)i5Qa$sr3^%A0KExqY%t2_N=v0X$sB<$Ae8&cMfB~Wg@ z@Xp6z9g-Cd4(if+Z_ISb`D%IrUw*Q6BH2AlRw`);?j1idDQ?ZF{y_rHdEqtPAA0vJ znW^L^S>ybc?t4Rl%7;x(q~YaqT5BWemt!_+k0tdsSb&ooiQ)lOJoPf(@1Pqwt#e;B z+X|*_$F6n`xr@u?OsSfz-tm51SC*7s@#->S=9@0$KR$aGx6i*C)V?WpNnf|=+=!yS zb=cMDc(_BHBMIb{I9zH~1gzf4)okm!JFd;H{f0rXWvBFf{3IRjasESi(`%}V{B5B% ziGsM#J7pXq0v{?umoNhc_wzwEf|WbPto0l@g=&sm&xcDIBUvlud`z89S#bDX`Tk<= zB+so<)BOE4Q55eZ=Wx&m-FQczxKfspqCLpoQmp}O&?9~EpRHupw%5C;)O6=ef;L|-|uPQx0|d0 zvP2XSFFbJbZZY=Kd*ChI3Vv|=b|0xY?n;CNQMd;cL9sG(s;C{l@q=b6Jg*pVk=0$Y z_$Zq9cA7+5MQ>*UD~JTc1dEjP@s1^ZSmp7|!vo)6>Vxi+b%g;3?q-u!_Wr1oP-JxI zeJo3q9LhK_=E0Xox-*cw?$vr5h||*RxF&>PGrHXqs__IzP32?Jv3};=+h17d!{b$X ziv}ycRj53>^Xc}t$X6P#i`y4zUh!==iLX(Ed ztPHJWto>|q>)96B;W)l@F#}F(!X9p|RIDsnQ9`}X*C^I>VQw3@Jpo9bPSF*HgP4>7 zQe*(?9vXrcKhl&K zD(ZnX!P;DD$68Y#qIhmOiG0lSiS zo;8{^O{;D-segoQwW-~xpwSsq7kDUO?vybHDb;>7{l@dl@R#l{W?SGbldZ-tc=zch zL$`HcGYj*lb5rxTpVtZU2@1cZd&~7ULU37-`_q?Cr=OmD8h>8-Oz+c|ullcsUkNwe zZxVSG^X<>4;DS=61i1tmXINF4v5aG|eqr^Wk5dL>&)i@1lwgb_YSt^$K0T?L{e;w{ zt#+zu)A!EV7M(nLC+1i=;hR61V=jA%fD@Y3WwyP@ULdJ9sjf6B`62%U^MmU*$?wJ= zVz0mYD87E`^XRqi9@+k!&+==6_R{w9*M;-X_Z|l_cjZBnfyL#ejPLos{Ve%jEmP)R z4ER`BzFKuX8v3$VT=U*tsoncb5?`hA+*{}BW)Wf3eX-VqGC!=p+8_5V4$A)UkMOKS zO47cj&D5&VDj8EXi2oSlROXbl=PFrsXF&LyOF5L>dvU2R&)vcvvW(m8@tMj9{&_bi zA_u0ZAzSXCTgwYgcgk^vzJ$7$I?%hkb^P|~wam9JrvBZV; zWrpLt+tKjCQl_n`ebCQjn;plN;hM=mOdCMj7O7?&g@F$HDf|Vu3(ThFr#Z{+NJa&Oo_`ttp$&gMu^-Wra3**_ z0eF+rqgSNYQrqDE!M*gr78KlL*Q4G;9YT0bk72u&9r`|WBh(^OI$_|IRT92DK@Eu_ z<3kD(%1>m0G%oDI6mEr-)0BBVu9yJ=b<#*u6V(SqLUyL3CHfgN6El_!HjL4tRVJwW z6MQcAMuxH?U?&s?aYk)HZOV1QrNdpCmjC2y1*#&tf^rr(%RAeU-6m0KQ#1H#n8fDi zhKJ`9&)1$M31CK7%lk|RRF+gBe)VG;TM1$!vu5edo10I6Jw2V{CeDuBjl3eZT;zl^ zpT6W0s+aeSgiS*G0{TuiGreL0+&XDi^wUkBYRxs;wQRbM4S*>jcdko&P4xx*^J!8W z6t+}fX}${nMMW`ogO zW@-3+4a3s1xq}Z^&_B@UP(YTNh(d#zQ=7;6H`b%PBstYKNE@j7LG4=AuGz;HujMb8 z=M&F^UZ_^m8v4~p7-jT0cvN5i2;Ps~fBM~gym3lsET{z-7#!5?i}`^LJ3#k13+vyd zVmx;9SgyMaIz9_O=#cs0TD6F(PBry!8*Q(s+8yVcDjNqaqV+KYsO=Av%ciU?@E`HZ zf=hudizWV+aZk0}#(JC2f0{hnD~&2WXck+Be4OZZIiuL1*rPBG@CY!CvL0H97ki8T zqVU|}`Q$f~Z!DD{_~xI^wsCL6dAHxoY8{~KyC~!e`?ZpY)UcF&)8Y^KkMf|BQ{SsW z)W;&-#+r&h&RumD&0;RAZMVy#qpwUZTkiKK%?+>PAqm}BkL4B@?4X~^jjP*ssbqPS zj?p`jg$L{u@=F1co*(uqW@mrdezuJg(bv`;*A(h`zQFKv!CMjG@7UpdS#Mbd`3NfV zEB^K2*O*9oZ26&HQsI=6(htsG{sDaF6AyOgrn(y?9Nh~|{cA44Gv^76XwkgiHop1Y zyS~Ul-Yo4AF-g%D3(w9uuW#$W>YXXRC%;zkZ87s}U-2C{R}Y%*EHIE!aw}-t^4{-v zUHC2J$FQ{5#u9L5;SR2av!AUrUOJswf<__Y3oWOd+t%ycLmKueP3+&%uTGsCC!Y8= ztd?K@%0Tc3TaPFNV zGa$s71gC~6v~~yvvu%RGES=NrE^&58bAD~{KeW7sLl{H+YhVfY`prk+wO9~(hm7xD z9pQD}HNK7-gSt=Z+bC?L8*gu<<)EX3BZ$ot;o#q5#v#DwZeefWEtdbztKYhdgZEE4 zE)GtN6Au1=wb8|YYu-`7dLNteG7x`{V;pP>c5> zg_eNhiTcC%_()x`v^V;K`InQ^6$if8+b30R+a}I6P1^kPI+<~#LULLcZ zNftQf9~A`TzIMiE4pV5|kN>klY-e`+Er0%RwjOZTMG^U|yOX~CVesmI>i9o{YDavR{-67N zW5b0L*BtdzrS$a8|LzA-bQAgiH1>b>)im}2Bc@sZqf+Vr=1=t-H{t#N=ccMI#M!n? zPrzxxS*PP^jbE2@r#q*^fA+EY_N~s}%LkCN>}mQMk0_|zPF|yw_kP^p=>4+sh|70V1WwS60(#F+EG}Q3;OwUMS8_By_oVpCq$M3->fS5^5-gWxckfV zntP+0^+aVYRhKhV66kPljE;CN6c{yfR8hw#S0BpQt=l)-k&ozUO9x~96yP1{s`WR!K_^ zW+w#Wc>2q*C-C$zs|S2q%-HpE)UVQX`IYZ{?uw6Z3Cr?J-)d)bXPBK^*nb$0BSL|g z-N7&xN3kI2xWjb7l($1|;J3=;7KC4d>5`4_O2E#fn_tJzNi1gelh{J}pGYX}{EcjB z`dfwxmKSqbQ&?#2Oco#$9myo7mCly>R^1>+xhWko($7ybEB{{U8IhrEklLW-{oC$A za~TEqgT}NiygH+LelBfGH(susbvG)kAd?$eRuIv!%(RRTsRhn|dpS3`*V*#&2QlOa#4r+T4oyzemwb9)>02T=gK}zuVST-^iOv{XF_x z>sl(+ZvQIht)I((FSI%b{B}f(!-I~F|Io^IqqQSC2=bR!k$<$_haUaCEv&`fXr;cj zJn%O!cs#&r^?QJGdHlClUFMq+I58ib|GNjhTl82{<`z=lz5ZUv9*?oc4zfcJtpCG( z+&8q$Z58bQHvsr=I-Bo9x_ka_4ZT|g|ERtH&FkN`usa0j%@|baW^MlNZ5`>2T7vhO zb}THD0bzbUm&=VNnn3A((#%RBDx zy09$8f*Lq}_q}r)F8{r4YE67rlC9o+QsUqma{yW?-_%_3NbWuXo!4s#qA`!|TG- ztC2X3-r`j*ez6arRT$Cdfp!DNzJ|!%ZZvF!-Q~z*U)T*xckLjISEM+)eqf)MAhu@Z?F38IECdx3!gOSi&Ee+}^OmdMQ#y)V0z+Tx zKLnr1k;Dt}3Lew|55i%(l9L^fY%( zgN(d`0vtX7LJv5$bp3X9v|$sbgATGt7)?-Tc@ht~96jL~i~~<$PKFH6|J>lfdW7&T z^xSSe0)3D(4c|30*4_v!>=l+E6TJAG-T)xDYrVpbvM5$8Xi)_wprWMjyA>}EF_{?=*VXh#U=JnaVx%OBc+a=)61G}noPx;fH1 zXeOGy2@YhpbT|p*{LjZNf$<@Bs`0604-54=+GEX3e4G%cT|?v6R6k*Zn}>?hL8{46 zmbvn^&xON1f@vRiU@k5*#qs0~&)ay_?gvDO1uw<~FOuz%tv4}cB;@UY@xSG5GK_Fv zZ4h^^l_7Pm5Mi&k*$(6J?8;e4Q*u|1%Lb-L$79;1a1)4JOx9Db1w7DL&|SfY#2`p} zQV-0B#lu;^)ojU{by(Y!?XN|%otL%Puwo>f z{g1E7*d^fP2|&st{M#pjxq)}uB&{JQh9Ody)vFiPoF(Ba{NR562_TXdF>rtOK3$`6`{YO|u=4ge)+?A1~2UcERZV z6)qjc;NQSdF$D_^?R7m-RFmaplV@7!@|_sAz*Rm4GeU>ukyCDu4U&-SL$T|7mkB+n zgnxGRv^Ou>a0TT!Rbm;r!f-fW*D#^XAN+%ui%REU9#}BFx zH3X|X>^k)-g+Q71(YoQ7{MGaPb;_DKW5nuVW(#X`QuYsC&pdL@2lv*lb9>HnBjD{% zuaJOiWQ6QMww@^~(z(Z(vl(zC0g#M8B6`#U!?Kj(Y1vCF>(7PJ_f0nA`gZdDRuI)! z$Bi}K@P!A7(2qix_}B3ZvE@Ub&6x_XpoL2D6ht)#B7y$L+|vuw~02C88<)d+~-9%kX_TV-Msg#h%~)>d_*G*$`vjS$Fe_FHV9L z9Dm?X>Q93G6O49a_In_#eoRp*!orhRhFF-3!6tp9%>CD+RAszKSbj!l<~MC$N`j6g zxwF{qEJ*&yiYm0u=l{9y`xQ%ZR|PBz1LOthO@2zZ(8l_ofkjUfFWYM`+n>zX?tApc zAUxGTBk@8D<1Q(#CPM4V@Ksr$q~+;&^7n73P~2mKg2OkQS>~}M31{7BT`_DX^QLE5 z_v@12#!Y+8!LX2CuSDCu^_@cZeoHnhZ8?{~jTpqnmyC&ODGx&Zs~QD-&^K#Ovp+m% zu(OI-H$E`kRs>D_*spbfO+8daG&yKwtU>PB?^1)KMc5-1%N~GyEJUuLb5p*8=r%6C zkH#~mbR40%Gd#;T^bWv;ax~cbCb@v8cED4uzx?yO+5>lATKvaXh`jBA_@o-y6P`U^G|}BebDvqYffXw8j{B$c!pwB#y3+}^H@kx((GuiB zZdZ<|IsuPlI<|C~9RAIXP&z9?#m)U9UF?{WWAOx{Dj%)z5}lh!+Oi; zF#1orvvFA!hEGtL+qh{%$2VK{boZ~y?pK?H-2#@iB}mxKQepF)oH8c3t6;eKaT+}_ z&8jxil?cmhr%N#7m?_6a?*(*TmbqV)L4Ui4T)u4|pQ@Df#vE2?D7_K}=a2Rb-I3rK zVjLp%938hYpQQpO)Aszq9uiZy%8CVyrHcfT1wYTon0}6pNn?cTP5KG3YuF|r-Y}Zg zflnI?m2A4h2X632sqlGU>&dAc_QaIBO2E!IeE$#xx29w{FgP@Aje{P)T6fSWDl_uI zMwae*S>^^V#GnS4mfPIo^wmMgb&=lrOY;CbAK*1-Ei7YmKn(dC$X5vcyl^7})4Z}360l&CkHI>KZr+nV@R^mv^umCw)E!T8@4AQ+q3#W#VZWY3 zp`LrmewDRs!O2ZEqst^VaYuuU%>r1w2#{>-i@L}=tVLAJUy=g`e!8W*e8+$*lBdH1!+h<<5*gk zW;{({c%fQH<;-Z#hc;r@dD4)!r~Jl35QGA$%m<6UWn6+jk0!JX1STWeQB3Ygz)7lv z;%-^S#@Vhy=(fY8&p)16-*O0xf*%IkJx#OhP8Gr)+&Yq`ReVK`>G%hk22o$ZX}?(2 zND`zwe#4Ig`e_S1cB4S|I^?IPg}=gO8^&V_p+y^+*=|X_T)4SUQH_Xg4K!jl1#&z} zc*1#!P6M=~9Lh6rBcpcP5Bs;O5svGwggorHgy^RFTm z`zsP{FAXa(T_2-B%|v<%g>;c)W9p6bx?y-SpJ99Aq#^!y0Zoz(E5AelZB%OI3-^;v z9Tl9SKv5R*t9vh2mkxDS(eZ`GLI|N;Tn2zrFGyzng=OA@$IrzF49%+OHM}dU6jtfn zy-CH~juuCNzO3#A8L?Cc>{fJ%8v=qWIZsX=I`sf<>Y6s@f2 zA>zVaYo~qrwloA3h|lAFk%{`13>wqJwUw!1-}++ji=zckPw)#inlT+U)$H&R^(@o$ zKW@C}p_XYvWC?xn<%DuZgAqzRdn`RjmXZERdRzSY=PnoZ5rT%FsrLzih%oN@`Pp^` z|LYjD>t+Bxd=&g+zChX+hocXzs*1n2R6MW3TX-bWA-k(TL0>6#@oYwIMc7K%F1f^* z>B#%^%m8#^0Be)p)PLU`#5ViZK)B(z{#)(E2Hc|Mu+dt%ZRv+2{LQ0cb#v&Z8#qg{O+Se z?-a)m2AMFh7sjN(?lSS7N8|kkh5mafVhCl(dibz~FIo;1ypajL^+C^*LX4hU_!*_` zNMVA5X!1HIyM_%#6T-12^QT5v!Vrp_BBEzeON{+4Lw|GgTH;afSSNVf$Y^h5e6{kv z{Crkc0@!4TEd)BA47y4aIy^TW_{q&8Oz{QQSZ9-x5`u<}=mL?73cBX#Z*(sx8WE17 z1q2mV1M26M+x_VqGJw#XVqlp^3?*Bj+=_%tHbkm$i#J8=Cz6n`!3k~&nvzmKL>Idz zMU1B`nt;=Fn*{llbWbw88MpM#;F)I0+94}rvft(ay0+izNqw8viM(1#p|YRyeJ(aa z7Vr|HeDWS}CQb`{8XFq+NR~Ta29ND6v#zTT%R3%pw`I7v?2)H`<#J%8@m z>coKOh9~Vl5>=5RMv34i#aGBet_RPd=JP-fVWlAAYm0#}o+g zS=v$G)idIVm)VG8<1OEb0x`y*M}9nihqB`wr`%$_LOLsWqdwH1Jw$av&=aCA*;9Dwr-GYBM-W;8jR&ZFtOA+O*S}_5ottBtH)b|ZV`+if>m<|PW zpoOck3EaFHi%pJlcX0#ymaIfM~$uF?!QR(W6Jo8Z|cj7msV+y3@~qx1Y1*BxynNmd`e& z%OGR5s40G%mJ42(?qopUWRPn;A<)$vhoyVqy3B2vu`yANUApl6BF{CQRA$Z50yzE0 zeCOO$5;QUk3W;oKV=+gH&9_w~=c}V9Tolhi(qF~;i86!FvqH|-DA8AYbtb-#&XiEU_Br`pvLjZ0mJBr*7^eJWgsaPq#7(pE&w&EllY z7R?9Ri|_0(H)oc{d2cR(Q7t2rDcWov9%cPCYM1+cPeU0#P~GV>6W3j%hbIZ4NW8Ro zk~3oO7nWO&D6F2*ym?R&0wb=Xs}>7kQMIBAJu)GCV;g!-dG!c)y9f}h$!902Vf!e1 zSd#JpbK16Tr1dpm`#s3pk9CO=&(*^lOb+LC*jr^~t<>|n6Om|l(snRL4feL!WbUs< zsD_AdbG#lYv>7n}&PcXy3w z1jP$m?LK*5oP)*tx#1m*Z1D0eD8%E;g_%^Lqg{9UYNAn&F8p)gk~JJ932M!eVSCro zv#!nW(>{>``;IDLGa_nwa@_BmLz0?kcf_vzZS^T)AS5R3=<^!gRea^tQJXEQP3=<10vWHI zxL>_ZRO%?gIXVUF*z~C)Xksn4A_ol-GU6_&>?{b$dv>g=SRo3n* zA_vT9LWU!EK*Ar+se8BqRf;aTtH_?gHrCYxewHvD0d#&o;|R1WYXi_WsEUjgi<4tG z1Pis)34I=42HTbor+7TP5Kt9M<=lY)uhgN>1*CY`keLqTERx z8+Y7H4f#Dh4_dJz)bahXn*q?JC-F^R?W9**ds>Lh3ZZ$}{n7E%7!kBkel#fP%@4pF zt`UO#C$!O227?8OwiaFuS^lDsIAxm(MLtMtD4tAx6mW3<6W$eppAj<)=7M3|if$=* zr|?DZ@(|C}!07nWCfQEvz}ZEF%=xAma?XD}%dQ_r4;a-N+0?Fq67LL6BL$~fqYD!R zw&V2Dw5cPLn+8PDv(!KD`2lUFnDZFKI79}P{SKLy#za@=+q$jCDT)n)8;?HrTNZS| z@3`4nbNgsh)>B_~)cpz1mZ%J#Ded;u-%%^P=xbc0PVO}e;h@4R@Lia_}3kxdA<_ zF5yfe)|S%MskCm}eU^FrQ+5T&5rjVQBS`vS%RR97H9h+GMN`m^>J687mi?K(^Md}g zar+{u$;*5d+Dq_KdR-TBMI%SfYk%22JC>$A+*cXc4P3ZcWd~^~U6BJ) zvKPJR(}0G!f}a$rCWj`N#y8@19*zgToQ88uJmE)X7_dH1i<@Dlp=e@YZg8i1MmmctI9dCWqWNe0Oy&VnK&J)w)a^ ze7i_uNDVv5A59OD-98yx?XR2n{YLa$_bA+kmA6yx>u|`3?bvfBvF>Mxu5nO5!dyH! z9plY5t=sJO4uXVSdEd{=$55hF@;RM4TSL$BBB74hOiA_qUZ*pG?Q;dd5RF z_MI7-ps+^sQaHh>-2;=gM?J&Rfb3qcPkqp~VSE1A+vdHG=e|*zrAC*7uJ-Wu?V~`x zgHxkXvAsXqT+9kL8%NXqdHuRQQXf7l^o8`XC2P{m!3h*jtJC(x{m`?-K{4bCFhZ9^ zOCz#KkJOl}fp3n88I%ZmFYKU?UHW)uF_n+UDA9v8H>T2-ZA35io=70CUe{|4OP6uv zu!H1r2?!a3Nm@r!xdf+2ExBl!jpB}UvK@erP8Ce)`Ki25IYf~l7%~XP?T4OcGSCsW z7efyoSeU>QY8T}q-aCO;-r7T6z$y<=wB|+}^Q2W{dO+AfE@i#3{~_SR{Khv4@RS@} z0|43Kp5g|eC)KL%OB=5VPs!gd8?8eYA#3y~o?8Z*; zfN{8(64u!D$?<|06jXU}FYDMHXea51Uogeyj8uh?2Jg&=z}<ll{^+kn1Mck~xbd9|5AnLuNOugx}7Yz%lV5r9^v?t9#chhv! zyN_YDGAc^2aFJ)~3&?l)NJt{Q@LYEZ_7nZQQ(xG-GmppNF+FBb2&m3rHYaDdQDVnn ziok^ktfc2&Cv0gLqi7|^2&WwtVRyKJ{lf%IjH2sV35wgIm<{J`UQ3>sG1cxEiOw~y z)4SdM8cQVrq?WdBsvq5>wPeaZHuXLw2?KDy#+vAhxoV>=HT8h801w|jf=oO5ow04O z&I(7N|FpxXANF-~z~Cd#MZX{?FWAkKD01{*zq2)p{qR)6u{aLGt&q3J1io&j@ry;)M3{|Wx4~=s$4AA4uy-Bg ztmu0qDHN9)+;u}lu|+n7Alccdo_X)$I(Uz28G`Wcb(7}I3{Qm#idGX}NJ}*|{TYw> zpeo{XFMTY&a-3E}+Ff2*;^#K>gZK(|dLGjuLi7_NMj~}5VK0pzJbD`bp5sr@m=;oP zro@W$sh6fNriOT_ew0=2RUcQ>-QW!KV)_rf_}-F~%7$Fk1k%J0IiFBzWV7zSO3P}y z%fY0PPP4`)b}J{h%u-g)Vx2G=@qmfy){Yj}_PB>gC$G$bCO((SDG#fb7FXSSX@)kz zS=I>AbL>nNpP8UaYSG`dul8G{iD%w=?X-DOsOorm4i$9GHu1b7`|!=oKob#^UVX6l zcs(3Kt>MiX@h~PkJ42m+ThDzj;Yus7?u-o$jqWdm@f!F>vd-8qBV+2y-ap`X!I_Qj z+K4$gR@Q*)sW^^YWP)=o9-loPVFI@ zWUNroTyM-`c0eN(RUgoR*S@YD%ak99en**$xZ^T$3&?QCB$g9U6eL~l9xNz6FIC8& z0bxCxa0GhijYOjez=>j*Si{Zer1}%BYnM1O7h)$^rA_wHBE#yvWLaz09p;gPP3uON z7}gCvl8|B0LFdtJPg_+NYcUasUW(hY*IQ#+mgRd1+4Vxf--maWo0WBa`x*B7Stqk} z5{$*ICDGFqD&8KVUGXV(_ZX31mY`Oe^|G!mAKv^y>t3TD!9BYnR*{HTo6o4klaKa@ z+DaJ@5w0WYj5S0`!7~vAbS%Z(5Qn1P5GmOAn1=c1hm%k_<(*uH)#Pa=7vsdYxudpZ z$W(F@CKeFs&mooM9w-s|Aow6C#XFkgs)Rb5yY8jf1Gz8#fS-=58&RaU8DhZL18V2d zbI8Qbp+{hzTJmMIJ1W|9{MR$c#_GDIXreLBcp5mfXE$Pc*K~qT47{_YSYO6~*?dx; z#Y#e9AxiRv@*V2E<-uV*X3W0+fb}r8>u}ZjH%c;QO(3(K2v3gyzy4|R2z}4*pWUv5 zc<8CT^ay&JU1i}&W$}A}PSwP-J5yXWLib}oZZsM3XSO}y?up;=rHK1&N1Y+`XP9An zRCr2ZM8f87V&|Z6Kz7oX=Opts&9+14sD4vP(dE7Aow1Hq>E$%{w`G>uby+u$+gX{u zytSz|B^eu%rfa?5s!NY)kes@FrrrG}sLb~r3*ng*pzV4>u~zhw|H(0)Mr-5Qn(pbE zXiP5~gUhPop79FI{g~L>S5Iag*o4pk`BN&S)+UZ^hxfD{^7}m<^Y+#FV(eoh3eF8) zUqD0KZ!>grJGy9sWJ6y^kiNJWBhVc|*dIlb=Dy9{a^7Kz5aD%a{#hbANE#)z6ZE?@ zYW0r0SQM!H3=snYk2)22NKtmb)CsGtlVhrXest^wHz>ULy56z<%l#-+A%v`_)Gu&| zxT+l>XUzVXP*-;V>&3_FJrGVbKjFAbl zZ~61aiu>I(l(AroLJ+g>erf}}xSxy~eX(xq%F`{hyRMy_P?#~>{LKI8Lo2;C-*$F18)wBz1e5E4$NKBh^{ccvDo<1)hah?h^#g%Ci(sLrXF4g$Y- zB(L!!qt?X9Zmn`X4S&9SKXdJq-qp*!@m7Y8i;R~9ZV8XZREjfuspQ5!@!@EFX(OIs zsElV$mJwazWzy2=50!zZ-ihn==AWQ!iwM%u9hT7W=XkfRB|7#cyYl{(mYw4^agbP4 zPowu!?l#%!@zr zpP1gQ1@1+TCaqyagn;>emTng-UakqsAe)Oae5?Sfs)-YjCx&$BrwoR zG%PP|#&mb4hHC&1)9_SLn%hKudu@eW8-1b)6il^^h!}likL;Fi`e&(T%~ULsNhpc@ zY;FZrj!x5xz7<`()5Om+{EEWw7j0vs{nx{BLo~AYsJh`plAK+aKf!wsLWn-BO?L0W z(MQt&-#$IIh{Xo}ko^=4E&nm^i&FgrG{+-&yzZV+qGU1wZI68rd^o@+xh+n>=MUI( zrjtsf-c^je22QpRB!HexlU3FQegJrL(RNtR1Gzi=?Vc2e+OuyEZU_K#NJA>?bpRgs z7?~OsWQ9=s)BTIBKEA$xR^ve1A_csBhnyit64DO=_1q)OBWHFtlxTHUd%cZ3(`9JP z?VZcjYYd*F7m{8c(M9_3Fsaq`j}M)x4qE)SX_G&qN)q{bI5^PorL5%lfuSSQ8tZ}N zA!gWi@jO*oNS;4FD#^&(OaX&pH8p&A;v*Pp z5*X>y4N=Xcep8I9=UuYBO1;q^EWsfzti^%FP#0^`#du@jlWhm3+*XVuFGbMS}c*Nuc zw8=l`qulO!wb9~Hh1RnkS@d8mU!$m1TN-*$FFJ&$s64?{(ob=zpFKE)q`gSpw|cb# zHzJb)1cZWZMA!shmbTXC4m2uxKNo+3Dsf!W#OU^YMTyT~Uk&t4$*q*XJ0BQ2ZS$Yv=L^9Q_QE`=}wmB4lTlOJm?ZE7owBZUq zkXQ}j&3Y$)M^IyLIdgRyKS3mFkxAO6zFs z+HWW&jkL?ClVaS(#<|MeTb4tvP0J%GOG%nS3G4DZ8p^6x4DgdA4$V}LXj&+}-O>+k ziM}!PnzP~ulIbX;Gt<4F%YiS5H7PcInpU79I(qE5h>Z3#v%>7Oq|5@GXxxG}jOaFuo|db_H1fPz5F_E6|U1cY@wh5GRUnk;Tj zZ`;*#jDd>f5Xn7q=)Slp0B1r*)EEK%!>3UkOS(MHmc22KM`s5pxtw&xSSVD#{WS z)i;Ui1czDju*Z>$-ZeTN6D!|V3s>~kNi-L(TjShlf((TmZKl|?FbQlQ8n$Jm#H(6> zWAqestJW+@n7lG&x!o)kca%w-->FGV?Wx=;WaLleJv~&~N&UWaLACR}9!3e^%4)5C z$=#Bwa6XZ@2~2QmQz4@UC8fkbKk}=WQNfIMdhtN_Lyo+X{W+62q&0bSim>00lAKS>N8Rb{{D((jM@bek02i`*7TdAThN2q=72 zCnE#PQRs5I6hY_s1($IvZc-eTu^ia-$%HEy+a92;-}V;*4Sb@i<=!PAp;R5^+|A0X z$Gf-!N@K5G`m3D|*^C#%ZOAE-@dkbbMwlZ2N4)_a`YoqNukYP;_}&k&;JvOl_vS2F zJ+dJ+@U(d(V^COKiHM0o@ON_UQ$U0Yb4#Y7xRwUJTkhgWrA{dD(ze7UV>(?VxYu-P zv!#27R+az|afkhuH`6TTg!e4|nT)6sGvnC_n;e_Fi>I#3DO)b1X*o%Ve?5~m*wegl zSSG}~h;k&h5J=096!)HOk$q1k*o`1Qnw|I=II&1FIu(&)w2rF)#e(5yawt zpEeWzSz|L!qHwVQ9+6vEUf0jaPSsJ?X=r@#Mpk42Us9nH-$L2Ui|Rdr$)MVMo)~;* z$DDAg@QBBJeS${W8FHkjQfnk-c03^@a-#|70w$WDwF+=0p>$lMA3=xM7dT1{;hL>; zLTisSi6=I{h!n&UEE6pydzWf*WmX*@y(w3;pJ4P%4W$Z*QXY#gpi;WhGO>FbdMx>T zty;deXI`m4EOr4)O%L3HAHA$w;8AbwZ==y_kC3{0B(7OLB)P=H5vX3VcqiN*C>}{` z{w}3$rZy_sb2ma%F({G(dOOI$@WSA}L9f00aY{BPOnejNqF!imOr+th?6HQg*Sa^2 zhJHR;B-(HnCCb?bCkPoe;@KsLj@q-6kXGJrPJEDRxgJI#6|A_cOv&uE$C5LP8kHvv zIZl!l*fsMS7*n@Lve!|&z1?5IQfjrJxsljB=6XI#b-QIciJ{OKN|g&LIQ@QO;E>-QjTr&uPa53w$|pi~`HbF}NYEjS}`RwpflG{v7LEANQUP$zIH^4Xj#?iREj{ zFa#z?_1F%nHw>3=#u*%;bYHYK3}7F)UClO`4XjRT7tJs2siIpdVnkSAN1AP{eFf0< z^P~J?5*#0OcGxe2PFly{sbM(ER@G;UutN$LO>Srrs-wX`$$&I%TuU&7@vD=uL=|HGdGaLuCBpww! ziw%I=0u*dWEgq}OP2&F0?oQJ_<}Zj(+fEti9YiZ#CU+n2G5NLjYPq}?6~zaDdC<_s zjdJ9c>QWr~;=O@beG;U1xU#@RybQ&^B z;A{&;#*D<4kEJNkV-QL9j58D85|+H^yPV#N#U3PkQfIJjC@VU6c#OOHtmTur@1InJYec6iF#BQ!rvSs-u zE*Zbo)G=;soZlNPJ7pBWdxfr8Vgi)W+6LMYy8)&iFh~%rZVO#H*=1?32c?<@dkP&5 zDl0v`1>ltl;;lV67hbgrYE7D6BNGBnm+#KBCtar|Eaw6`hb9p$fqf#oESabtDgKVS z5|hG>Y(BSGLwIcAkrMEO9%kQY5k@&26VZ(&sN9uw)kn?Yl-ms< zcNi}<-0Red!p~_MB2`;3KxZTtn19k=tfpS{#n%O|>*3H45!6z>|8#6-oMDG=G@^x@ z{^>mz4wndKK{!8OR8g7-H!A>qd zmw>+(7fr>c&`d|ay6z519ZmQ-6Jy$3mM66nlNRfRGS3*lrZ%cug8@ItTiaUOl7XG3 z;9$a_FuXfb!*@heeDkm^s?zbbY(d_3UDX}EemP0K#U@0#KVA^AT8}XicP2JE@JLs> z=R!uzI5q4@$Uw0zr2J#g9?5k+mv*q`xULImLJ$HPG<{sO!@H-0|41V0#lu|Ly=p2V z=+d8r(7Yx}+Kh$wL6Ze8W>;<2ryYH{`ky@g4#-Ijd`L+x<98)Mmm>+EG@dh@;o#n= ze>6`yXOqmHoV12yYz^M=gY49mn;30y?+c?jbzBHI1JE!4sD_!FfrxN!%FXH}P*VmJ zO|I0R@dw&$yL=J9)Bu2t)tE;`C*h{&gW+$J>YumVo~@O&eOymiZz~1|+-cC~$dXvM zd$JKP3sUvi1w7&EQ6pLvk3OLGmmXIaaS?eow#7>Nz&5YovV@diTc0#!yDX=LK$6U= zuVx4^(n$Kj2Sl#Ee;18ZI8|mKRg+*=kGDjdo6+?Q1$#!O#QJTt$VNQAC|DKDJESBa z#}wr>vdJ9tGtS85t&OHo=}oq}8HaUYj{t=XQ76VmK6?DC>%y9axftM&ig6se8+2$_o5)4X_Q~Ol4%*)My@w=5Vy?K6}JsHDq8ts z;?qv3$uFouC{oOjWiVgLub;?69^-wA|A(sY3~RFKx}`-RAe{hGLY1D-qy1V5KmG25Nu7;&C*4)GAfO`Yx~@LCN^5T}!p*U^sBpJ0$U7w;Au$IMe9V z5R7WC(QM49!wQ{ImV7BeU4>>ED*BzVAjkC!7lu_`#xp(`Iz$gKA888&hpn!+{JcYm zgDrPkzA}ce?yX7Dj_+P!JPoLZreaOb34c+lG3==>u|t`>e*H5os{-LOVY*EAWB@K~ zb$4W#e~4>CzO4f9-U{8erRG_Qe}pG2ou=muZQP04W7UdaXZCEvb1h5wHJNnqsq~Is z|0O??TR7DSBBA9~KV~pE%s<9g@Xgd+Lx`#cL^LFT_oRq+;Ew>JPfdSqwW*J)a*R2S zRb5e~cWnAk8f=iRa#XGMI+ikIy}Z$~Q2}A%6DJ1QS8Z=@`-jiH2)*K;YI&$rAF>`k5*2Sc1+w`Po4NUh<|zw>S|=LvK;~-5z=(-ORwAo< z44UdTOExMqNA!NuC05G&b+3(t6W_XsQSzAIn$8V?eHFblU`)|erWb3vT201$MT^R5 zuPm??ttP#_F_z2~tBQ%YRTmIqUzKqQ1aRCAg0Sf++n{NjZSJy40d!(!=$N(*+64+ftJm|`xK1;AblZ!))K%-v6c!}4s5owECSR`}KCP*m@ zOc_uY+8N+Co!zowbD4J@K9kNrDpC)(pC1#9DJqz7WIzfHv!%ip(l1GG3%Yqk$Gfkt zfpk5RQ^$@l5xP&wWWFwDR8btZ!Fc@2vm-_??z@a1^Qh!dV&3$bJw`tJw4sgdl`1nw zv7DjfZ#4l=8M_%$YB7cPb**KL^Iy7YYB<|R7`y@lK*%97vKKZqaD|In>#`-~W z&!W)w2Z+vFFkXW&z$`#$>{7zlG-F3!{A`UbiOqP;}Piq z8Mo8~I=)nTfz;CoC3weiQGM^=(14Xs({BfuIcq0X4}Gb$Q}b$0k<2M2C^a z{%cIIS!m=aGrviY@{KJAM7hmLKjf@zeewI9H7G8DfA1T{3b{2|ArgMn{G+R*rVKkO zuwyWA^VNs0zTHf4XjU#$syO9cE%I*OAai^$Lk8kv={L~S@4u!+bU8e4Y-fjZF72AH zr+~tUW-B9J(BwdjAk2l`e_J;_E*!#`#i0G=plJ}?75ceM;2JUK;3E_!1a`bD%5C56 z3By$8wHHL(iwH|~&a!l1IUw}3_Xh>UXqTiP%+vANtYxGn!|*PVda?2H_MFU|pAfv4 zD_Q4;^|v$a9abxWenj)Sjf?XU-6%3z`aVj8Y5fsis3d?%;B7gD2oe)X{4!`MvlfSc z5t|6dYLK2<;v|Wqr=EJn|Y;7q{BdaD+?fn>?Ufj;N2yzI5Rjpcn zGmF;@Ex8$1@-U$5>?O0Wx5K0Qc+K_+W}xzbBmDhHfz$#`aM<%;0)2R8o)r+8ta)6p zb5uH>5=0!hX_jMi=0Mb~D>po;U@7k(ve}gYtnDOS+`H`FGc>)!nem!7ioWkIVcmJ3 zUjPpSGkbk3X?=G&HI6H)rkXt7Kv1na9c&qs85uA0o@A!r_5q+Muiy{{Nc0fi98OX4 z7q93}s_=J+@3TCNbqsoUH=zk3+ntO$%6$R|msbe{aV^9WAmGnW1O(7F3w99nP{uMR zX@NIN!j}x|ZsnwGES)z*FQGfWZ$*$X-KPfV@97S>aHjhM5&19%5PdE{z|fGwf&RTw z4uOV+@^&eUQAGM3TR!_EDH@6UlHFq1Sn5}2Yhcpa1YH^2QA{7jA`xRh2VKq5nsLh< zlX(dcn4y~OD^2_OdC-}yYn_E-;BHPLCk>5K(t>K@OA1MOVTG5&H8j#OR|kY`(gOj; zv3E2+W>CFCOC}0`VvD7a%)b`{bv07h`kDMHSlf2BPR|ZZmxXYQx#pZNqQX`yOqIPs zyo;5mT^Zujw%iy`7ayJD4`6mykTQDk*ocXKC^stb6AP4vF{;G{){7!&pZZV=knxWW z#kuYr1k_9*u4h)Ol{iu{XTVz&mj^p36z~Xdp-@b>T(cU;r?DpIyk! z`KXfOzV@LA`5;K`6>k_4G9Q27YMbwjb|AO-`yh?s21in())y#0jv3}NOhX!~`~Gg`>T0Fh^nx4ZU>UST65CAO zYH&)_UGg|QvRenNXswy!FLq{WAg_)9|=dN=tyDBg( z2Qe?hpi4j6wi?6CmY-6*`(G`9izqzHs(64*IQ)ZsBxe@ko$Vt-y6|HjIJ$)6!a->= zT@fx@JTAK-rUGW+YK{|)xIt7dIry`Dz<)rxcW8NG1;1irDw?1wC_avC!HW0(<67&i zU|YJbK}=eaCVYL7|5|f9Gq@;T^Nd%SEIeWQ88oH=Gd1RwOg}OlvJZ*9+&)*vAnZTbQ#M0pEq-AD2UNQEppDLwmN!kf z{Kq7VXK9%#vJ{Cc5u7MD-Kei#A+{smcZ-NYw+l)Jv-^t7UsQP|k~cB#U6A+TB@Z`7 zFE|{&t34HeURSj$S^Pr9VzYIT(=BN-%us(+P2{j0dQuO?GJtd_f#!C(A54``T~ep;)t?y1a|^C zGpx+|?RNh2?XQdTWXC(_hcrrZe|d4tP3k{c_3-H(@mix|UXi8;-Njag&>Qx5c&f{2vo8=`d5 zOlr(YIy%`qO)TsoS?ZMII!-Rl&GclYHu?_8h9x)Kk!-iF5sM&zGMQsZ%x#p;!^xPX zu10K4NCFfGN=a`i(~Z@0J6>0PGr-59IHT22%IP!yP6)JBEFDeNq87i;{Y_Swu54pH z{Mo%(>GqcyI#g$4_k3)QcJ#9q>xwLaOe6Yy(gOy|t3YQ}k;W?p-D7T)<_TBaHs%Ea zj3JV!bf|dLK6&Tar6%Re1HNq_D0W%>q|KehYGd~GUA-AnqpO? z0N(WyT6I_~XuNTQwUT3M`>DvUJCi7XfMw+ZZBQ(raExkYr{>kF{oI#NCMqWy!ffxn#G8fJ)fyY;_pOS_s!ZxPtJ zhRtEu0!$!X->S5Pf*P#w_Xea}MPG~-m+7482^E50YQmmOsA<0cc-J9%yE{tLjxJGc z^ftjgXYoNHzt_G!6Uctppu;ih6WXd*CO9b^Q*u>PN;QcKU+gfPvCuOJhK~ksGb}RhmK)$u05rztky{EuuzpCf z9&3YN6%Kg8U=6vSDCAEpJ~%7JK`LcNIJs_bh^wx0wyT)Q7O$sJnhYw)t)je1{B%~}=aSuM@NEw%8YT_iyb6wl?*8rQT;-#kC-r>De z#lUOKAwG}f8m6P&zuTqLhFvW^t-6ZbwI_~(o7V$0<2BWrrZWw@z5UJC{5Y3vWQm?m zN0w)`PppB+0A}Ps0e>)w$n$=Grjx=fh_qN`;I-fCB*<({bOaL}dfmBvz7viltv&el zoU!kV6^j{4d;*FdIg+osf6RNgK9b!!_y^0urRINy_lCbaa$N~?dj-OiBq2S0CiP~kR}n>d(MKEI1ooQ)A^}^%N%PayZPg_nOFzG=PWc4 zHcn!UNpxpgJ1o~2Jl^yV0=2c-#Po*2Xzg3ME-aa0o2LHR?@?VhO0(NV53CJlMOkmD`G_yWw7^i7*vPA_W8Fp+{!QnVEc7^8Ns#ri zwt$D}no-u6Nh8xGONJP!loeUgsVt44OjHqJqe0; zavMI4Tsghm#rP{Uh?VU@OcpYGFldc4Qgu0Yw0l^%Ev%WnElkMsF_n4PD~1_|r|hQV z<(X3nXHrX$Vy&1cFw`Lrda@IfKyNWVV1$GWE!pQ(w{xQgHb8-zB`! zkl_+y2te)8r))d49GmiU$YBzv!h=Qxewgqg#`50>B7=N)oF~=m221kIN-*~wB_@m| zZzYj;2gDY+WdJv9p3x`dr zHj&X_YzCH*>oKki9mw?&{R4eignzq^s0!1zSSD|Y5moTldQ1L@R82B?E$Dp2ZKLNU z6m76Hi6h&|1BHD;2uB{2&xZGCC5Q~Ipni_Af~8kxRZu_T4K#Fo$ydtTw?#oB)ed7u z$Rx`nQM06RIlOROd-?u5`|Y1n5Xt{T=laZ2(F78)w6Dh>H;L3U zLl%OWo>os}Jg&MRBeYJ{mxcX|`hG_`+pIBz+ejYZcDZ6}`+WyWl^MRRy!p~}&y>gG zDy~|P&c@zy#Xr7-iX?&n(o>TRQh%cUTga=Wq-Kr)LC#Og@9Fe;AMI1cMAcRgKO)#x zpQQIu-o8+!q(cz~OE#dAf&##Y9iG$MV|hBcMTWktnWi$6Vl0$KuK+Pk_dyz&YLo!i z_lF}mHa0ggm#;eC&059IG66A-3l2-T1W_^%;=nV$FU<2kd6vS(oah%gRc&rek(c6~ zv3qqXQ|WTdp2|p@&w;sfp+Q6*uBUnwCvrBCh1&U?4%e_V#;_>JyT41t!)yMyDCizdc}nLGFe(FZhujE4y~GyMDNN-d=M04S3_opwdX~wU*&X zD?z7UhKj%-oP`0uj(IK=2K+DvvRiAa`NAIoxjFR5N=KTClt5M7> z>dXWvM=YM%o|ij+bt?0GNyjgy|7(`)sEAXdLgZrACF!RLy_}a9-+hZpjj!S6svw%Y z%5vVz^$m8@KK0Kef?DCRd5TevyX)i)P%xRLwpu;d2)8=JTf5vcm5eDT@ zfi1~%bi#B|nFl?dm?M4=QQWYT*Z0XhIJ5fxfW0rEQK@ZYB94$@D`|#N8JSR= zydP@;(c*FL&P!0P!iukmYi^_iG&e!kpKjXMpsE(>4de159B%qmxJiMoE%1d#(3p59mq|p2(rM zSguj8*_f>%FrM|DsD^BePD9>L*GwJ+rxH>_O1y~U%=<;(v*Y-G+YgbGm`{=n(INGt zdo#E_2(eMjTdG}(qKUoxO5W*=4v1mfM;1`Jl&gabP*2|@4iAFu$&le?{bjkU$Y}6> zbS>U%<|UfP-!eCM1|=+b+D}^dAeYP3Po&5Fvsw z_>H+YXFKkC*W+PO#`^)o+M=;$`gqOG{+?AU@RO#w^E@yNzQ>9ixC_c_wk``yJ1DG< zx*nh<18ST6{a3hP6xKtiA#-E?YSA1-#%ogcfk2{)t8~S_PjqcrXi7{3L34Ha!Zfk< zgSj3eYC;eyXj8(S8z)rtZqY7p?4mb+JcVDQU(lJdlKdkid0q`8(ZJhIvbb26s<2)I z&g84k_jl>aX{2^UOpHT-N+b1czl@lS-n(T!6|9o}k!dxdA$rY*qG$U@!63g{)_|zQ z`nPe92z`z1Zw0aMMVyjD*;Ue1`qN2`+vF|Ox5rFP)CNK~ag!Qwcz)ZLyAcx=OmzvAsV0E^~obNegz=mq1zciJ?QbX=fZ4 zC7zHslX?(53T-Z=e>-ZJtl-1641B#WW+S{OOQ+Tc0&)g$WLygzYxc;zo-$x{MdzLm zv~%syXNFU|Eo870B6B9E`GnlvYgLWA=PP>)JmH*NJ2UY#ho885QaJZhNoPDgg__8K z;$aE=PurlO)1R58Hi4eB{^BY+BED+MZB01lPS3-;n8M)J{tGmla%IR&k{rD!|~()|!b5=4K?w6o@>x zSpb3E6b=8RYASmUSaW?KhD-fwhDJ>q%7!h-@+z7)7RXu;7V2CI4=4r;Jc}*(V#v3ux##1Si-{ZTVc^5RV6bp2Y9x511*W)v6-EbRO)A`aDR@DApk;kan@*SlHP19?m*RPpQGBbT>;uvv(b8aX6 zHuUazsR+2HAICzzk55g{D0)?s7u_{xvwi2{>flfL-m2Gr$HU;GOs*oD?ZeCQ#_*&v z*t7 za}bLC{m;^X7S#U(xEeaf-*Zz z?HTjo132WQQ*a~L;S!g^N+;=klzi~v3(eKx%BgQ7AVft<)R))ir;qfsNbuRVb15gI zNxnW1$%0#(jzyW0?t$^GtQ{IKrB#!^m;pr-3j+edNrk&r)0{JbOP`~thf;D$$`=bh zYZo*J?HE0!c=9}66K|Y6GL;L8VWDrxRJMs%Y1A6&11%dqamw%AQga`EKLcb3wX70 zu37(js0$?=(wzm>0{v;`LJ4H*(X*C(L%KUkqgW_*m(bBWK*! zRQ8|!oGT;Aj9I*0rayG(h*SA(DX9B-tmNW{{fuMq+Kk)CYnrH_`wjdji5_Rr?uZ49 z0zhd!C#yS1;{1E}p^WO`Gxpz}hS=71%HkDjKR9&wf` z#SG06(8UI|p0(OfLK3b=895UT8`IK;7P@6@&vF9EH?bH;Akt&`{a}f{ipDDZ34egX;LJ%6#orzbvo@No z+qlVI)WEKyFLB8=1s0iIJ2cb2jY0^Gn9==7RvRIsZ^z`xG>-KZ$VQ_%AQX`vDaDwG z2%=aMfc-SeJtTBv(!Ji<@vT#U&X0A@E;n%j zahpVTps-uAeg%o+h$CTxv#GP(Vu@?+?7c$@bNd{P4O;@*uCegqkln~p?C3Fi8Z zrD~)y^RP0NHxD(~mxm6kt7nR@?aV6UlZ7w++KpvIxjf)QiMC5KN&O>v-a+>ciep^K z;f#)wAEabR6sjEG`yE=??R{{@z&ypp_>3r155?O_`v1E!Ihj=2L6cr1VP!@v`=$~wQ z{3@_=FrNlm+L>#$dbx_jhcz#3*dic6=CugDP>JNZUAs_jGVq)Xyf4vLT%5F_(*8X8 zwT?w^e$WQ57t1O#3M{T`73|Hv%*O$j;b7$-y)kwdSS-nL} zUX!>70{E0S^c(5Hd^%>zHgZ|Fnp6d*=}OmGxW_5xin%JEZ)Yc zd>R9ZDIaDni7E%&-M38@>;mf8spi)|on{hK(W`-*jCHf}|LJH-mypyMFueVIc_|z7 zP=zXijtqctcl>^QU4v7P1>r8V7M0){WHDQ)4jZt#a*GtshV2Ag)!ASSvdND7E@76zd5yWZ z*#&E=r9MeW4`vj0kCH0`U*3J~9pop3X8OUzs?QsEVu5;PZqs@8MjsMjV%Et9Wl=xz z&}M`M^bfAw1-j5x#b@9M&oF}Do8pUrNP*>aiCT=Ndjn^b?fn|}QD-1>qp%Y|m);Q5 z2M|HNf-3uMUrwDgdBv#xv@*UkKI>|ory+Sk$1R@zWV`->AGswyE%Yu7g{@5f!ndBQ2m_8q)z{9XO_n@0{g?|e(}k*6|rBuvB` zoH&6W2-Yvs55oWSTCUaOGxjyy4}c7yL}D@&D~4>5Nf;~GsKNC01Bx-3yFc^ z^T-+o0nT_J(uyW0Zd|frHG{lsu|bftT;_5oS2;-=v}dMK?}z9NFr^XqgwhN@#JI6C z3AL_=Vcv2xIwR2XKv}s=ao3G`-9Kx3_~(af>6+`G0?IX{4=`eKc$KBiTk1z{3`dv! zIyu0*FHPH1+;<$i^Q1YMclDQVI8A#ddL?KzAw7r_D-V~E6(+m;og?? zsA?}MkhzI}xVCpB%Mi=WC6>eMdSf&IwUBXWdx+I+HU8Sp72*2h_mB*67RHaGkJ@ug zw??7kci6c`*2l^z-mswO$I>jn;jYfuPmt+r7JMEVM8tm*L#peqe7<#829dAY)WDtx zTQf-FFX2nh{nQSrE_=im7rQDKXx6WjVJ6+fNxOpZXO%zNlt*pF8@*5ve3K$vAoSS& zB1r(&bT!bScnU@M3lMVvIkTx?ufUD-_A`32XS)fdPmCem`Rr;+XCLAp8dR zsf1cGKB1MLl5}x|3#R{ zj}^_NC}R;cW_S+gk{I{)qNgGg2BPd5M4)Vpv5De&n!VKvE4L0-1}&>Oz7JXG(X zqja~(f!$J0UWLY}U!R7?P@CJBQ_Im<`yVp-fOhv9b34J*O)Gy@SY8mcXdH_YYGTs^ zI3J6EZbJ?Xf<#Vac48X7SdTDVNr z>d+|MFo6(t>_V%Pj(o7lK8PYQE40xS zJv;b`K%B$GIl|2P+%DNIl5vBI&RQC>K-LIY6;a?dvx%N`{L59}C?fr$#`O%{I+wi? z#;x*?g@f#B`vTez_lYdQtA0^FsOyelyXDlH!>$U+VnpFKjZ9tEyrN9r0tFQX*t40t z_diwQ#!c#9xtK38%_&dhKVje_N2$Y`R|tjS{Z&PISdv8dd6NlG4kt z;>szrBW*6qnkNGpi|l>d^%%os_G#C3H#Ou3CR$}Q2<=7M&Z6|uTi+v1yjkD8o==u< zPVdAf)L^XOpX0I678}tz$@7{#H!?Kn^yn!=8j?{8F`s+o$Oj%DAE6%y;#M-PvK7-YHu$k=W zGUA=}aO{E6$RNURUO43O_|L68267gPEd>p>O&<4eqrORuZ_Jm;vsprRd_b+8dI0i#O^UD7g~VmE6|10$K{w}vHRL#Ck5RP#dAsif6y~z zUi>V*;~?-Cq3=nC+K|yCb4D!X@1yIHQtwxp6Ue)h!hNmTSu=P9kGLyzqs*M7Z2*s( z!QAs0Mq))_VF;Jb+-9y|;v?NPa}87Nn}|CR6>!^u^3Zd1R&8Z-)F-+};^=O$E$`jK`@7~E(K#LKQJDD4 z9K`Pb=s;jEAjBzl+R+jzqC7>6zSdOpt_)qwvwX>&O<=0@70?=JDYnjjoC6>#9`nKX z%2T#bZ6-0uz>NSMM$S48)lBM`bMh7~v{k=uOc1icA(usMY$=%QlSLI{$)-<1<4U6i zW~=qODfwJRIYhW0C{5KM{4`1_L@Hvi-;Ev8BGxZb7}PooaFcmpw;>!jRzg#1D|{w$ zHL(SgpclOW1##?g9|zOV=CiGk0jxYjOJaAPrcCwozt|shV7Ze2n{nF5*v%chpVYH3 z?&W(lP$%jgDakD~-H38Z-^& zr-c--7gl6&L_22bi$?U;;3WU>G9wI1$DcKjQ6lDx#en=)%e9Op$y?lkZHTGiW=BFP zAVt5V$Z4aLeO(Y6aZ1*DitQe{JfP%!vIRRa5kEJ6RXc6NS9PI5<8-AYw&N^xo{v8( z=6iW5+7HdDH;)KH50+2M+PqkN&Q%yAp8fRm$HFKye`^e3*D^-oq88=XQ2t1UD7k8< z(eMCfIqVhoH08BGA?GN8s%I{PAbfj}^%;l-Yo5hDVr70beu?G&=x)Z$!{kJw#S%Mp z+EfO=SHe3-hAVxOWW^(!kdFk*^G#|DrP^87#fgkH>}v={u&3FCWNg+L?Yk*-b^{4q zPMV9DiWuJ}e_y0~%nwnA-42P|D5qptTn{+xQ$^Ym*YWS+n~`_|aev8glWTp)?_uTCXN|}$4V)IlpEe;j{azGAZr7Y| z?lkIUd!qY*<=PC&Vl@tMw)wb2Q;kPCAXO(Tzc3|hB%yXeS_Kdsaw&L}CYXDG{~m_S z<}OeRoh@Gw7k}9n9|dvBPMhvIGBmI~<0S=X6k6Om84R?3us=94TuuxWC3Gbg^3P!u zI9% z%h}#de0H1@IBwiDMP)C?`399TX%rEwLiHwkhkuP7mC=mNiak@ZHD`;R0`5t4Kkr}bI- z+H9O&{CoOUGKDGikd;Nj*hj9lFdZR6LmJ}#jD)}gVjYHSGC9N3>vNg@A#9c!db$`3Z15ultQ@?mV_KV zSCb2%HQg&cQ`+gT<{P@bYx+zc#r!)dHw78sE48zEHgq(~(!-koHl1K?&)sGJhDV zA)URHu8VGM#3rn!3>&ork`@M@u^8pgado|NPvI-Eza_;ah;n1Qj$^hdU%Xfhb$Bzw zaepoR4mp)En;ZLD^-+wVN&&m(sarKh=o?mr*UcTDh5-i%Al=wOVqRN^2ouiVkGs!0 zJxd}FE3G1cOy661V`P+uCAn_AA0loGND>z5rT)Gq4%w>L>yg)a`B<*e}3+65KGvZiM5|xF&{G7(8OKRRIXo| z-cvk$lG-g|_>v29)#ejto%B3L?PbVT$o3$Aa8}$d|E1mpY9=!(lSmxm+9=g>Mx_;>{M30oet+2rg`r$T#aE4euDpP#{>YeW zzFG3X$ARSj_3=QlLpL5~Z>8#LnQXCTm@qP|yZFrDG*pSLFtbppbI6Ks#$b`-*8_nT z!5rcglHVlnT-mT!C(kFTX8+23dr>g5nLq00g=#c>fsB;_r6t(R{Z{9dS$&|9pT)H` zQq4sKjdFmOvVUjn=d(mS78>~|LITo;+=n=X>m`!T zq`xPJ4_q0UH|w=AdJ^%-5-+6yTUJ*K0t=YJ)!+D?{7@yUgtlP!2=%0D$7DbM_r5}0 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%0AcRi9=YGVXx+Xb!vv* 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�Cg#k%&hPG59`8w?TuEJ!f$`4)DBQ_qb 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 Date: Tue, 12 Oct 2021 15:48:56 -0400 Subject: [PATCH 64/77] FAQ, architecture, and performance updates --- .../planning-your-serverless-cluster.md | 8 +++++--- cockroachcloud/architecture.md | 12 +++++++++--- cockroachcloud/billing-management.md | 2 +- cockroachcloud/create-a-serverless-cluster.md | 6 +++--- cockroachcloud/serverless-benchmarking.md | 2 +- cockroachcloud/serverless-faqs.md | 12 ++++++++---- 6 files changed, 27 insertions(+), 15 deletions(-) diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index 00b49369aee..b5c78ea79ea 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -4,8 +4,10 @@ Most resource usage in {{ site.data.products.serverless }} is measured in Reques ### Cluster scaling -{{ site.data.products.serverless }} clusters scale based on your workload. Clusters start with 10M RUs of free [burst capacity](architecture.html#concepts) and accrue 100 RUs per second up to a maximum of 250M free RUs per month. Accrued RUs can be used for burst performance, and once they have been used the cluster will revert to the baseline performance of 100 RUs per second. +{{ site.data.products.serverless }} clusters scale based on your workload. Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](architecture.html#concepts). Clusters start with 10M RUs of free burst capacity and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated. If you use all of your burst capacity and earned RUs, your cluster will revert to baseline performance. -You can set your spend limit higher to maintain a high level of performance with larger workloads. If you have a spend limit, your cluster will not be throttled to baseline performance once you use all of your free accrued RUs. Instead, it will continue to use burst performance as needed until you reach your spend limit. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of 100 RUs per second. All [Console Admins](console-access-management.html#console-admin) will receive email alerts when your cluster reaches 50%, 75%, and 100% of its spend limit, burst capacity, or storage limit. +You can set your spend limit higher to maintain a high level of performance with larger workloads. If you have a spend limit, your cluster will not be throttled to baseline performance once you use all of your free earned RUs. Instead, it will continue to use burst performance as needed until you reach your spend limit. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of 100 RUs per second. -To see a graph of your monthly resource usage and recommended spend limit, navigate to the [Edit cluster](#edit-your-spend-limit) page. \ No newline at end of file +For example, you have an application that processes sensor data at the end of the week. Most of the week it handles only occasional read requests, and spends under the 100 RUs per second baseline. At the end of the week the sensors send in their data to the application, requiring a burst over the 100 RUs per second baseline. When the cluster requires more than 100 RUs per second to cover the burst, it first spends the earned RUs from the previous week. If the burst requires more RUs than were earned the previous week, the cluster will spend RUs to cover the burst, up to your maximum spend limit. If you reach your spend limit at any point during the month, the cluster will continue to earn RUs during lower load periods and spend earned RUs during bursts, but after using the earned RUs during bursts it will not scale up beyond the 100 RUs per second baseline. + +All [Console Admins](console-access-management.html#console-admin) will receive email alerts when your cluster reaches 50%, 75%, and 100% of its spend limit, burst capacity, or storage limit. To see a graph of your monthly resource usage and recommended spend limit, navigate to the [Edit cluster](#edit-your-spend-limit) page. \ No newline at end of file diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index a10a6883231..658619a4e38 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -26,7 +26,7 @@ Term | Definition **Spend limit** | The maximum amount of money you indicate you want to be billed in a particular billing period for a cluster. The actual amount you are billed is based on the resources used during that billing period. A cluster's budget is allocated across storage and burst performance. **Projected usage** | The amount of usage that Cockroach Labs projects a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because we always reserve enough budget to pay for storage for the rest of the billing period. **Baseline performance** | The minimum compute and I/O performance that you can expect from your cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  -**Burst capacity** | Burst capacity is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can accrue Request Units that can be used for burst capacity for the rest of the month.  +**Burst capacity** | Burst capacity is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can earn Request Units that can be used for burst capacity for the rest of the month.  **Storage** | Disk space for permanently storing data over time. All data in {{ site.data.products.serverless }} is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage you see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. ### Architecture @@ -45,14 +45,20 @@ Finally, the SQL pods communicate with the KV layer to access data managed by th ### Performance -Serverless clusters scale based on your workload. Clusters start with 10M RUs of free [burst capacity](#concepts) and accrue 100 RUs per second up to a maximum of 250M free RUs per month. Accrued RUs can be used for burst performance, and once they have been used the cluster will revert to the baseline performance of 100 RUs per second. +#### Baseline -If you set a spend limit, your cluster will not be throttled to baseline performance once you use all of your free accrued RUs. Instead, it will continue to use burst performance as needed until you reach the spend limit. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of 100 RUs per second. All [Console Admins](console-access-management.html#console-admin) will receive email alerts when your cluster reaches 50%, 75%, and 100% of its spend limit, burst capacity, or storage limit. +Serverless clusters scale based on your workload. Clusters start with 10M RUs of free [burst capacity](#concepts) and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used for burst performance, and once they have been used the cluster will revert to the baseline performance of 100 RUs per second. + +#### Paid + +If you set a spend limit, your cluster will not be throttled to baseline performance once you use all of your free earned RUs. Instead, it will continue to use burst performance as needed until you reach the spend limit. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of 100 RUs per second. All [Console Admins](console-access-management.html#console-admin) will receive email alerts when your cluster reaches 50%, 75%, and 100% of its spend limit, burst capacity, or storage limit. Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for burst performance, and vice versa. If you hit your spend limit, your cluster will be throttled down to baseline performance levels. If this occurs, you can opt to increase your spend limit, adjust your workload to stay within the current spend limit, or stay at the baseline performance level until the next month. Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst performance. You can theoretically reach your spend limit for burst performance in the first few minutes of a cluster being created. If this happens, the cluster will be throttled back to the baseline performance and can reaccumulate burst capacity by using fewer RUs. +#### Autoscaling + Serverless clusters also have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for the storage your app is using, but not for Request Units. To avoid wasted resources, {{ site.data.products.db }} automatically pauses Serverless clusters that are inactive, which is defined by having no connection to the cluster for two consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). The diagram below shows how {{ site.data.products.serverless }} autoscales in four different scenarios: diff --git a/cockroachcloud/billing-management.md b/cockroachcloud/billing-management.md index 0065aff946f..5c5f66ae499 100644 --- a/cockroachcloud/billing-management.md +++ b/cockroachcloud/billing-management.md @@ -9,7 +9,7 @@ The **Billing** page displays the current charges, next scheduled payment date, [Console Admins](console-access-management.html#console-admin) can set up and manage billing for the Organization. {{site.data.alerts.callout_info}} -Setting up billing information for your Organization allows you to create a maximum of 10 Serverless clusters and use [cloud storage for bulk operations](run-bulk-operations.html). Organizations without billing information are limited to five Serverless clusters and [using `userfile` storage for bulk operations](run-bulk-operations.html). +Setting up billing information for your Organization allows you to use [cloud storage for bulk operations](run-bulk-operations.html). Organizations without billing information are limited to [using `userfile` storage for bulk operations](run-bulk-operations.html). {{site.data.alerts.end}} ## Set up billing for an Organization diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 1138c56ac37..238582e4631 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -32,14 +32,14 @@ If you haven't already, diff --git a/cockroachcloud/serverless-benchmarking.md b/cockroachcloud/serverless-benchmarking.md index 51ebfc101b4..273bb9181f3 100644 --- a/cockroachcloud/serverless-benchmarking.md +++ b/cockroachcloud/serverless-benchmarking.md @@ -24,7 +24,7 @@ Baseline performance was benchmarked for a free CockroachDB Serverless cluster r Serverless performance -This chart shows the linear consumption of RUs by a CockroachDB Serverless cluster under a constant [KV 95](#kv-95) workload. The total number of RUs consumed over 10 minutes is about 228,655. The cluster is performing about 318 operations per second, and each operation (a point read or write) is consuming about 1.2 RUs. These results have been adjusted for a constant overhead of 5 RU/s that is unrelated to the workload. +This chart shows the linear consumption of RUs by a CockroachDB Serverless cluster under a constant [KV 95](#what-is-kv-95) workload. The total number of RUs consumed over 10 minutes is about 228,655. The cluster is performing about 318 operations per second, and each operation (a point read or write) is consuming about 1.2 RUs. These results have been adjusted for a constant overhead of 5 RU/s that is unrelated to the workload. ## Learn more diff --git a/cockroachcloud/serverless-faqs.md b/cockroachcloud/serverless-faqs.md index 7d9f9513713..b8a117cbadf 100644 --- a/cockroachcloud/serverless-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -24,7 +24,11 @@ To get started with {{ site.data.products.serverless }}, ADD COLUMN", - "urls": [ - "/${VERSION}/add-column.html" - ] - }, - { - "title": "ADD CONSTRAINT", - "urls": [ - "/${VERSION}/add-constraint.html" - ] - }, - { - "title": "ADD REGION (Enterprise)", - "urls": [ - "/${VERSION}/add-region.html" - ] - }, - { - "title": "ALTER COLUMN", - "urls": [ - "/${VERSION}/alter-column.html" - ] - }, - { - "title": "ALTER DATABASE", - "urls": [ - "/${VERSION}/alter-database.html" - ] - }, - { - "title": "ALTER INDEX", - "urls": [ - "/${VERSION}/alter-index.html" - ] - }, - { - "title": "ALTER PARTITION (Enterprise)", - "urls": [ - "/${VERSION}/alter-partition.html" - ] - }, - { - "title": "ALTER PRIMARY KEY", - "urls": [ - "/${VERSION}/alter-primary-key.html" - ] - }, - { - "title": "ALTER RANGE", - "urls": [ - "/${VERSION}/alter-range.html" - ] - }, - { - "title": "ALTER ROLE", - "urls": [ - "/${VERSION}/alter-role.html" - ] - }, - { - "title": "ALTER SCHEMA", - "urls": [ - "/${VERSION}/alter-schema.html" - ] - }, - { - "title": "ALTER SEQUENCE", - "urls": [ - "/${VERSION}/alter-sequence.html" - ] - }, - { - "title": "ALTER TABLE", - "urls": [ - "/${VERSION}/alter-table.html" - ] - }, - { - "title": "ALTER TYPE", - "urls": [ - "/${VERSION}/alter-type.html" - ] - }, - { - "title": "ALTER USER", - "urls": [ - "/${VERSION}/alter-user.html" - ] - }, - { - "title": "AS OF SYSTEM TIME", - "urls": [ - "/${VERSION}/as-of-system-time.html" - ] - }, - { - "title": "EXPERIMENTAL_AUDIT", - "urls": [ - "/${VERSION}/experimental-audit.html" - ] - }, - { - "title": "ALTER VIEW", - "urls": [ - "/${VERSION}/alter-view.html" - ] - }, - { - "title": "BACKUP", - "urls": [ - "/${VERSION}/backup.html" - ] - }, - { - "title": "BEGIN", - "urls": [ - "/${VERSION}/begin-transaction.html" - ] - }, - { - "title": "CANCEL JOB", - "urls": [ - "/${VERSION}/cancel-job.html" - ] - }, - { - "title": "CANCEL QUERY", - "urls": [ - "/${VERSION}/cancel-query.html" - ] - }, - { - "title": "CANCEL SESSION", - "urls": [ - "/${VERSION}/cancel-session.html" - ] - }, - { - "title": "COMMENT ON", - "urls": [ - "/${VERSION}/comment-on.html" - ] - }, - { - "title": "COMMIT", - "urls": [ - "/${VERSION}/commit-transaction.html" - ] - }, - { - "title": "CONFIGURE ZONE", - "urls": [ - "/${VERSION}/configure-zone.html" - ] - }, - { - "title": "CONVERT TO SCHEMA", - "urls": [ - "/${VERSION}/convert-to-schema.html" - ] - }, - { - "title": "COPY FROM", - "urls": [ - "/${VERSION}/copy-from.html" - ] - }, - { - "title": "CREATE CHANGEFEED (Enterprise)", - "urls": [ - "/${VERSION}/create-changefeed.html" - ] - }, - { - "title": "CREATE DATABASE", - "urls": [ - "/${VERSION}/create-database.html" - ] - }, - { - "title": "CREATE INDEX", - "urls": [ - "/${VERSION}/create-index.html" - ] - }, - { - "title": "CREATE ROLE", - "urls": [ - "/${VERSION}/create-role.html" - ] - }, - { - "title": "CREATE SCHEDULE FOR BACKUP", - "urls": [ - "/${VERSION}/create-schedule-for-backup.html" - ] - }, - { - "title": "CREATE SCHEMA", - "urls": [ - "/${VERSION}/create-schema.html" - ] - }, - { - "title": "CREATE SEQUENCE", - "urls": [ - "/${VERSION}/create-sequence.html" - ] - }, - { - "title": "CREATE STATISTICS", - "urls": [ - "/${VERSION}/create-statistics.html" - ] - }, - { - "title": "CREATE TABLE", - "urls": [ - "/${VERSION}/create-table.html" - ] - }, - { - "title": "CREATE TABLE AS", - "urls": [ - "/${VERSION}/create-table-as.html" - ] - }, - { - "title": "CREATE TYPE", - "urls": [ - "/${VERSION}/create-type.html" - ] - }, - { - "title": "CREATE USER", - "urls": [ - "/${VERSION}/create-user.html" - ] - }, - { - "title": "CREATE VIEW", - "urls": [ - "/${VERSION}/create-view.html" - ] - }, - { - "title": "DELETE", - "urls": [ - "/${VERSION}/delete.html" - ] - }, - { - "title": "DROP COLUMN", - "urls": [ - "/${VERSION}/drop-column.html" - ] - }, - { - "title": "DROP CONSTRAINT", - "urls": [ - "/${VERSION}/drop-constraint.html" - ] - }, - { - "title": "DROP DATABASE", - "urls": [ - "/${VERSION}/drop-database.html" - ] - }, - { - "title": "DROP REGION (Enterprise)", - "urls": [ - "/${VERSION}/drop-region.html" - ] - }, - { - "title": "DROP TYPE", - "urls": [ - "/${VERSION}/drop-type.html" - ] - }, - { - "title": "DROP INDEX", - "urls": [ - "/${VERSION}/drop-index.html" - ] - }, - { - "title": "DROP ROLE", - "urls": [ - "/${VERSION}/drop-role.html" - ] - }, - { - "title": "DROP SCHEDULES", - "urls": [ - "/${VERSION}/drop-schedules.html" - ] - }, - { - "title": "DROP SCHEMA", - "urls": [ - "/${VERSION}/drop-schema.html" - ] - }, - { - "title": "DROP SEQUENCE", - "urls": [ - "/${VERSION}/drop-sequence.html" - ] - }, - { - "title": "DROP TABLE", - "urls": [ - "/${VERSION}/drop-table.html" - ] - }, - { - "title": "DROP USER", - "urls": [ - "/${VERSION}/drop-user.html" - ] - }, - { - "title": "DROP VIEW", - "urls": [ - "/${VERSION}/drop-view.html" - ] - }, - { - "title": "EXPERIMENTAL CHANGEFEED FOR", - "urls": [ - "/${VERSION}/changefeed-for.html" - ] - }, - { - "title": "EXPLAIN", - "urls": [ - "/${VERSION}/explain.html" - ] - }, - { - "title": "EXPLAIN ANALYZE", - "urls": [ - "/${VERSION}/explain-analyze.html" - ] - }, - { - "title": "EXPORT", - "urls": [ - "/${VERSION}/export.html" - ] - }, - { - "title": "GRANT", - "urls": [ - "/${VERSION}/grant.html" - ] - }, - { - "title": "IMPORT", - "urls": [ - "/${VERSION}/import.html" - ] - }, - { - "title": "IMPORT INTO", - "urls": [ - "/${VERSION}/import-into.html" - ] - }, - { - "title": "INSERT", - "urls": [ - "/${VERSION}/insert.html" - ] - }, - { - "title": "JOIN", - "urls": [ - "/${VERSION}/joins.html" - ] - }, - { - "title": "LIMIT/OFFSET", - "urls": [ - "/${VERSION}/limit-offset.html" - ] - }, - { - "title": "ORDER BY", - "urls": [ - "/${VERSION}/order-by.html" - ] - }, - { - "title": "OWNER TO", - "urls": [ - "/${VERSION}/owner-to.html" - ] - }, - { - "title": "PARTITION BY (Enterprise)", - "urls": [ - "/${VERSION}/partition-by.html" - ] - }, - { - "title": "PAUSE JOB", - "urls": [ - "/${VERSION}/pause-job.html" - ] - }, - { - "title": "PAUSE SCHEDULES", - "urls": [ - "/${VERSION}/pause-schedules.html" - ] - }, - { - "title": "REASSIGN OWNED", - "urls": [ - "/${VERSION}/reassign-owned.html" - ] - }, - { - "title": "REFRESH", - "urls": [ - "/${VERSION}/refresh.html" - ] - }, - { - "title": "RENAME COLUMN", - "urls": [ - "/${VERSION}/rename-column.html" - ] - }, - { - "title": "RENAME CONSTRAINT", - "urls": [ - "/${VERSION}/rename-constraint.html" - ] - }, - { - "title": "RENAME DATABASE", - "urls": [ - "/${VERSION}/rename-database.html" - ] - }, - { - "title": "RENAME INDEX", - "urls": [ - "/${VERSION}/rename-index.html" - ] - }, - { - "title": "RENAME TABLE", - "urls": [ - "/${VERSION}/rename-table.html" - ] - }, - { - "title": "RELEASE SAVEPOINT", - "urls": [ - "/${VERSION}/release-savepoint.html" - ] - }, - { - "title": "RESET <session variable>", - "urls": [ - "/${VERSION}/reset-vars.html" - ] - }, - { - "title": "RESET CLUSTER SETTING", - "urls": [ - "/${VERSION}/reset-cluster-setting.html" - ] - }, - { - "title": "RESTORE", - "urls": [ - "/${VERSION}/restore.html" - ] - }, - { - "title": "RESUME JOB", - "urls": [ - "/${VERSION}/resume-job.html" - ] - }, - { - "title": "RESUME SCHEDULES", - "urls": [ - "/${VERSION}/resume-schedules.html" - ] - }, - { - "title": "REVOKE", - "urls": [ - "/${VERSION}/revoke.html" - ] - }, - { - "title": "ROLLBACK", - "urls": [ - "/${VERSION}/rollback-transaction.html" - ] - }, - { - "title": "SAVEPOINT", - "urls": [ - "/${VERSION}/savepoint.html" - ] - }, - { - "title": "SELECT", - "urls": [ - "/${VERSION}/select-clause.html" - ] - }, - { - "title": "SELECT FOR UPDATE", - "urls": [ - "/${VERSION}/select-for-update.html" - ] - }, - { - "title": "SET <session variable>", - "urls": [ - "/${VERSION}/set-vars.html" - ] - }, - { - "title": "SET CLUSTER SETTING", - "urls": [ - "/${VERSION}/set-cluster-setting.html" - ] - }, - { - "title": "SET LOCALITY", - "urls": [ - "/${VERSION}/set-locality.html" - ] - }, - { - "title": "SET PRIMARY REGION (Enterprise)", - "urls": [ - "/${VERSION}/set-primary-region.html" - ] - }, - { - "title": "SET SCHEMA", - "urls": [ - "/${VERSION}/set-schema.html" - ] - }, - { - "title": "SET TRANSACTION", - "urls": [ - "/${VERSION}/set-transaction.html" - ] - }, - { - "title": "SHOW <session variables>", - "urls": [ - "/${VERSION}/show-vars.html" - ] - }, - { - "title": "SHOW BACKUP", - "urls": [ - "/${VERSION}/show-backup.html" - ] - }, - { - "title": "SHOW CLUSTER SETTING", - "urls": [ - "/${VERSION}/show-cluster-setting.html" - ] - }, - { - "title": "SHOW COLUMNS", - "urls": [ - "/${VERSION}/show-columns.html" - ] - }, - { - "title": "SHOW CONSTRAINTS", - "urls": [ - "/${VERSION}/show-constraints.html" - ] - }, - { - "title": "SHOW CREATE", - "urls": [ - "/${VERSION}/show-create.html" - ] - }, - { - "title": "SHOW DATABASES", - "urls": [ - "/${VERSION}/show-databases.html" - ] - }, - { - "title": "SHOW ENUMS", - "urls": [ - "/${VERSION}/show-enums.html" - ] - }, - { - "title": "SHOW FULL TABLE SCANS", - "urls": [ - "/${VERSION}/show-full-table-scans.html" - ] - }, - { - "title": "SHOW GRANTS", - "urls": [ - "/${VERSION}/show-grants.html" - ] - }, - { - "title": "SHOW INDEX", - "urls": [ - "/${VERSION}/show-index.html" - ] - }, - { - "title": "SHOW JOBS", - "urls": [ - "/${VERSION}/show-jobs.html" - ] - }, - { - "title": "SHOW LOCALITY", - "urls": [ - "/${VERSION}/show-locality.html" - ] - }, - { - "title": "SHOW PARTITIONS (Enterprise)", - "urls": [ - "/${VERSION}/show-partitions.html" - ] - }, - { - "title": "SHOW RANGES", - "urls": [ - "/${VERSION}/show-ranges.html" - ] - }, - { - "title": "SHOW RANGE FOR ROW", - "urls": [ - "/${VERSION}/show-range-for-row.html" - ] - }, - { - "title": "SHOW REGIONS", - "urls": [ - "/${VERSION}/show-regions.html" - ] - }, - { - "title": "SHOW ROLES", - "urls": [ - "/${VERSION}/show-roles.html" - ] - }, - { - "title": "SHOW SCHEDULES", - "urls": [ - "/${VERSION}/show-schedules.html" - ] - }, - { - "title": "SHOW SCHEMAS", - "urls": [ - "/${VERSION}/show-schemas.html" - ] - }, - { - "title": "SHOW SEQUENCES", - "urls": [ - "/${VERSION}/show-sequences.html" - ] - }, - { - "title": "SHOW SESSIONS", - "urls": [ - "/${VERSION}/show-sessions.html" - ] - }, - { - "title": "SHOW STATEMENTS", - "urls": [ - "/${VERSION}/show-statements.html" - ] - }, - { - "title": "SHOW STATISTICS", - "urls": [ - "/${VERSION}/show-statistics.html" - ] - }, - { - "title": "SHOW SAVEPOINT STATUS", - "urls": [ - "/${VERSION}/show-savepoint-status.html" - ] - }, - { - "title": "SHOW TABLES", - "urls": [ - "/${VERSION}/show-tables.html" - ] - }, - { - "title": "SHOW TRACE FOR SESSION", - "urls": [ - "/${VERSION}/show-trace.html" - ] - }, - { - "title": "SHOW TRANSACTIONS", - "urls": [ - "/${VERSION}/show-transactions.html" - ] - }, - { - "title": "SHOW TYPES", - "urls": [ - "/${VERSION}/show-types.html" - ] - }, - { - "title": "SHOW USERS", - "urls": [ - "/${VERSION}/show-users.html" - ] - }, - { - "title": "SHOW ZONE CONFIGURATIONS", - "urls": [ - "/${VERSION}/show-zone-configurations.html" - ] - }, - { - "title": "SPLIT AT", - "urls": [ - "/${VERSION}/split-at.html" - ] - }, - { - "title": "SURVIVE {ZONE,REGION} FAILURE", - "urls": [ - "/${VERSION}/survive-failure.html" - ] - }, - { - "title": "TRUNCATE", - "urls": [ - "/${VERSION}/truncate.html" - ] - }, - { - "title": "UNSPLIT AT", - "urls": [ - "/${VERSION}/unsplit-at.html" - ] - }, - { - "title": "UPDATE", - "urls": [ - "/${VERSION}/update.html" - ] - }, - { - "title": "UPSERT", - "urls": [ - "/${VERSION}/upsert.html" - ] - }, - { - "title": "VALIDATE CONSTRAINT", - "urls": [ - "/${VERSION}/validate-constraint.html" - ] - }, - { - "title": "WITH", - "urls": [ - "/${VERSION}/common-table-expressions.html" - ] - } - ] - }, - { - "title": "Data Types", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/data-types.html" - ] - }, - { - "title": "ARRAY", - "urls": [ - "/${VERSION}/array.html" - ] - }, - { - "title": "BIT", - "urls": [ - "/${VERSION}/bit.html" - ] - }, - { - "title": "BOOL", - "urls": [ - "/${VERSION}/bool.html" - ] - }, - { - "title": "BYTES", - "urls": [ - "/${VERSION}/bytes.html" - ] - }, - { - "title": "COLLATE", - "urls": [ - "/${VERSION}/collate.html" - ] - }, - { - "title": "DATE", - "urls": [ - "/${VERSION}/date.html" - ] - }, - { - "title": "DECIMAL", - "urls": [ - "/${VERSION}/decimal.html" - ] - }, - { - "title": "ENUM", - "urls": [ - "/${VERSION}/enum.html" - ] - }, - { - "title": "FLOAT", - "urls": [ - "/${VERSION}/float.html" - ] - }, - { - "title": "INET", - "urls": [ - "/${VERSION}/inet.html" - ] - }, - { - "title": "INT", - "urls": [ - "/${VERSION}/int.html" - ] - }, - { - "title": "INTERVAL", - "urls": [ - "/${VERSION}/interval.html" - ] - }, - { - "title": "JSONB", - "urls": [ - "/${VERSION}/jsonb.html" - ] - }, - { - "title": "SERIAL", - "urls": [ - "/${VERSION}/serial.html" - ] - }, - { - "title": "STRING", - "urls": [ - "/${VERSION}/string.html" - ] - }, - { - "title": "TIME", - "urls": [ - "/${VERSION}/time.html" - ] - }, - { - "title": "TIMESTAMP", - "urls": [ - "/${VERSION}/timestamp.html" - ] - }, - { - "title": "UUID", - "urls": [ - "/${VERSION}/uuid.html" - ] - } - ] - }, - { - "title": "Constraints", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/constraints.html" - ] - }, - { - "title": "Check", - "urls": [ - "/${VERSION}/check.html" - ] - }, - { - "title": "Default Value", - "urls": [ - "/${VERSION}/default-value.html" - ] - }, - { - "title": "Foreign Key", - "urls": [ - "/${VERSION}/foreign-key.html" - ] - }, - { - "title": "Not Null", - "urls": [ - "/${VERSION}/not-null.html" - ] - }, - { - "title": "Primary Key", - "urls": [ - "/${VERSION}/primary-key.html" - ] - }, - { - "title": "Unique", - "urls": [ - "/${VERSION}/unique.html" - ] - } - ] - }, - { - "title": "Functions and Operators", - "urls": [ - "/${VERSION}/functions-and-operators.html" - ] - }, - { - "title": "Window Functions", - "urls": [ - "/${VERSION}/window-functions.html" - ] - }, - { - "title": "SQL Syntax", - "items": [ - { - "title": "Full SQL Grammar", - "urls": [ - "/${VERSION}/sql-grammar.html" - ] - }, - { - "title": "Keywords & Identifiers", - "urls": [ - "/${VERSION}/keywords-and-identifiers.html" - ] - }, - { - "title": "Constants", - "urls": [ - "/${VERSION}/sql-constants.html" - ] - }, - { - "title": "Selection Queries", - "urls": [ - "/${VERSION}/selection-queries.html" - ] - }, - { - "title": "Table Expressions", - "urls": [ - "/${VERSION}/table-expressions.html" - ] - }, - { - "title": "WITH Queries (Common Table Expressions)", - "urls": [ - "/${VERSION}/common-table-expressions.html" - ] - }, - { - "title": "Scalar Expressions", - "urls": [ - "/${VERSION}/scalar-expressions.html" - ] - }, - { - "title": "NULL Handling", - "urls": [ - "/${VERSION}/null-handling.html" - ] - } - ] - }, - - { - "title": "Name Resolution", - "urls": [ - "/${VERSION}/sql-name-resolution.html" - ] - }, - { - "title": "System Catalogs", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/system-catalogs.html" - ] - }, - { - "title": "crdb_internal", - "urls": [ - "/${VERSION}/crdb-internal.html" - ] - }, - { - "title": "information_schema", - "urls": [ - "/${VERSION}/information-schema.html" - ] - }, - { - "title": "pg_catalog", - "urls": [ - "/${VERSION}/pg-catalog.html" - ] - }, - { - "title": "pg_extension", - "urls": [ - "/${VERSION}/pg-extension.html" - ] - } - ] - }, - { - "title": "Transactions", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/transactions.html" - ] - }, - { - "title": "Advanced Client-side Transaction Retries", - "urls": [ - "/${VERSION}/advanced-client-side-transaction-retries.html" - ] - }, - { - "title": "Transaction Retry Error Reference", - "urls": [ - "/${VERSION}/transaction-retry-error-reference.html" - ] - } - ] - }, - { - "title": "Performance Optimization", - "items": [ - { - "title": "Indexes", - "urls": [ - "/${VERSION}/indexes.html" - ] - }, - { - "title": "Interleaved Tables", - "urls": [ - "/${VERSION}/interleave-in-parent.html" - ] - }, - { - "title": "Cost-Based Optimizer", - "urls": [ - "/${VERSION}/cost-based-optimizer.html" - ] - }, - { - "title": "Vectorized Execution", - "urls": [ - "/${VERSION}/vectorized-execution.html" - ] - } - ] - }, - { - "title": "Spatial Features", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/spatial-features.html" - ] - }, - { - "title": "Working with Spatial Data", - "urls": [ - "/${VERSION}/spatial-data.html" - ] - }, - { - "title": "Spatial and GIS Glossary", - "urls": [ - "/${VERSION}/spatial-glossary.html" - ] - }, - { - "title": "Spatial Indexes", - "urls": [ - "/${VERSION}/spatial-indexes.html" - ] - }, - { - "title": "Using GeoServer with CockroachDB", - "urls": [ - "/${VERSION}/geoserver.html" - ] - }, - { - "title": "POINT", - "urls": [ - "/${VERSION}/point.html" - ] - }, - { - "title": "LINESTRING", - "urls": [ - "/${VERSION}/linestring.html" - ] - }, - { - "title": "POLYGON", - "urls": [ - "/${VERSION}/polygon.html" - ] - }, - { - "title": "MULTIPOINT", - "urls": [ - "/${VERSION}/multipoint.html" - ] - }, - { - "title": "MULTILINESTRING", - "urls": [ - "/${VERSION}/multilinestring.html" - ] - }, - { - "title": "MULTIPOLYGON", - "urls": [ - "/${VERSION}/multipolygon.html" - ] - }, - { - "title": "GEOMETRYCOLLECTION", - "urls": [ - "/${VERSION}/geometrycollection.html" - ] - }, - { - "title": "Well Known Text (WKT)", - "urls": [ - "/${VERSION}/well-known-text.html" - ] - }, - { - "title": "Well Known Binary (WKB)", - "urls": [ - "/${VERSION}/well-known-binary.html" - ] - }, - { - "title": "GeoJSON", - "urls": [ - "/${VERSION}/geojson.html" - ] - }, - { - "title": "SRID 4326 - longitude and latitude", - "urls": [ - "/${VERSION}/srid-4326.html" - ] - }, - { - "title": "ST_Contains", - "urls": [ - "/${VERSION}/st_contains.html" - ] - }, - { - "title": "ST_Within", - "urls": [ - "/${VERSION}/st_within.html" - ] - }, - { - "title": "ST_Intersects", - "urls": [ - "/${VERSION}/st_intersects.html" - ] - }, - { - "title": "ST_CoveredBy", - "urls": [ - "/${VERSION}/st_coveredby.html" - ] - }, - { - "title": "ST_Covers", - "urls": [ - "/${VERSION}/st_covers.html" - ] - }, - { - "title": "ST_Disjoint", - "urls": [ - "/${VERSION}/st_disjoint.html" - ] - }, - { - "title": "ST_Equals", - "urls": [ - "/${VERSION}/st_equals.html" - ] - }, - { - "title": "ST_Overlaps", - "urls": [ - "/${VERSION}/st_overlaps.html" - ] - }, - { - "title": "ST_Touches", - "urls": [ - "/${VERSION}/st_touches.html" - ] - }, - { - "title": "ST_ConvexHull", - "urls": [ - "/${VERSION}/st_convexhull.html" - ] - }, - { - "title": "ST_Union", - "urls": [ - "/${VERSION}/st_union.html" - ] - } - ] - }, - { - "title": "Experimental Features", - "urls": [ - "/${VERSION}/experimental-features.html" - ] - } - ] - }, - { - "title": "CLI", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/cockroach-commands.html" - ] - }, - { - "title": "Client Connection Parameters", - "urls": [ - "/${VERSION}/connection-parameters.html" - ] - }, - { - "title": "cockroach start", - "urls": [ - "/${VERSION}/cockroach-start.html" - ] - }, - { - "title": "cockroach init", - "urls": [ - "/${VERSION}/cockroach-init.html" - ] - }, - { - "title": "cockroach start-single-node", - "urls": [ - "/${VERSION}/cockroach-start-single-node.html" - ] - }, - { - "title": "cockroach cert", - "urls": [ - "/${VERSION}/cockroach-cert.html" - ] - }, - { - "title": "cockroach quit", - "urls": [ - "/${VERSION}/cockroach-quit.html" - ] - }, - { - "title": "cockroach sql", - "urls": [ - "/${VERSION}/cockroach-sql.html" - ] - }, - { - "title": "cockroach sqlfmt", - "urls": [ - "/${VERSION}/cockroach-sqlfmt.html" - ] - }, - { - "title": "cockroach node", - "urls": [ - "/${VERSION}/cockroach-node.html" - ] - }, - { - "title": "cockroach nodelocal upload", - "urls": [ - "/${VERSION}/cockroach-nodelocal-upload.html" - ] - }, - { - "title": "cockroach dump", - "urls": [ - "/${VERSION}/cockroach-dump.html" - ] - }, - { - "title": "cockroach demo", - "urls": [ - "/${VERSION}/cockroach-demo.html" - ] - }, - { - "title": "cockroach debug ballast", - "urls": [ - "/${VERSION}/cockroach-debug-ballast.html" - ] - }, - { - "title": "cockroach debug encryption-active-key", - "urls": [ - "/${VERSION}/cockroach-debug-encryption-active-key.html" - ] - }, - { - "title": "cockroach debug list-files", - "urls": [ - "/${VERSION}/cockroach-debug-list-files.html" - ] - }, - { - "title": "cockroach debug merge-logs", - "urls": [ - "/${VERSION}/cockroach-debug-merge-logs.html" - ] - }, - { - "title": "cockroach debug zip", - "urls": [ - "/${VERSION}/cockroach-debug-zip.html" - ] - }, - { - "title": "cockroach statement-diag", - "urls": [ - "/${VERSION}/cockroach-statement-diag.html" - ] - }, - { - "title": "cockroach gen", - "urls": [ - "/${VERSION}/cockroach-gen.html" - ] - }, - { - "title": "cockroach userfile upload", - "urls": [ - "/${VERSION}/cockroach-userfile-upload.html" - ] - }, - { - "title": "cockroach userfile list", - "urls": [ - "/${VERSION}/cockroach-userfile-list.html" - ] - }, - { - "title": "cockroach userfile get", - "urls": [ - "/${VERSION}/cockroach-userfile-get.html" - ] - }, - { - "title": "cockroach userfile delete", - "urls": [ - "/${VERSION}/cockroach-userfile-delete.html" - ] - }, - { - "title": "cockroach version", - "urls": [ - "/${VERSION}/cockroach-version.html" - ] - }, - { - "title": "cockroach workload", - "urls": [ - "/${VERSION}/cockroach-workload.html" - ] - }, - { - "title": "cockroach import", - "urls": [ - "/${VERSION}/cockroach-import.html" - ] - } - ] - }, - { - "title": "Cluster API", - "urls": [ - "/api/cluster/v2.html" - ] - }, - { - "title": "Cluster Settings", - "items": [ - { - "title": "Cluster Settings Overview", - "urls": [ - "/${VERSION}/cluster-settings.html" - ] - }, - { - "title": "Cost-Based Optimizer", - "urls": [ - "/${VERSION}/cost-based-optimizer.html" - ] - }, - { - "title": "Load-Based Splitting", - "urls": [ - "/${VERSION}/load-based-splitting.html" - ] - } - ] - }, - { - "title": "Logging System", - "items": [ - { - "title": "Logging Levels and Channels", - "urls": [ - "/${VERSION}/logging.html" - ] - }, - { - "title": "Log Formats", - "urls": [ - "/${VERSION}/log-formats.html" - ] - }, - { - "title": "Notable Event Types", - "urls": [ - "/${VERSION}/eventlog.html" - ] - } - ] - }, - { - "title": "DB Console", - "items": [ - { - "title": "DB Console Overview", - "urls": [ - "/${VERSION}/ui-overview.html" - ] - }, - { - "title": "Cluster Overview Page", - "urls": [ - "/${VERSION}/ui-cluster-overview-page.html" - ] - }, - { - "title": "Metrics Dashboards", - "items": [ - { - "title": "Overview Dashboard", - "urls": [ - "/${VERSION}/ui-overview-dashboard.html" - ] - }, - { - "title": "Hardware Dashboard", - "urls": [ - "/${VERSION}/ui-hardware-dashboard.html" - ] - }, - { - "title": "Runtime Dashboard", - "urls": [ - "/${VERSION}/ui-runtime-dashboard.html" - ] - }, - { - "title": "SQL Dashboard", - "urls": [ - "/${VERSION}/ui-sql-dashboard.html" - ] - }, - { - "title": "Storage Dashboard", - "urls": [ - "/${VERSION}/ui-storage-dashboard.html" - ] - }, - { - "title": "Replication Dashboard", - "urls": [ - "/${VERSION}/ui-replication-dashboard.html" - ] - }, - { - "title": "Changefeeds Dashboard", - "urls": [ - "/${VERSION}/ui-cdc-dashboard.html" - ] - }, - { - "title": "Custom Chart", - "urls": [ - "/${VERSION}/ui-custom-chart-debug-page.html" - ] - } - ] - }, - { - "title": "Databases Page", - "urls": [ - "/${VERSION}/ui-databases-page.html" - ] - }, - { - "title": "Sessions Page", - "urls": [ - "/${VERSION}/ui-sessions-page.html" - ] - }, - { - "title": "Transactions Page", - "urls": [ - "/${VERSION}/ui-transactions-page.html" - ] - }, - { - "title": "Statements Page", - "urls": [ - "/${VERSION}/ui-statements-page.html" - ] - }, - { - "title": "Network Latency Page", - "urls": [ - "/${VERSION}/ui-network-latency-page.html" - ] - }, - { - "title": "Jobs Page", - "urls": [ - "/${VERSION}/ui-jobs-page.html" - ] - }, - { - "title": "Advanced Debug Page", - "urls": [ - "/${VERSION}/ui-debug-pages.html" - ] - } - ] - }, - { - "title": "Diagnostics Reporting", - "urls": [ - "/${VERSION}/diagnostics-reporting.html" - ] - } - ] - }, { "title": "FAQs", "items": [ @@ -3073,6 +1354,7 @@ {% include_cached sidebar-releases.json %} ] }, + {% include_cached v21.1/sidebar-data-reference.json %}, { "title": "SQL Playground", "is_top_level": true, diff --git a/_includes/sidebar-data-v21.2.json b/_includes/sidebar-data-v21.2.json index a28d1c19113..ead0dd7b680 100644 --- a/_includes/sidebar-data-v21.2.json +++ b/_includes/sidebar-data-v21.2.json @@ -16,7 +16,7 @@ }, {% include_cached sidebar-data-cockroachcloud.json %}, { - "title": "CockroachDB", + "title": "CockroachDB Self-Hosted", "is_top_level": true, "urls": [ "/${VERSION}/index.html" @@ -1320,1725 +1320,6 @@ } ] }, - { - "title": "Reference", - "items": [ - { - "title": "Architecture", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/architecture/overview.html" - ] - }, - { - "title": "SQL Layer", - "urls": [ - "/${VERSION}/architecture/sql-layer.html" - ] - }, - { - "title": "Transaction Layer", - "urls": [ - "/${VERSION}/architecture/transaction-layer.html" - ] - }, - { - "title": "Distribution Layer", - "urls": [ - "/${VERSION}/architecture/distribution-layer.html" - ] - }, - { - "title": "Replication Layer", - "urls": [ - "/${VERSION}/architecture/replication-layer.html" - ] - }, - { - "title": "Storage Layer", - "urls": [ - "/${VERSION}/architecture/storage-layer.html" - ] - }, - { - "title": "Life of a Distributed Transaction", - "urls": [ - "/${VERSION}/architecture/life-of-a-distributed-transaction.html" - ] - }, - { - "title": "Reads and Writes Overview", - "urls": [ - "/${VERSION}/architecture/reads-and-writes-overview.html" - ] - } - ] - }, - { - "title": "SQL", - "items": [ - { - "title": "PostgreSQL Compatibility", - "urls": [ - "/${VERSION}/postgresql-compatibility.html" - ] - }, - { - "title": "SQL Feature Support", - "urls": [ - "/${VERSION}/sql-feature-support.html" - ] - }, - { - "title": "SQL Statements", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/sql-statements.html" - ] - }, - { - "title": "ADD COLUMN", - "urls": [ - "/${VERSION}/add-column.html" - ] - }, - { - "title": "ADD CONSTRAINT", - "urls": [ - "/${VERSION}/add-constraint.html" - ] - }, - { - "title": "ADD REGION (Enterprise)", - "urls": [ - "/${VERSION}/add-region.html" - ] - }, - { - "title": "ALTER COLUMN", - "urls": [ - "/${VERSION}/alter-column.html" - ] - }, - { - "title": "ALTER DATABASE", - "urls": [ - "/${VERSION}/alter-database.html" - ] - }, - { - "title": "ALTER INDEX", - "urls": [ - "/${VERSION}/alter-index.html" - ] - }, - { - "title": "ALTER PARTITION (Enterprise)", - "urls": [ - "/${VERSION}/alter-partition.html" - ] - }, - { - "title": "ALTER PRIMARY KEY", - "urls": [ - "/${VERSION}/alter-primary-key.html" - ] - }, - { - "title": "ALTER RANGE", - "urls": [ - "/${VERSION}/alter-range.html" - ] - }, - { - "title": "ALTER ROLE", - "urls": [ - "/${VERSION}/alter-role.html" - ] - }, - { - "title": "ALTER SCHEMA", - "urls": [ - "/${VERSION}/alter-schema.html" - ] - }, - { - "title": "ALTER SEQUENCE", - "urls": [ - "/${VERSION}/alter-sequence.html" - ] - }, - { - "title": "ALTER TABLE", - "urls": [ - "/${VERSION}/alter-table.html" - ] - }, - { - "title": "ALTER TYPE", - "urls": [ - "/${VERSION}/alter-type.html" - ] - }, - { - "title": "ALTER USER", - "urls": [ - "/${VERSION}/alter-user.html" - ] - }, - { - "title": "ALTER VIEW", - "urls": [ - "/${VERSION}/alter-view.html" - ] - }, - { - "title": "AS OF SYSTEM TIME", - "urls": [ - "/${VERSION}/as-of-system-time.html" - ] - }, - { - "title": "EXPERIMENTAL_AUDIT", - "urls": [ - "/${VERSION}/experimental-audit.html" - ] - }, - { - "title": "BACKUP", - "urls": [ - "/${VERSION}/backup.html" - ] - }, - { - "title": "BEGIN", - "urls": [ - "/${VERSION}/begin-transaction.html" - ] - }, - { - "title": "CANCEL JOB", - "urls": [ - "/${VERSION}/cancel-job.html" - ] - }, - { - "title": "CANCEL QUERY", - "urls": [ - "/${VERSION}/cancel-query.html" - ] - }, - { - "title": "CANCEL SESSION", - "urls": [ - "/${VERSION}/cancel-session.html" - ] - }, - { - "title": "COMMENT ON", - "urls": [ - "/${VERSION}/comment-on.html" - ] - }, - { - "title": "COMMIT", - "urls": [ - "/${VERSION}/commit-transaction.html" - ] - }, - { - "title": "CONFIGURE ZONE", - "urls": [ - "/${VERSION}/configure-zone.html" - ] - }, - { - "title": "CONVERT TO SCHEMA", - "urls": [ - "/${VERSION}/convert-to-schema.html" - ] - }, - { - "title": "COPY FROM", - "urls": [ - "/${VERSION}/copy-from.html" - ] - }, - { - "title": "CREATE CHANGEFEED (Enterprise)", - "urls": [ - "/${VERSION}/create-changefeed.html" - ] - }, - { - "title": "CREATE DATABASE", - "urls": [ - "/${VERSION}/create-database.html" - ] - }, - { - "title": "CREATE INDEX", - "urls": [ - "/${VERSION}/create-index.html" - ] - }, - { - "title": "CREATE ROLE", - "urls": [ - "/${VERSION}/create-role.html" - ] - }, - { - "title": "CREATE SCHEDULE FOR BACKUP", - "urls": [ - "/${VERSION}/create-schedule-for-backup.html" - ] - }, - { - "title": "CREATE SCHEMA", - "urls": [ - "/${VERSION}/create-schema.html" - ] - }, - { - "title": "CREATE SEQUENCE", - "urls": [ - "/${VERSION}/create-sequence.html" - ] - }, - { - "title": "CREATE STATISTICS", - "urls": [ - "/${VERSION}/create-statistics.html" - ] - }, - { - "title": "CREATE TABLE", - "urls": [ - "/${VERSION}/create-table.html" - ] - }, - { - "title": "CREATE TABLE AS", - "urls": [ - "/${VERSION}/create-table-as.html" - ] - }, - { - "title": "CREATE TYPE", - "urls": [ - "/${VERSION}/create-type.html" - ] - }, - { - "title": "CREATE USER", - "urls": [ - "/${VERSION}/create-user.html" - ] - }, - { - "title": "CREATE VIEW", - "urls": [ - "/${VERSION}/create-view.html" - ] - }, - { - "title": "DELETE", - "urls": [ - "/${VERSION}/delete.html" - ] - }, - { - "title": "DROP COLUMN", - "urls": [ - "/${VERSION}/drop-column.html" - ] - }, - { - "title": "DROP CONSTRAINT", - "urls": [ - "/${VERSION}/drop-constraint.html" - ] - }, - { - "title": "DROP DATABASE", - "urls": [ - "/${VERSION}/drop-database.html" - ] - }, - { - "title": "DROP REGION (Enterprise)", - "urls": [ - "/${VERSION}/drop-region.html" - ] - }, - { - "title": "DROP TYPE", - "urls": [ - "/${VERSION}/drop-type.html" - ] - }, - { - "title": "DROP INDEX", - "urls": [ - "/${VERSION}/drop-index.html" - ] - }, - { - "title": "DROP ROLE", - "urls": [ - "/${VERSION}/drop-role.html" - ] - }, - { - "title": "DROP SCHEDULES", - "urls": [ - "/${VERSION}/drop-schedules.html" - ] - }, - { - "title": "DROP SCHEMA", - "urls": [ - "/${VERSION}/drop-schema.html" - ] - }, - { - "title": "DROP SEQUENCE", - "urls": [ - "/${VERSION}/drop-sequence.html" - ] - }, - { - "title": "DROP TABLE", - "urls": [ - "/${VERSION}/drop-table.html" - ] - }, - { - "title": "DROP USER", - "urls": [ - "/${VERSION}/drop-user.html" - ] - }, - { - "title": "DROP VIEW", - "urls": [ - "/${VERSION}/drop-view.html" - ] - }, - { - "title": "EXPERIMENTAL CHANGEFEED FOR", - "urls": [ - "/${VERSION}/changefeed-for.html" - ] - }, - { - "title": "EXPLAIN", - "urls": [ - "/${VERSION}/explain.html" - ] - }, - { - "title": "EXPLAIN ANALYZE", - "urls": [ - "/${VERSION}/explain-analyze.html" - ] - }, - { - "title": "EXPORT", - "urls": [ - "/${VERSION}/export.html" - ] - }, - { - "title": "GRANT", - "urls": [ - "/${VERSION}/grant.html" - ] - }, - { - "title": "IMPORT", - "urls": [ - "/${VERSION}/import.html" - ] - }, - { - "title": "IMPORT INTO", - "urls": [ - "/${VERSION}/import-into.html" - ] - }, - { - "title": "INSERT", - "urls": [ - "/${VERSION}/insert.html" - ] - }, - { - "title": "JOIN", - "urls": [ - "/${VERSION}/joins.html" - ] - }, - { - "title": "LIMIT/OFFSET", - "urls": [ - "/${VERSION}/limit-offset.html" - ] - }, - { - "title": "ORDER BY", - "urls": [ - "/${VERSION}/order-by.html" - ] - }, - { - "title": "OWNER TO", - "urls": [ - "/${VERSION}/owner-to.html" - ] - }, - { - "title": "PARTITION BY (Enterprise)", - "urls": [ - "/${VERSION}/partition-by.html" - ] - }, - { - "title": "PAUSE JOB", - "urls": [ - "/${VERSION}/pause-job.html" - ] - }, - { - "title": "PAUSE SCHEDULES", - "urls": [ - "/${VERSION}/pause-schedules.html" - ] - }, - { - "title": "REASSIGN OWNED", - "urls": [ - "/${VERSION}/reassign-owned.html" - ] - }, - { - "title": "REFRESH", - "urls": [ - "/${VERSION}/refresh.html" - ] - }, - { - "title": "RENAME COLUMN", - "urls": [ - "/${VERSION}/rename-column.html" - ] - }, - { - "title": "RENAME CONSTRAINT", - "urls": [ - "/${VERSION}/rename-constraint.html" - ] - }, - { - "title": "RENAME DATABASE", - "urls": [ - "/${VERSION}/rename-database.html" - ] - }, - { - "title": "RENAME INDEX", - "urls": [ - "/${VERSION}/rename-index.html" - ] - }, - { - "title": "RENAME TABLE", - "urls": [ - "/${VERSION}/rename-table.html" - ] - }, - { - "title": "RELEASE SAVEPOINT", - "urls": [ - "/${VERSION}/release-savepoint.html" - ] - }, - { - "title": "RESET <session variable>", - "urls": [ - "/${VERSION}/reset-vars.html" - ] - }, - { - "title": "RESET CLUSTER SETTING", - "urls": [ - "/${VERSION}/reset-cluster-setting.html" - ] - }, - { - "title": "RESTORE", - "urls": [ - "/${VERSION}/restore.html" - ] - }, - { - "title": "RESUME JOB", - "urls": [ - "/${VERSION}/resume-job.html" - ] - }, - { - "title": "RESUME SCHEDULES", - "urls": [ - "/${VERSION}/resume-schedules.html" - ] - }, - { - "title": "REVOKE", - "urls": [ - "/${VERSION}/revoke.html" - ] - }, - { - "title": "ROLLBACK", - "urls": [ - "/${VERSION}/rollback-transaction.html" - ] - }, - { - "title": "SAVEPOINT", - "urls": [ - "/${VERSION}/savepoint.html" - ] - }, - { - "title": "SELECT", - "urls": [ - "/${VERSION}/select-clause.html" - ] - }, - { - "title": "SELECT FOR UPDATE", - "urls": [ - "/${VERSION}/select-for-update.html" - ] - }, - { - "title": "SET <session variable>", - "urls": [ - "/${VERSION}/set-vars.html" - ] - }, - { - "title": "SET CLUSTER SETTING", - "urls": [ - "/${VERSION}/set-cluster-setting.html" - ] - }, - { - "title": "SET LOCALITY", - "urls": [ - "/${VERSION}/set-locality.html" - ] - }, - { - "title": "SET PRIMARY REGION (Enterprise)", - "urls": [ - "/${VERSION}/set-primary-region.html" - ] - }, - { - "title": "SET SCHEMA", - "urls": [ - "/${VERSION}/set-schema.html" - ] - }, - { - "title": "SET TRANSACTION", - "urls": [ - "/${VERSION}/set-transaction.html" - ] - }, - { - "title": "SHOW <session variables>", - "urls": [ - "/${VERSION}/show-vars.html" - ] - }, - { - "title": "SHOW BACKUP", - "urls": [ - "/${VERSION}/show-backup.html" - ] - }, - { - "title": "SHOW CLUSTER SETTING", - "urls": [ - "/${VERSION}/show-cluster-setting.html" - ] - }, - { - "title": "SHOW COLUMNS", - "urls": [ - "/${VERSION}/show-columns.html" - ] - }, - { - "title": "SHOW CONSTRAINTS", - "urls": [ - "/${VERSION}/show-constraints.html" - ] - }, - { - "title": "SHOW CREATE", - "urls": [ - "/${VERSION}/show-create.html" - ] - }, - { - "title": "SHOW DATABASES", - "urls": [ - "/${VERSION}/show-databases.html" - ] - }, - { - "title": "SHOW ENUMS", - "urls": [ - "/${VERSION}/show-enums.html" - ] - }, - { - "title": "SHOW FULL TABLE SCANS", - "urls": [ - "/${VERSION}/show-full-table-scans.html" - ] - }, - { - "title": "SHOW GRANTS", - "urls": [ - "/${VERSION}/show-grants.html" - ] - }, - { - "title": "SHOW INDEX", - "urls": [ - "/${VERSION}/show-index.html" - ] - }, - { - "title": "SHOW JOBS", - "urls": [ - "/${VERSION}/show-jobs.html" - ] - }, - { - "title": "SHOW LOCALITY", - "urls": [ - "/${VERSION}/show-locality.html" - ] - }, - { - "title": "SHOW PARTITIONS (Enterprise)", - "urls": [ - "/${VERSION}/show-partitions.html" - ] - }, - { - "title": "SHOW RANGES", - "urls": [ - "/${VERSION}/show-ranges.html" - ] - }, - { - "title": "SHOW RANGE FOR ROW", - "urls": [ - "/${VERSION}/show-range-for-row.html" - ] - }, - { - "title": "SHOW REGIONS", - "urls": [ - "/${VERSION}/show-regions.html" - ] - }, - { - "title": "SHOW ROLES", - "urls": [ - "/${VERSION}/show-roles.html" - ] - }, - { - "title": "SHOW SCHEDULES", - "urls": [ - "/${VERSION}/show-schedules.html" - ] - }, - { - "title": "SHOW SCHEMAS", - "urls": [ - "/${VERSION}/show-schemas.html" - ] - }, - { - "title": "SHOW SEQUENCES", - "urls": [ - "/${VERSION}/show-sequences.html" - ] - }, - { - "title": "SHOW SESSIONS", - "urls": [ - "/${VERSION}/show-sessions.html" - ] - }, - { - "title": "SHOW STATEMENTS", - "urls": [ - "/${VERSION}/show-statements.html" - ] - }, - { - "title": "SHOW STATISTICS", - "urls": [ - "/${VERSION}/show-statistics.html" - ] - }, - { - "title": "SHOW SAVEPOINT STATUS", - "urls": [ - "/${VERSION}/show-savepoint-status.html" - ] - }, - { - "title": "SHOW TABLES", - "urls": [ - "/${VERSION}/show-tables.html" - ] - }, - { - "title": "SHOW TRACE FOR SESSION", - "urls": [ - "/${VERSION}/show-trace.html" - ] - }, - { - "title": "SHOW TRANSACTIONS", - "urls": [ - "/${VERSION}/show-transactions.html" - ] - }, - { - "title": "SHOW TYPES", - "urls": [ - "/${VERSION}/show-types.html" - ] - }, - { - "title": "SHOW USERS", - "urls": [ - "/${VERSION}/show-users.html" - ] - }, - { - "title": "SHOW ZONE CONFIGURATIONS", - "urls": [ - "/${VERSION}/show-zone-configurations.html" - ] - }, - { - "title": "SPLIT AT", - "urls": [ - "/${VERSION}/split-at.html" - ] - }, - { - "title": "SURVIVE {ZONE,REGION} FAILURE", - "urls": [ - "/${VERSION}/survive-failure.html" - ] - }, - { - "title": "TRUNCATE", - "urls": [ - "/${VERSION}/truncate.html" - ] - }, - { - "title": "UNSPLIT AT", - "urls": [ - "/${VERSION}/unsplit-at.html" - ] - }, - { - "title": "UPDATE", - "urls": [ - "/${VERSION}/update.html" - ] - }, - { - "title": "UPSERT", - "urls": [ - "/${VERSION}/upsert.html" - ] - }, - { - "title": "VALIDATE CONSTRAINT", - "urls": [ - "/${VERSION}/validate-constraint.html" - ] - }, - { - "title": "WITH", - "urls": [ - "/${VERSION}/common-table-expressions.html" - ] - } - ] - }, - { - "title": "Data Types", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/data-types.html" - ] - }, - { - "title": "ARRAY", - "urls": [ - "/${VERSION}/array.html" - ] - }, - { - "title": "BIT", - "urls": [ - "/${VERSION}/bit.html" - ] - }, - { - "title": "BOOL", - "urls": [ - "/${VERSION}/bool.html" - ] - }, - { - "title": "BYTES", - "urls": [ - "/${VERSION}/bytes.html" - ] - }, - { - "title": "COLLATE", - "urls": [ - "/${VERSION}/collate.html" - ] - }, - { - "title": "DATE", - "urls": [ - "/${VERSION}/date.html" - ] - }, - { - "title": "DECIMAL", - "urls": [ - "/${VERSION}/decimal.html" - ] - }, - { - "title": "ENUM", - "urls": [ - "/${VERSION}/enum.html" - ] - }, - { - "title": "FLOAT", - "urls": [ - "/${VERSION}/float.html" - ] - }, - { - "title": "INET", - "urls": [ - "/${VERSION}/inet.html" - ] - }, - { - "title": "INT", - "urls": [ - "/${VERSION}/int.html" - ] - }, - { - "title": "INTERVAL", - "urls": [ - "/${VERSION}/interval.html" - ] - }, - { - "title": "JSONB", - "urls": [ - "/${VERSION}/jsonb.html" - ] - }, - { - "title": "SERIAL", - "urls": [ - "/${VERSION}/serial.html" - ] - }, - { - "title": "STRING", - "urls": [ - "/${VERSION}/string.html" - ] - }, - { - "title": "TIME", - "urls": [ - "/${VERSION}/time.html" - ] - }, - { - "title": "TIMESTAMP", - "urls": [ - "/${VERSION}/timestamp.html" - ] - }, - { - "title": "UUID", - "urls": [ - "/${VERSION}/uuid.html" - ] - } - ] - }, - { - "title": "Constraints", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/constraints.html" - ] - }, - { - "title": "Check", - "urls": [ - "/${VERSION}/check.html" - ] - }, - { - "title": "Default Value", - "urls": [ - "/${VERSION}/default-value.html" - ] - }, - { - "title": "Foreign Key", - "urls": [ - "/${VERSION}/foreign-key.html" - ] - }, - { - "title": "Not Null", - "urls": [ - "/${VERSION}/not-null.html" - ] - }, - { - "title": "Primary Key", - "urls": [ - "/${VERSION}/primary-key.html" - ] - }, - { - "title": "Unique", - "urls": [ - "/${VERSION}/unique.html" - ] - } - ] - }, - { - "title": "Functions and Operators", - "urls": [ - "/${VERSION}/functions-and-operators.html" - ] - }, - { - "title": "Window Functions", - "urls": [ - "/${VERSION}/window-functions.html" - ] - }, - { - "title": "SQL Syntax", - "items": [ - { - "title": "Full SQL Grammar", - "urls": [ - "/${VERSION}/sql-grammar.html" - ] - }, - { - "title": "Keywords & Identifiers", - "urls": [ - "/${VERSION}/keywords-and-identifiers.html" - ] - }, - { - "title": "Constants", - "urls": [ - "/${VERSION}/sql-constants.html" - ] - }, - { - "title": "Selection Queries", - "urls": [ - "/${VERSION}/selection-queries.html" - ] - }, - { - "title": "Table Expressions", - "urls": [ - "/${VERSION}/table-expressions.html" - ] - }, - { - "title": "WITH Queries (Common Table Expressions)", - "urls": [ - "/${VERSION}/common-table-expressions.html" - ] - }, - { - "title": "Scalar Expressions", - "urls": [ - "/${VERSION}/scalar-expressions.html" - ] - }, - { - "title": "NULL Handling", - "urls": [ - "/${VERSION}/null-handling.html" - ] - } - ] - }, - - { - "title": "Name Resolution", - "urls": [ - "/${VERSION}/sql-name-resolution.html" - ] - }, - { - "title": "System Catalogs", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/system-catalogs.html" - ] - }, - { - "title": "crdb_internal", - "urls": [ - "/${VERSION}/crdb-internal.html" - ] - }, - { - "title": "information_schema", - "urls": [ - "/${VERSION}/information-schema.html" - ] - }, - { - "title": "pg_catalog", - "urls": [ - "/${VERSION}/pg-catalog.html" - ] - }, - { - "title": "pg_extension", - "urls": [ - "/${VERSION}/pg-extension.html" - ] - } - ] - }, - { - "title": "Transactions", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/transactions.html" - ] - }, - { - "title": "Advanced Client-side Transaction Retries", - "urls": [ - "/${VERSION}/advanced-client-side-transaction-retries.html" - ] - }, - { - "title": "Transaction Retry Error Reference", - "urls": [ - "/${VERSION}/transaction-retry-error-reference.html" - ] - } - ] - }, - { - "title": "Performance Optimization", - "items": [ - { - "title": "Indexes", - "urls": [ - "/${VERSION}/indexes.html" - ] - }, - { - "title": "Interleaved Tables", - "urls": [ - "/${VERSION}/interleave-in-parent.html" - ] - }, - { - "title": "Cost-Based Optimizer", - "urls": [ - "/${VERSION}/cost-based-optimizer.html" - ] - }, - { - "title": "Vectorized Execution", - "urls": [ - "/${VERSION}/vectorized-execution.html" - ] - } - ] - }, - { - "title": "Spatial Features", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/spatial-features.html" - ] - }, - { - "title": "Working with Spatial Data", - "urls": [ - "/${VERSION}/spatial-data.html" - ] - }, - { - "title": "Spatial and GIS Glossary", - "urls": [ - "/${VERSION}/spatial-glossary.html" - ] - }, - { - "title": "Spatial Indexes", - "urls": [ - "/${VERSION}/spatial-indexes.html" - ] - }, - { - "title": "Using GeoServer with CockroachDB", - "urls": [ - "/${VERSION}/geoserver.html" - ] - }, - { - "title": "POINT", - "urls": [ - "/${VERSION}/point.html" - ] - }, - { - "title": "LINESTRING", - "urls": [ - "/${VERSION}/linestring.html" - ] - }, - { - "title": "POLYGON", - "urls": [ - "/${VERSION}/polygon.html" - ] - }, - { - "title": "MULTIPOINT", - "urls": [ - "/${VERSION}/multipoint.html" - ] - }, - { - "title": "MULTILINESTRING", - "urls": [ - "/${VERSION}/multilinestring.html" - ] - }, - { - "title": "MULTIPOLYGON", - "urls": [ - "/${VERSION}/multipolygon.html" - ] - }, - { - "title": "GEOMETRYCOLLECTION", - "urls": [ - "/${VERSION}/geometrycollection.html" - ] - }, - { - "title": "Well Known Text (WKT)", - "urls": [ - "/${VERSION}/well-known-text.html" - ] - }, - { - "title": "Well Known Binary (WKB)", - "urls": [ - "/${VERSION}/well-known-binary.html" - ] - }, - { - "title": "GeoJSON", - "urls": [ - "/${VERSION}/geojson.html" - ] - }, - { - "title": "SRID 4326 - longitude and latitude", - "urls": [ - "/${VERSION}/srid-4326.html" - ] - }, - { - "title": "ST_Contains", - "urls": [ - "/${VERSION}/st_contains.html" - ] - }, - { - "title": "ST_Within", - "urls": [ - "/${VERSION}/st_within.html" - ] - }, - { - "title": "ST_Intersects", - "urls": [ - "/${VERSION}/st_intersects.html" - ] - }, - { - "title": "ST_CoveredBy", - "urls": [ - "/${VERSION}/st_coveredby.html" - ] - }, - { - "title": "ST_Covers", - "urls": [ - "/${VERSION}/st_covers.html" - ] - }, - { - "title": "ST_Disjoint", - "urls": [ - "/${VERSION}/st_disjoint.html" - ] - }, - { - "title": "ST_Equals", - "urls": [ - "/${VERSION}/st_equals.html" - ] - }, - { - "title": "ST_Overlaps", - "urls": [ - "/${VERSION}/st_overlaps.html" - ] - }, - { - "title": "ST_Touches", - "urls": [ - "/${VERSION}/st_touches.html" - ] - }, - { - "title": "ST_ConvexHull", - "urls": [ - "/${VERSION}/st_convexhull.html" - ] - }, - { - "title": "ST_Union", - "urls": [ - "/${VERSION}/st_union.html" - ] - } - ] - }, - { - "title": "Experimental Features", - "urls": [ - "/${VERSION}/experimental-features.html" - ] - } - ] - }, - { - "title": "CLI", - "items": [ - { - "title": "Overview", - "urls": [ - "/${VERSION}/cockroach-commands.html" - ] - }, - { - "title": "Client Connection Parameters", - "urls": [ - "/${VERSION}/connection-parameters.html" - ] - }, - { - "title": "cockroach start", - "urls": [ - "/${VERSION}/cockroach-start.html" - ] - }, - { - "title": "cockroach init", - "urls": [ - "/${VERSION}/cockroach-init.html" - ] - }, - { - "title": "cockroach start-single-node", - "urls": [ - "/${VERSION}/cockroach-start-single-node.html" - ] - }, - { - "title": "cockroach cert", - "urls": [ - "/${VERSION}/cockroach-cert.html" - ] - }, - { - "title": "cockroach quit", - "urls": [ - "/${VERSION}/cockroach-quit.html" - ] - }, - { - "title": "cockroach sql", - "urls": [ - "/${VERSION}/cockroach-sql.html" - ] - }, - { - "title": "cockroach sqlfmt", - "urls": [ - "/${VERSION}/cockroach-sqlfmt.html" - ] - }, - { - "title": "cockroach node", - "urls": [ - "/${VERSION}/cockroach-node.html" - ] - }, - { - "title": "cockroach nodelocal upload", - "urls": [ - "/${VERSION}/cockroach-nodelocal-upload.html" - ] - }, - { - "title": "cockroach dump", - "urls": [ - "/${VERSION}/cockroach-dump.html" - ] - }, - { - "title": "cockroach demo", - "urls": [ - "/${VERSION}/cockroach-demo.html" - ] - }, - { - "title": "cockroach debug ballast", - "urls": [ - "/${VERSION}/cockroach-debug-ballast.html" - ] - }, - { - "title": "cockroach debug encryption-active-key", - "urls": [ - "/${VERSION}/cockroach-debug-encryption-active-key.html" - ] - }, - { - "title": "cockroach debug list-files", - "urls": [ - "/${VERSION}/cockroach-debug-list-files.html" - ] - }, - { - "title": "cockroach debug merge-logs", - "urls": [ - "/${VERSION}/cockroach-debug-merge-logs.html" - ] - }, - { - "title": "cockroach debug zip", - "urls": [ - "/${VERSION}/cockroach-debug-zip.html" - ] - }, - { - "title": "cockroach statement-diag", - "urls": [ - "/${VERSION}/cockroach-statement-diag.html" - ] - }, - { - "title": "cockroach gen", - "urls": [ - "/${VERSION}/cockroach-gen.html" - ] - }, - { - "title": "cockroach userfile upload", - "urls": [ - "/${VERSION}/cockroach-userfile-upload.html" - ] - }, - { - "title": "cockroach userfile list", - "urls": [ - "/${VERSION}/cockroach-userfile-list.html" - ] - }, - { - "title": "cockroach userfile get", - "urls": [ - "/${VERSION}/cockroach-userfile-get.html" - ] - }, - { - "title": "cockroach userfile delete", - "urls": [ - "/${VERSION}/cockroach-userfile-delete.html" - ] - }, - { - "title": "cockroach version", - "urls": [ - "/${VERSION}/cockroach-version.html" - ] - }, - { - "title": "cockroach workload", - "urls": [ - "/${VERSION}/cockroach-workload.html" - ] - }, - { - "title": "cockroach import", - "urls": [ - "/${VERSION}/cockroach-import.html" - ] - } - ] - }, - { - "title": "Cluster API", - "urls": [ - "/api/cluster/v2.html" - ] - }, - { - "title": "Cluster Settings", - "items": [ - { - "title": "Cluster Settings Overview", - "urls": [ - "/${VERSION}/cluster-settings.html" - ] - }, - { - "title": "Cost-Based Optimizer", - "urls": [ - "/${VERSION}/cost-based-optimizer.html" - ] - }, - { - "title": "Load-Based Splitting", - "urls": [ - "/${VERSION}/load-based-splitting.html" - ] - } - ] - }, - { - "title": "Logging System", - "items": [ - { - "title": "Logging Levels and Channels", - "urls": [ - "/${VERSION}/logging.html" - ] - }, - { - "title": "Log Formats", - "urls": [ - "/${VERSION}/log-formats.html" - ] - }, - { - "title": "Notable Event Types", - "urls": [ - "/${VERSION}/eventlog.html" - ] - } - ] - }, - { - "title": "DB Console", - "items": [ - { - "title": "DB Console Overview", - "urls": [ - "/${VERSION}/ui-overview.html" - ] - }, - { - "title": "Cluster Overview Page", - "urls": [ - "/${VERSION}/ui-cluster-overview-page.html" - ] - }, - { - "title": "Metrics Dashboards", - "items": [ - { - "title": "Overview Dashboard", - "urls": [ - "/${VERSION}/ui-overview-dashboard.html" - ] - }, - { - "title": "Hardware Dashboard", - "urls": [ - "/${VERSION}/ui-hardware-dashboard.html" - ] - }, - { - "title": "Runtime Dashboard", - "urls": [ - "/${VERSION}/ui-runtime-dashboard.html" - ] - }, - { - "title": "SQL Dashboard", - "urls": [ - "/${VERSION}/ui-sql-dashboard.html" - ] - }, - { - "title": "Storage Dashboard", - "urls": [ - "/${VERSION}/ui-storage-dashboard.html" - ] - }, - { - "title": "Replication Dashboard", - "urls": [ - "/${VERSION}/ui-replication-dashboard.html" - ] - }, - { - "title": "Changefeeds Dashboard", - "urls": [ - "/${VERSION}/ui-cdc-dashboard.html" - ] - }, - { - "title": "Custom Chart", - "urls": [ - "/${VERSION}/ui-custom-chart-debug-page.html" - ] - } - ] - }, - { - "title": "Databases Page", - "urls": [ - "/${VERSION}/ui-databases-page.html" - ] - }, - { - "title": "Sessions Page", - "urls": [ - "/${VERSION}/ui-sessions-page.html" - ] - }, - { - "title": "Transactions Page", - "urls": [ - "/${VERSION}/ui-transactions-page.html" - ] - }, - { - "title": "Statements Page", - "urls": [ - "/${VERSION}/ui-statements-page.html" - ] - }, - { - "title": "Network Latency Page", - "urls": [ - "/${VERSION}/ui-network-latency-page.html" - ] - }, - { - "title": "Jobs Page", - "urls": [ - "/${VERSION}/ui-jobs-page.html" - ] - }, - { - "title": "Advanced Debug Page", - "urls": [ - "/${VERSION}/ui-debug-pages.html" - ] - } - ] - }, - { - "title": "Diagnostics Reporting", - "urls": [ - "/${VERSION}/diagnostics-reporting.html" - ] - } - ] - }, { "title": "FAQs", "items": [ @@ -3083,6 +1364,7 @@ {% include_cached sidebar-releases.json %} ] }, + {% include_cached v21.2/sidebar-data-reference.json %}, { "title": "SQL Playground", "is_top_level": true, diff --git a/_includes/sidebar-releases.json b/_includes/sidebar-releases.json index 886c741eaf3..4efdb1d32e5 100644 --- a/_includes/sidebar-releases.json +++ b/_includes/sidebar-releases.json @@ -1,8 +1,8 @@ { - "title": "Releases", + "title": "Self-Hosted releases", "items": [ { - "title": "Production Releases", + "title": "Production releases", "items": [ { "title": "Latest v21.1", @@ -23,7 +23,7 @@ ] }, { - "title": "All Production Releases", + "title": "All production releases", "urls": [ "/releases/index.html#production-releases", "/releases/v21.1.9.html", @@ -87,7 +87,7 @@ ] }, { - "title": "Testing Releases", + "title": "Testing releases", "urls": [ "/releases/index.html#testing-releases", "/releases/v21.1.0-alpha.1.html", @@ -106,19 +106,19 @@ ] }, { - "title": "Release Support Policy", + "title": "Release support policy", "urls": [ "/releases/release-support-policy.html" ] }, { - "title": "Known Limitations", + "title": "Known limitations", "urls": [ "/${VERSION}/known-limitations.html" ] }, { - "title": "Technical Advisories", + "title": "Technical advisories", "urls": [ "/advisories/index.html", "/advisories/a30821.html", diff --git a/_includes/v21.1/sidebar-data-reference.json b/_includes/v21.1/sidebar-data-reference.json new file mode 100644 index 00000000000..4e273e5541e --- /dev/null +++ b/_includes/v21.1/sidebar-data-reference.json @@ -0,0 +1,1465 @@ +{ + "title": "Reference", + "is_top_level": true, + "items": [ + { + "title": "Architecture", + "urls": [ + "/${VERSION}/architecture/overview.html" + ], + "items": [ + { + "title": "SQL Layer", + "urls": [ + "/${VERSION}/architecture/sql-layer.html" + ] + }, + { + "title": "Transaction Layer", + "urls": [ + "/${VERSION}/architecture/transaction-layer.html" + ] + }, + { + "title": "Distribution Layer", + "urls": [ + "/${VERSION}/architecture/distribution-layer.html" + ] + }, + { + "title": "Replication Layer", + "urls": [ + "/${VERSION}/architecture/replication-layer.html" + ] + }, + { + "title": "Storage Layer", + "urls": [ + "/${VERSION}/architecture/storage-layer.html" + ] + }, + { + "title": "Life of a Distributed Transaction", + "urls": [ + "/${VERSION}/architecture/life-of-a-distributed-transaction.html" + ] + }, + { + "title": "Reads and Writes Overview", + "urls": [ + "/${VERSION}/architecture/reads-and-writes-overview.html" + ] + } + ] + }, + { + "title": "SQL", + "urls": [ + "/${VERSION}/sql-feature-support.html" + ], + "items": [ + { + "title": "SQL Syntax", + "items": [ + { + "title": "Full SQL Grammar", + "urls": [ + "/${VERSION}/sql-grammar.html" + ] + }, + { + "title": "Keywords & Identifiers", + "urls": [ + "/${VERSION}/keywords-and-identifiers.html" + ] + }, + { + "title": "Constants", + "urls": [ + "/${VERSION}/sql-constants.html" + ] + }, + { + "title": "Selection Queries", + "urls": [ + "/${VERSION}/selection-queries.html" + ] + }, + { + "title": "Table Expressions", + "urls": [ + "/${VERSION}/table-expressions.html" + ] + }, + { + "title": "Common Table Expressions", + "urls": [ + "/${VERSION}/common-table-expressions.html" + ] + }, + { + "title": "Scalar Expressions", + "urls": [ + "/${VERSION}/scalar-expressions.html" + ] + }, + { + "title": "NULL Handling", + "urls": [ + "/${VERSION}/null-handling.html" + ] + } + ] + }, + { + "title": "SQL Statements", + "items": [ + { + "title": "Overview", + "urls": [ + "/${VERSION}/sql-statements.html" + ] + }, + { + "title": "ADD COLUMN", + "urls": [ + "/${VERSION}/add-column.html" + ] + }, + { + "title": "ADD CONSTRAINT", + "urls": [ + "/${VERSION}/add-constraint.html" + ] + }, + { + "title": "ADD REGION (Enterprise)", + "urls": [ + "/${VERSION}/add-region.html" + ] + }, + { + "title": "ALTER COLUMN", + "urls": [ + "/${VERSION}/alter-column.html" + ] + }, + { + "title": "ALTER DATABASE", + "urls": [ + "/${VERSION}/alter-database.html" + ] + }, + { + "title": "ALTER INDEX", + "urls": [ + "/${VERSION}/alter-index.html" + ] + }, + { + "title": "ALTER PARTITION (Enterprise)", + "urls": [ + "/${VERSION}/alter-partition.html" + ] + }, + { + "title": "ALTER PRIMARY KEY", + "urls": [ + "/${VERSION}/alter-primary-key.html" + ] + }, + { + "title": "ALTER RANGE", + "urls": [ + "/${VERSION}/alter-range.html" + ] + }, + { + "title": "ALTER ROLE", + "urls": [ + "/${VERSION}/alter-role.html" + ] + }, + { + "title": "ALTER SCHEMA", + "urls": [ + "/${VERSION}/alter-schema.html" + ] + }, + { + "title": "ALTER SEQUENCE", + "urls": [ + "/${VERSION}/alter-sequence.html" + ] + }, + { + "title": "ALTER TABLE", + "urls": [ + "/${VERSION}/alter-table.html" + ] + }, + { + "title": "ALTER TYPE", + "urls": [ + "/${VERSION}/alter-type.html" + ] + }, + { + "title": "ALTER USER", + "urls": [ + "/${VERSION}/alter-user.html" + ] + }, + { + "title": "AS OF SYSTEM TIME", + "urls": [ + "/${VERSION}/as-of-system-time.html" + ] + }, + { + "title": "EXPERIMENTAL_AUDIT", + "urls": [ + "/${VERSION}/experimental-audit.html" + ] + }, + { + "title": "ALTER VIEW", + "urls": [ + "/${VERSION}/alter-view.html" + ] + }, + { + "title": "BACKUP", + "urls": [ + "/${VERSION}/backup.html" + ] + }, + { + "title": "BEGIN", + "urls": [ + "/${VERSION}/begin-transaction.html" + ] + }, + { + "title": "CANCEL JOB", + "urls": [ + "/${VERSION}/cancel-job.html" + ] + }, + { + "title": "CANCEL QUERY", + "urls": [ + "/${VERSION}/cancel-query.html" + ] + }, + { + "title": "CANCEL SESSION", + "urls": [ + "/${VERSION}/cancel-session.html" + ] + }, + { + "title": "COMMENT ON", + "urls": [ + "/${VERSION}/comment-on.html" + ] + }, + { + "title": "COMMIT", + "urls": [ + "/${VERSION}/commit-transaction.html" + ] + }, + { + "title": "CONFIGURE ZONE", + "urls": [ + "/${VERSION}/configure-zone.html" + ] + }, + { + "title": "CONVERT TO SCHEMA", + "urls": [ + "/${VERSION}/convert-to-schema.html" + ] + }, + { + "title": "COPY FROM", + "urls": [ + "/${VERSION}/copy-from.html" + ] + }, + { + "title": "CREATE CHANGEFEED (Enterprise)", + "urls": [ + "/${VERSION}/create-changefeed.html" + ] + }, + { + "title": "CREATE DATABASE", + "urls": [ + "/${VERSION}/create-database.html" + ] + }, + { + "title": "CREATE INDEX", + "urls": [ + "/${VERSION}/create-index.html" + ] + }, + { + "title": "CREATE ROLE", + "urls": [ + "/${VERSION}/create-role.html" + ] + }, + { + "title": "CREATE SCHEDULE FOR BACKUP", + "urls": [ + "/${VERSION}/create-schedule-for-backup.html" + ] + }, + { + "title": "CREATE SCHEMA", + "urls": [ + "/${VERSION}/create-schema.html" + ] + }, + { + "title": "CREATE SEQUENCE", + "urls": [ + "/${VERSION}/create-sequence.html" + ] + }, + { + "title": "CREATE STATISTICS", + "urls": [ + "/${VERSION}/create-statistics.html" + ] + }, + { + "title": "CREATE TABLE", + "urls": [ + "/${VERSION}/create-table.html" + ] + }, + { + "title": "CREATE TABLE AS", + "urls": [ + "/${VERSION}/create-table-as.html" + ] + }, + { + "title": "CREATE TYPE", + "urls": [ + "/${VERSION}/create-type.html" + ] + }, + { + "title": "CREATE USER", + "urls": [ + "/${VERSION}/create-user.html" + ] + }, + { + "title": "CREATE VIEW", + "urls": [ + "/${VERSION}/create-view.html" + ] + }, + { + "title": "DELETE", + "urls": [ + "/${VERSION}/delete.html" + ] + }, + { + "title": "DROP COLUMN", + "urls": [ + "/${VERSION}/drop-column.html" + ] + }, + { + "title": "DROP CONSTRAINT", + "urls": [ + "/${VERSION}/drop-constraint.html" + ] + }, + { + "title": "DROP DATABASE", + "urls": [ + "/${VERSION}/drop-database.html" + ] + }, + { + "title": "DROP REGION (Enterprise)", + "urls": [ + "/${VERSION}/drop-region.html" + ] + }, + { + "title": "DROP TYPE", + "urls": [ + "/${VERSION}/drop-type.html" + ] + }, + { + "title": "DROP INDEX", + "urls": [ + "/${VERSION}/drop-index.html" + ] + }, + { + "title": "DROP ROLE", + "urls": [ + "/${VERSION}/drop-role.html" + ] + }, + { + "title": "DROP SCHEDULES", + "urls": [ + "/${VERSION}/drop-schedules.html" + ] + }, + { + "title": "DROP SCHEMA", + "urls": [ + "/${VERSION}/drop-schema.html" + ] + }, + { + "title": "DROP SEQUENCE", + "urls": [ + "/${VERSION}/drop-sequence.html" + ] + }, + { + "title": "DROP TABLE", + "urls": [ + "/${VERSION}/drop-table.html" + ] + }, + { + "title": "DROP USER", + "urls": [ + "/${VERSION}/drop-user.html" + ] + }, + { + "title": "DROP VIEW", + "urls": [ + "/${VERSION}/drop-view.html" + ] + }, + { + "title": "EXPERIMENTAL CHANGEFEED FOR", + "urls": [ + "/${VERSION}/changefeed-for.html" + ] + }, + { + "title": "EXPLAIN", + "urls": [ + "/${VERSION}/explain.html" + ] + }, + { + "title": "EXPLAIN ANALYZE", + "urls": [ + "/${VERSION}/explain-analyze.html" + ] + }, + { + "title": "EXPORT (Enterprise)", + "urls": [ + "/${VERSION}/export.html" + ] + }, + { + "title": "GRANT", + "urls": [ + "/${VERSION}/grant.html" + ] + }, + { + "title": "IMPORT", + "urls": [ + "/${VERSION}/import.html" + ] + }, + { + "title": "IMPORT INTO", + "urls": [ + "/${VERSION}/import-into.html" + ] + }, + { + "title": "INSERT", + "urls": [ + "/${VERSION}/insert.html" + ] + }, + { + "title": "JOIN", + "urls": [ + "/${VERSION}/joins.html" + ] + }, + { + "title": "LIMIT/OFFSET", + "urls": [ + "/${VERSION}/limit-offset.html" + ] + }, + { + "title": "ORDER BY", + "urls": [ + "/${VERSION}/order-by.html" + ] + }, + { + "title": "OWNER TO", + "urls": [ + "/${VERSION}/owner-to.html" + ] + }, + { + "title": "PARTITION BY (Enterprise)", + "urls": [ + "/${VERSION}/partition-by.html" + ] + }, + { + "title": "PAUSE JOB", + "urls": [ + "/${VERSION}/pause-job.html" + ] + }, + { + "title": "PAUSE SCHEDULES", + "urls": [ + "/${VERSION}/pause-schedules.html" + ] + }, + { + "title": "REFRESH", + "urls": [ + "/${VERSION}/refresh.html" + ] + }, + { + "title": "RENAME COLUMN", + "urls": [ + "/${VERSION}/rename-column.html" + ] + }, + { + "title": "RENAME CONSTRAINT", + "urls": [ + "/${VERSION}/rename-constraint.html" + ] + }, + { + "title": "RENAME DATABASE", + "urls": [ + "/${VERSION}/rename-database.html" + ] + }, + { + "title": "RENAME INDEX", + "urls": [ + "/${VERSION}/rename-index.html" + ] + }, + { + "title": "RENAME TABLE", + "urls": [ + "/${VERSION}/rename-table.html" + ] + }, + { + "title": "RELEASE SAVEPOINT", + "urls": [ + "/${VERSION}/release-savepoint.html" + ] + }, + { + "title": "RESET <session variable>", + "urls": [ + "/${VERSION}/reset-vars.html" + ] + }, + { + "title": "RESET CLUSTER SETTING", + "urls": [ + "/${VERSION}/reset-cluster-setting.html" + ] + }, + { + "title": "RESTORE", + "urls": [ + "/${VERSION}/restore.html" + ] + }, + { + "title": "RESUME JOB", + "urls": [ + "/${VERSION}/resume-job.html" + ] + }, + { + "title": "RESUME SCHEDULES", + "urls": [ + "/${VERSION}/resume-schedules.html" + ] + }, + { + "title": "REVOKE", + "urls": [ + "/${VERSION}/revoke.html" + ] + }, + { + "title": "ROLLBACK", + "urls": [ + "/${VERSION}/rollback-transaction.html" + ] + }, + { + "title": "SAVEPOINT", + "urls": [ + "/${VERSION}/savepoint.html" + ] + }, + { + "title": "SELECT", + "urls": [ + "/${VERSION}/select-clause.html" + ] + }, + { + "title": "SELECT FOR UPDATE", + "urls": [ + "/${VERSION}/select-for-update.html" + ] + }, + { + "title": "SET <session variable>", + "urls": [ + "/${VERSION}/set-vars.html" + ] + }, + { + "title": "SET CLUSTER SETTING", + "urls": [ + "/${VERSION}/set-cluster-setting.html" + ] + }, + { + "title": "SET LOCALITY", + "urls": [ + "/${VERSION}/set-locality.html" + ] + }, + { + "title": "SET PRIMARY REGION (Enterprise)", + "urls": [ + "/${VERSION}/set-primary-region.html" + ] + }, + { + "title": "SET SCHEMA", + "urls": [ + "/${VERSION}/set-schema.html" + ] + }, + { + "title": "SET TRANSACTION", + "urls": [ + "/${VERSION}/set-transaction.html" + ] + }, + { + "title": "SHOW <session variables>", + "urls": [ + "/${VERSION}/show-vars.html" + ] + }, + { + "title": "SHOW BACKUP", + "urls": [ + "/${VERSION}/show-backup.html" + ] + }, + { + "title": "SHOW CLUSTER SETTING", + "urls": [ + "/${VERSION}/show-cluster-setting.html" + ] + }, + { + "title": "SHOW COLUMNS", + "urls": [ + "/${VERSION}/show-columns.html" + ] + }, + { + "title": "SHOW CONSTRAINTS", + "urls": [ + "/${VERSION}/show-constraints.html" + ] + }, + { + "title": "SHOW CREATE", + "urls": [ + "/${VERSION}/show-create.html" + ] + }, + { + "title": "SHOW DATABASES", + "urls": [ + "/${VERSION}/show-databases.html" + ] + }, + { + "title": "SHOW ENUMS", + "urls": [ + "/${VERSION}/show-enums.html" + ] + }, + { + "title": "SHOW FULL TABLE SCANS", + "urls": [ + "/${VERSION}/show-full-table-scans.html" + ] + }, + { + "title": "SHOW GRANTS", + "urls": [ + "/${VERSION}/show-grants.html" + ] + }, + { + "title": "SHOW INDEX", + "urls": [ + "/${VERSION}/show-index.html" + ] + }, + { + "title": "SHOW JOBS", + "urls": [ + "/${VERSION}/show-jobs.html" + ] + }, + { + "title": "SHOW LOCALITY", + "urls": [ + "/${VERSION}/show-locality.html" + ] + }, + { + "title": "SHOW PARTITIONS (Enterprise)", + "urls": [ + "/${VERSION}/show-partitions.html" + ] + }, + { + "title": "SHOW RANGES", + "urls": [ + "/${VERSION}/show-ranges.html" + ] + }, + { + "title": "SHOW RANGE FOR ROW", + "urls": [ + "/${VERSION}/show-range-for-row.html" + ] + }, + { + "title": "SHOW REGIONS", + "urls": [ + "/${VERSION}/show-regions.html" + ] + }, + { + "title": "SHOW ROLES", + "urls": [ + "/${VERSION}/show-roles.html" + ] + }, + { + "title": "SHOW SCHEDULES", + "urls": [ + "/${VERSION}/show-schedules.html" + ] + }, + { + "title": "SHOW SCHEMAS", + "urls": [ + "/${VERSION}/show-schemas.html" + ] + }, + { + "title": "SHOW SEQUENCES", + "urls": [ + "/${VERSION}/show-sequences.html" + ] + }, + { + "title": "SHOW SESSIONS", + "urls": [ + "/${VERSION}/show-sessions.html" + ] + }, + { + "title": "SHOW STATEMENTS", + "urls": [ + "/${VERSION}/show-statements.html" + ] + }, + { + "title": "SHOW STATISTICS", + "urls": [ + "/${VERSION}/show-statistics.html" + ] + }, + { + "title": "SHOW SAVEPOINT STATUS", + "urls": [ + "/${VERSION}/show-savepoint-status.html" + ] + }, + { + "title": "SHOW TABLES", + "urls": [ + "/${VERSION}/show-tables.html" + ] + }, + { + "title": "SHOW TRACE FOR SESSION", + "urls": [ + "/${VERSION}/show-trace.html" + ] + }, + { + "title": "SHOW TRANSACTIONS", + "urls": [ + "/${VERSION}/show-transactions.html" + ] + }, + { + "title": "SHOW TYPES", + "urls": [ + "/${VERSION}/show-types.html" + ] + }, + { + "title": "SHOW USERS", + "urls": [ + "/${VERSION}/show-users.html" + ] + }, + { + "title": "SHOW ZONE CONFIGURATIONS", + "urls": [ + "/${VERSION}/show-zone-configurations.html" + ] + }, + { + "title": "SPLIT AT", + "urls": [ + "/${VERSION}/split-at.html" + ] + }, + { + "title": "SURVIVE {ZONE,REGION} FAILURE", + "urls": [ + "/${VERSION}/survive-failure.html" + ] + }, + { + "title": "TRUNCATE", + "urls": [ + "/${VERSION}/truncate.html" + ] + }, + { + "title": "UNSPLIT AT", + "urls": [ + "/${VERSION}/unsplit-at.html" + ] + }, + { + "title": "UPDATE", + "urls": [ + "/${VERSION}/update.html" + ] + }, + { + "title": "UPSERT", + "urls": [ + "/${VERSION}/upsert.html" + ] + }, + { + "title": "VALIDATE CONSTRAINT", + "urls": [ + "/${VERSION}/validate-constraint.html" + ] + } + ] + }, + { + "title": "SQL Data Types", + "items": [ + { + "title": "Overview", + "urls": [ + "/${VERSION}/data-types.html" + ] + }, + { + "title": "ARRAY", + "urls": [ + "/${VERSION}/array.html" + ] + }, + { + "title": "BIT", + "urls": [ + "/${VERSION}/bit.html" + ] + }, + { + "title": "BOOL", + "urls": [ + "/${VERSION}/bool.html" + ] + }, + { + "title": "BYTES", + "urls": [ + "/${VERSION}/bytes.html" + ] + }, + { + "title": "COLLATE", + "urls": [ + "/${VERSION}/collate.html" + ] + }, + { + "title": "DATE", + "urls": [ + "/${VERSION}/date.html" + ] + }, + { + "title": "DECIMAL", + "urls": [ + "/${VERSION}/decimal.html" + ] + }, + { + "title": "ENUM", + "urls": [ + "/${VERSION}/enum.html" + ] + }, + { + "title": "FLOAT", + "urls": [ + "/${VERSION}/float.html" + ] + }, + { + "title": "INET", + "urls": [ + "/${VERSION}/inet.html" + ] + }, + { + "title": "INT", + "urls": [ + "/${VERSION}/int.html" + ] + }, + { + "title": "INTERVAL", + "urls": [ + "/${VERSION}/interval.html" + ] + }, + { + "title": "JSONB", + "urls": [ + "/${VERSION}/jsonb.html" + ] + }, + { + "title": "SERIAL", + "urls": [ + "/${VERSION}/serial.html" + ] + }, + { + "title": "STRING", + "urls": [ + "/${VERSION}/string.html" + ] + }, + { + "title": "TIME", + "urls": [ + "/${VERSION}/time.html" + ] + }, + { + "title": "TIMESTAMP", + "urls": [ + "/${VERSION}/timestamp.html" + ] + }, + { + "title": "UUID", + "urls": [ + "/${VERSION}/uuid.html" + ] + } + ] + }, + { + "title": "Constraints", + "items": [ + { + "title": "Overview", + "urls": [ + "/${VERSION}/constraints.html" + ] + }, + { + "title": "Check", + "urls": [ + "/${VERSION}/check.html" + ] + }, + { + "title": "Default Value", + "urls": [ + "/${VERSION}/default-value.html" + ] + }, + { + "title": "Foreign Key", + "urls": [ + "/${VERSION}/foreign-key.html" + ] + }, + { + "title": "Not Null", + "urls": [ + "/${VERSION}/not-null.html" + ] + }, + { + "title": "Primary Key", + "urls": [ + "/${VERSION}/primary-key.html" + ] + }, + { + "title": "Unique", + "urls": [ + "/${VERSION}/unique.html" + ] + } + ] + }, + { + "title": "Functions and Operators", + "urls": [ + "/${VERSION}/functions-and-operators.html" + ] + }, + { + "title": "Window Functions", + "urls": [ + "/${VERSION}/window-functions.html" + ] + }, + { + "title": "Name Resolution", + "urls": [ + "/${VERSION}/sql-name-resolution.html" + ] + }, + { + "title": "System Catalogs", + "items": [ + { + "title": "Overview", + "urls": [ + "/${VERSION}/system-catalogs.html" + ] + }, + { + "title": "crdb_internal", + "urls": [ + "/${VERSION}/crdb-internal.html" + ] + }, + { + "title": "information_schema", + "urls": [ + "/${VERSION}/information-schema.html" + ] + }, + { + "title": "pg_catalog", + "urls": [ + "/${VERSION}/pg-catalog.html" + ] + }, + { + "title": "pg_extension", + "urls": [ + "/${VERSION}/pg-extension.html" + ] + } + ] + } + ] + }, + { + "title": "Cluster settings", + "urls": [ + "/${VERSION}/cluster-settings.html" + ], + "items": [ + { + "title": "Cost-Based Optimizer", + "urls": [ + "/${VERSION}/cost-based-optimizer.html" + ] + }, + { + "title": "Load-Based Splitting", + "urls": [ + "/${VERSION}/load-based-splitting.html" + ] + } + ] + }, + { + "title": "CLI reference", + "urls": [ + "/${VERSION}/cockroach-commands.html" + ], + "items": [ + { + "title": "Client Connection Parameters", + "urls": [ + "/${VERSION}/connection-parameters.html" + ] + }, + { + "title": "cockroach commands", + "items": [ + { + "title": "cockroach start", + "urls": [ + "/${VERSION}/cockroach-start.html" + ] + }, + { + "title": "cockroach init", + "urls": [ + "/${VERSION}/cockroach-init.html" + ] + }, + { + "title": "cockroach start-single-node", + "urls": [ + "/${VERSION}/cockroach-start-single-node.html" + ] + }, + { + "title": "cockroach cert", + "urls": [ + "/${VERSION}/cockroach-cert.html" + ] + }, + { + "title": "cockroach quit", + "urls": [ + "/${VERSION}/cockroach-quit.html" + ] + }, + { + "title": "cockroach sql", + "urls": [ + "/${VERSION}/cockroach-sql.html" + ] + }, + { + "title": "cockroach sqlfmt", + "urls": [ + "/${VERSION}/cockroach-sqlfmt.html" + ] + }, + { + "title": "cockroach node", + "urls": [ + "/${VERSION}/cockroach-node.html" + ] + }, + { + "title": "cockroach nodelocal upload", + "urls": [ + "/${VERSION}/cockroach-nodelocal-upload.html" + ] + }, + { + "title": "cockroach dump", + "urls": [ + "/${VERSION}/cockroach-dump.html" + ] + }, + { + "title": "cockroach demo", + "urls": [ + "/${VERSION}/cockroach-demo.html" + ] + }, + { + "title": "cockroach debug ballast", + "urls": [ + "/${VERSION}/cockroach-debug-ballast.html" + ] + }, + { + "title": "cockroach debug encryption-active-key", + "urls": [ + "/${VERSION}/cockroach-debug-encryption-active-key.html" + ] + }, + { + "title": "cockroach debug list-files", + "urls": [ + "/${VERSION}/cockroach-debug-list-files.html" + ] + }, + { + "title": "cockroach debug merge-logs", + "urls": [ + "/${VERSION}/cockroach-debug-merge-logs.html" + ] + }, + { + "title": "cockroach debug zip", + "urls": [ + "/${VERSION}/cockroach-debug-zip.html" + ] + }, + { + "title": "cockroach statement-diag", + "urls": [ + "/${VERSION}/cockroach-statement-diag.html" + ] + }, + { + "title": "cockroach gen", + "urls": [ + "/${VERSION}/cockroach-gen.html" + ] + }, + { + "title": "cockroach userfile upload", + "urls": [ + "/${VERSION}/cockroach-userfile-upload.html" + ] + }, + { + "title": "cockroach userfile list", + "urls": [ + "/${VERSION}/cockroach-userfile-list.html" + ] + }, + { + "title": "cockroach userfile get", + "urls": [ + "/${VERSION}/cockroach-userfile-get.html" + ] + }, + { + "title": "cockroach userfile delete", + "urls": [ + "/${VERSION}/cockroach-userfile-delete.html" + ] + }, + { + "title": "cockroach version", + "urls": [ + "/${VERSION}/cockroach-version.html" + ] + }, + { + "title": "cockroach workload", + "urls": [ + "/${VERSION}/cockroach-workload.html" + ] + }, + { + "title": "cockroach import", + "urls": [ + "/${VERSION}/cockroach-import.html" + ] + } + ] + } + ] + }, + { + "title": "DB Console", + "urls": [ + "/${VERSION}/ui-overview.html" + ], + "items": [ + { + "title": "Cluster Overview Page", + "urls": [ + "/${VERSION}/ui-cluster-overview-page.html" + ] + }, + { + "title": "Metrics Dashboards", + "items": [ + { + "title": "Overview Dashboard", + "urls": [ + "/${VERSION}/ui-overview-dashboard.html" + ] + }, + { + "title": "Hardware Dashboard", + "urls": [ + "/${VERSION}/ui-hardware-dashboard.html" + ] + }, + { + "title": "Runtime Dashboard", + "urls": [ + "/${VERSION}/ui-runtime-dashboard.html" + ] + }, + { + "title": "SQL Dashboard", + "urls": [ + "/${VERSION}/ui-sql-dashboard.html" + ] + }, + { + "title": "Storage Dashboard", + "urls": [ + "/${VERSION}/ui-storage-dashboard.html" + ] + }, + { + "title": "Replication Dashboard", + "urls": [ + "/${VERSION}/ui-replication-dashboard.html" + ] + }, + { + "title": "Changefeeds Dashboard", + "urls": [ + "/${VERSION}/ui-cdc-dashboard.html" + ] + }, + { + "title": "Custom Chart", + "urls": [ + "/${VERSION}/ui-custom-chart-debug-page.html" + ] + } + ] + }, + { + "title": "Databases Page", + "urls": [ + "/${VERSION}/ui-databases-page.html" + ] + }, + { + "title": "Sessions Page", + "urls": [ + "/${VERSION}/ui-sessions-page.html" + ] + }, + { + "title": "Statements Page", + "urls": [ + "/${VERSION}/ui-statements-page.html" + ] + }, + { + "title": "Transactions Page", + "urls": [ + "/${VERSION}/ui-transactions-page.html" + ] + }, + { + "title": "Network Latency Page", + "urls": [ + "/${VERSION}/ui-network-latency-page.html" + ] + }, + { + "title": "Jobs Page", + "urls": [ + "/${VERSION}/ui-jobs-page.html" + ] + }, + { + "title": "Advanced Debug Page", + "urls": [ + "/${VERSION}/ui-debug-pages.html" + ] + } + ] + }, + { + "title": "Cluster API", + "urls": [ + "/api/cluster/v2.html" + ] + }, + { + "title": "Logging reference", + "urls": [ + "/${VERSION}/logging.html" + ], + "items": [ + { + "title": "Log formats", + "urls": [ + "/${VERSION}/log-formats.html" + ] + }, + { + "title": "Notable event types", + "urls": [ + "/${VERSION}/eventlog.html" + ] + } + ] + }, + { + "title": "Diagnostics Reporting", + "urls": [ + "/${VERSION}/diagnostics-reporting.html" + ] + }, + {% include_cached cockroachcloud/sidebar-release-notes.json %}, + {% include_cached sidebar-releases.json %} + ] + } \ No newline at end of file diff --git a/_includes/v21.2/sidebar-data-reference.json b/_includes/v21.2/sidebar-data-reference.json new file mode 100644 index 00000000000..4e273e5541e --- /dev/null +++ b/_includes/v21.2/sidebar-data-reference.json @@ -0,0 +1,1465 @@ +{ + "title": "Reference", + "is_top_level": true, + "items": [ + { + "title": "Architecture", + "urls": [ + "/${VERSION}/architecture/overview.html" + ], + "items": [ + { + "title": "SQL Layer", + "urls": [ + "/${VERSION}/architecture/sql-layer.html" + ] + }, + { + "title": "Transaction Layer", + "urls": [ + "/${VERSION}/architecture/transaction-layer.html" + ] + }, + { + "title": "Distribution Layer", + "urls": [ + "/${VERSION}/architecture/distribution-layer.html" + ] + }, + { + "title": "Replication Layer", + "urls": [ + "/${VERSION}/architecture/replication-layer.html" + ] + }, + { + "title": "Storage Layer", + "urls": [ + "/${VERSION}/architecture/storage-layer.html" + ] + }, + { + "title": "Life of a Distributed Transaction", + "urls": [ + "/${VERSION}/architecture/life-of-a-distributed-transaction.html" + ] + }, + { + "title": "Reads and Writes Overview", + "urls": [ + "/${VERSION}/architecture/reads-and-writes-overview.html" + ] + } + ] + }, + { + "title": "SQL", + "urls": [ + "/${VERSION}/sql-feature-support.html" + ], + "items": [ + { + "title": "SQL Syntax", + "items": [ + { + "title": "Full SQL Grammar", + "urls": [ + "/${VERSION}/sql-grammar.html" + ] + }, + { + "title": "Keywords & Identifiers", + "urls": [ + "/${VERSION}/keywords-and-identifiers.html" + ] + }, + { + "title": "Constants", + "urls": [ + "/${VERSION}/sql-constants.html" + ] + }, + { + "title": "Selection Queries", + "urls": [ + "/${VERSION}/selection-queries.html" + ] + }, + { + "title": "Table Expressions", + "urls": [ + "/${VERSION}/table-expressions.html" + ] + }, + { + "title": "Common Table Expressions", + "urls": [ + "/${VERSION}/common-table-expressions.html" + ] + }, + { + "title": "Scalar Expressions", + "urls": [ + "/${VERSION}/scalar-expressions.html" + ] + }, + { + "title": "NULL Handling", + "urls": [ + "/${VERSION}/null-handling.html" + ] + } + ] + }, + { + "title": "SQL Statements", + "items": [ + { + "title": "Overview", + "urls": [ + "/${VERSION}/sql-statements.html" + ] + }, + { + "title": "ADD COLUMN", + "urls": [ + "/${VERSION}/add-column.html" + ] + }, + { + "title": "ADD CONSTRAINT", + "urls": [ + "/${VERSION}/add-constraint.html" + ] + }, + { + "title": "ADD REGION (Enterprise)", + "urls": [ + "/${VERSION}/add-region.html" + ] + }, + { + "title": "ALTER COLUMN", + "urls": [ + "/${VERSION}/alter-column.html" + ] + }, + { + "title": "ALTER DATABASE", + "urls": [ + "/${VERSION}/alter-database.html" + ] + }, + { + "title": "ALTER INDEX", + "urls": [ + "/${VERSION}/alter-index.html" + ] + }, + { + "title": "ALTER PARTITION (Enterprise)", + "urls": [ + "/${VERSION}/alter-partition.html" + ] + }, + { + "title": "ALTER PRIMARY KEY", + "urls": [ + "/${VERSION}/alter-primary-key.html" + ] + }, + { + "title": "ALTER RANGE", + "urls": [ + "/${VERSION}/alter-range.html" + ] + }, + { + "title": "ALTER ROLE", + "urls": [ + "/${VERSION}/alter-role.html" + ] + }, + { + "title": "ALTER SCHEMA", + "urls": [ + "/${VERSION}/alter-schema.html" + ] + }, + { + "title": "ALTER SEQUENCE", + "urls": [ + "/${VERSION}/alter-sequence.html" + ] + }, + { + "title": "ALTER TABLE", + "urls": [ + "/${VERSION}/alter-table.html" + ] + }, + { + "title": "ALTER TYPE", + "urls": [ + "/${VERSION}/alter-type.html" + ] + }, + { + "title": "ALTER USER", + "urls": [ + "/${VERSION}/alter-user.html" + ] + }, + { + "title": "AS OF SYSTEM TIME", + "urls": [ + "/${VERSION}/as-of-system-time.html" + ] + }, + { + "title": "EXPERIMENTAL_AUDIT", + "urls": [ + "/${VERSION}/experimental-audit.html" + ] + }, + { + "title": "ALTER VIEW", + "urls": [ + "/${VERSION}/alter-view.html" + ] + }, + { + "title": "BACKUP", + "urls": [ + "/${VERSION}/backup.html" + ] + }, + { + "title": "BEGIN", + "urls": [ + "/${VERSION}/begin-transaction.html" + ] + }, + { + "title": "CANCEL JOB", + "urls": [ + "/${VERSION}/cancel-job.html" + ] + }, + { + "title": "CANCEL QUERY", + "urls": [ + "/${VERSION}/cancel-query.html" + ] + }, + { + "title": "CANCEL SESSION", + "urls": [ + "/${VERSION}/cancel-session.html" + ] + }, + { + "title": "COMMENT ON", + "urls": [ + "/${VERSION}/comment-on.html" + ] + }, + { + "title": "COMMIT", + "urls": [ + "/${VERSION}/commit-transaction.html" + ] + }, + { + "title": "CONFIGURE ZONE", + "urls": [ + "/${VERSION}/configure-zone.html" + ] + }, + { + "title": "CONVERT TO SCHEMA", + "urls": [ + "/${VERSION}/convert-to-schema.html" + ] + }, + { + "title": "COPY FROM", + "urls": [ + "/${VERSION}/copy-from.html" + ] + }, + { + "title": "CREATE CHANGEFEED (Enterprise)", + "urls": [ + "/${VERSION}/create-changefeed.html" + ] + }, + { + "title": "CREATE DATABASE", + "urls": [ + "/${VERSION}/create-database.html" + ] + }, + { + "title": "CREATE INDEX", + "urls": [ + "/${VERSION}/create-index.html" + ] + }, + { + "title": "CREATE ROLE", + "urls": [ + "/${VERSION}/create-role.html" + ] + }, + { + "title": "CREATE SCHEDULE FOR BACKUP", + "urls": [ + "/${VERSION}/create-schedule-for-backup.html" + ] + }, + { + "title": "CREATE SCHEMA", + "urls": [ + "/${VERSION}/create-schema.html" + ] + }, + { + "title": "CREATE SEQUENCE", + "urls": [ + "/${VERSION}/create-sequence.html" + ] + }, + { + "title": "CREATE STATISTICS", + "urls": [ + "/${VERSION}/create-statistics.html" + ] + }, + { + "title": "CREATE TABLE", + "urls": [ + "/${VERSION}/create-table.html" + ] + }, + { + "title": "CREATE TABLE AS", + "urls": [ + "/${VERSION}/create-table-as.html" + ] + }, + { + "title": "CREATE TYPE", + "urls": [ + "/${VERSION}/create-type.html" + ] + }, + { + "title": "CREATE USER", + "urls": [ + "/${VERSION}/create-user.html" + ] + }, + { + "title": "CREATE VIEW", + "urls": [ + "/${VERSION}/create-view.html" + ] + }, + { + "title": "DELETE", + "urls": [ + "/${VERSION}/delete.html" + ] + }, + { + "title": "DROP COLUMN", + "urls": [ + "/${VERSION}/drop-column.html" + ] + }, + { + "title": "DROP CONSTRAINT", + "urls": [ + "/${VERSION}/drop-constraint.html" + ] + }, + { + "title": "DROP DATABASE", + "urls": [ + "/${VERSION}/drop-database.html" + ] + }, + { + "title": "DROP REGION (Enterprise)", + "urls": [ + "/${VERSION}/drop-region.html" + ] + }, + { + "title": "DROP TYPE", + "urls": [ + "/${VERSION}/drop-type.html" + ] + }, + { + "title": "DROP INDEX", + "urls": [ + "/${VERSION}/drop-index.html" + ] + }, + { + "title": "DROP ROLE", + "urls": [ + "/${VERSION}/drop-role.html" + ] + }, + { + "title": "DROP SCHEDULES", + "urls": [ + "/${VERSION}/drop-schedules.html" + ] + }, + { + "title": "DROP SCHEMA", + "urls": [ + "/${VERSION}/drop-schema.html" + ] + }, + { + "title": "DROP SEQUENCE", + "urls": [ + "/${VERSION}/drop-sequence.html" + ] + }, + { + "title": "DROP TABLE", + "urls": [ + "/${VERSION}/drop-table.html" + ] + }, + { + "title": "DROP USER", + "urls": [ + "/${VERSION}/drop-user.html" + ] + }, + { + "title": "DROP VIEW", + "urls": [ + "/${VERSION}/drop-view.html" + ] + }, + { + "title": "EXPERIMENTAL CHANGEFEED FOR", + "urls": [ + "/${VERSION}/changefeed-for.html" + ] + }, + { + "title": "EXPLAIN", + "urls": [ + "/${VERSION}/explain.html" + ] + }, + { + "title": "EXPLAIN ANALYZE", + "urls": [ + "/${VERSION}/explain-analyze.html" + ] + }, + { + "title": "EXPORT (Enterprise)", + "urls": [ + "/${VERSION}/export.html" + ] + }, + { + "title": "GRANT", + "urls": [ + "/${VERSION}/grant.html" + ] + }, + { + "title": "IMPORT", + "urls": [ + "/${VERSION}/import.html" + ] + }, + { + "title": "IMPORT INTO", + "urls": [ + "/${VERSION}/import-into.html" + ] + }, + { + "title": "INSERT", + "urls": [ + "/${VERSION}/insert.html" + ] + }, + { + "title": "JOIN", + "urls": [ + "/${VERSION}/joins.html" + ] + }, + { + "title": "LIMIT/OFFSET", + "urls": [ + "/${VERSION}/limit-offset.html" + ] + }, + { + "title": "ORDER BY", + "urls": [ + "/${VERSION}/order-by.html" + ] + }, + { + "title": "OWNER TO", + "urls": [ + "/${VERSION}/owner-to.html" + ] + }, + { + "title": "PARTITION BY (Enterprise)", + "urls": [ + "/${VERSION}/partition-by.html" + ] + }, + { + "title": "PAUSE JOB", + "urls": [ + "/${VERSION}/pause-job.html" + ] + }, + { + "title": "PAUSE SCHEDULES", + "urls": [ + "/${VERSION}/pause-schedules.html" + ] + }, + { + "title": "REFRESH", + "urls": [ + "/${VERSION}/refresh.html" + ] + }, + { + "title": "RENAME COLUMN", + "urls": [ + "/${VERSION}/rename-column.html" + ] + }, + { + "title": "RENAME CONSTRAINT", + "urls": [ + "/${VERSION}/rename-constraint.html" + ] + }, + { + "title": "RENAME DATABASE", + "urls": [ + "/${VERSION}/rename-database.html" + ] + }, + { + "title": "RENAME INDEX", + "urls": [ + "/${VERSION}/rename-index.html" + ] + }, + { + "title": "RENAME TABLE", + "urls": [ + "/${VERSION}/rename-table.html" + ] + }, + { + "title": "RELEASE SAVEPOINT", + "urls": [ + "/${VERSION}/release-savepoint.html" + ] + }, + { + "title": "RESET <session variable>", + "urls": [ + "/${VERSION}/reset-vars.html" + ] + }, + { + "title": "RESET CLUSTER SETTING", + "urls": [ + "/${VERSION}/reset-cluster-setting.html" + ] + }, + { + "title": "RESTORE", + "urls": [ + "/${VERSION}/restore.html" + ] + }, + { + "title": "RESUME JOB", + "urls": [ + "/${VERSION}/resume-job.html" + ] + }, + { + "title": "RESUME SCHEDULES", + "urls": [ + "/${VERSION}/resume-schedules.html" + ] + }, + { + "title": "REVOKE", + "urls": [ + "/${VERSION}/revoke.html" + ] + }, + { + "title": "ROLLBACK", + "urls": [ + "/${VERSION}/rollback-transaction.html" + ] + }, + { + "title": "SAVEPOINT", + "urls": [ + "/${VERSION}/savepoint.html" + ] + }, + { + "title": "SELECT", + "urls": [ + "/${VERSION}/select-clause.html" + ] + }, + { + "title": "SELECT FOR UPDATE", + "urls": [ + "/${VERSION}/select-for-update.html" + ] + }, + { + "title": "SET <session variable>", + "urls": [ + "/${VERSION}/set-vars.html" + ] + }, + { + "title": "SET CLUSTER SETTING", + "urls": [ + "/${VERSION}/set-cluster-setting.html" + ] + }, + { + "title": "SET LOCALITY", + "urls": [ + "/${VERSION}/set-locality.html" + ] + }, + { + "title": "SET PRIMARY REGION (Enterprise)", + "urls": [ + "/${VERSION}/set-primary-region.html" + ] + }, + { + "title": "SET SCHEMA", + "urls": [ + "/${VERSION}/set-schema.html" + ] + }, + { + "title": "SET TRANSACTION", + "urls": [ + "/${VERSION}/set-transaction.html" + ] + }, + { + "title": "SHOW <session variables>", + "urls": [ + "/${VERSION}/show-vars.html" + ] + }, + { + "title": "SHOW BACKUP", + "urls": [ + "/${VERSION}/show-backup.html" + ] + }, + { + "title": "SHOW CLUSTER SETTING", + "urls": [ + "/${VERSION}/show-cluster-setting.html" + ] + }, + { + "title": "SHOW COLUMNS", + "urls": [ + "/${VERSION}/show-columns.html" + ] + }, + { + "title": "SHOW CONSTRAINTS", + "urls": [ + "/${VERSION}/show-constraints.html" + ] + }, + { + "title": "SHOW CREATE", + "urls": [ + "/${VERSION}/show-create.html" + ] + }, + { + "title": "SHOW DATABASES", + "urls": [ + "/${VERSION}/show-databases.html" + ] + }, + { + "title": "SHOW ENUMS", + "urls": [ + "/${VERSION}/show-enums.html" + ] + }, + { + "title": "SHOW FULL TABLE SCANS", + "urls": [ + "/${VERSION}/show-full-table-scans.html" + ] + }, + { + "title": "SHOW GRANTS", + "urls": [ + "/${VERSION}/show-grants.html" + ] + }, + { + "title": "SHOW INDEX", + "urls": [ + "/${VERSION}/show-index.html" + ] + }, + { + "title": "SHOW JOBS", + "urls": [ + "/${VERSION}/show-jobs.html" + ] + }, + { + "title": "SHOW LOCALITY", + "urls": [ + "/${VERSION}/show-locality.html" + ] + }, + { + "title": "SHOW PARTITIONS (Enterprise)", + "urls": [ + "/${VERSION}/show-partitions.html" + ] + }, + { + "title": "SHOW RANGES", + "urls": [ + "/${VERSION}/show-ranges.html" + ] + }, + { + "title": "SHOW RANGE FOR ROW", + "urls": [ + "/${VERSION}/show-range-for-row.html" + ] + }, + { + "title": "SHOW REGIONS", + "urls": [ + "/${VERSION}/show-regions.html" + ] + }, + { + "title": "SHOW ROLES", + "urls": [ + "/${VERSION}/show-roles.html" + ] + }, + { + "title": "SHOW SCHEDULES", + "urls": [ + "/${VERSION}/show-schedules.html" + ] + }, + { + "title": "SHOW SCHEMAS", + "urls": [ + "/${VERSION}/show-schemas.html" + ] + }, + { + "title": "SHOW SEQUENCES", + "urls": [ + "/${VERSION}/show-sequences.html" + ] + }, + { + "title": "SHOW SESSIONS", + "urls": [ + "/${VERSION}/show-sessions.html" + ] + }, + { + "title": "SHOW STATEMENTS", + "urls": [ + "/${VERSION}/show-statements.html" + ] + }, + { + "title": "SHOW STATISTICS", + "urls": [ + "/${VERSION}/show-statistics.html" + ] + }, + { + "title": "SHOW SAVEPOINT STATUS", + "urls": [ + "/${VERSION}/show-savepoint-status.html" + ] + }, + { + "title": "SHOW TABLES", + "urls": [ + "/${VERSION}/show-tables.html" + ] + }, + { + "title": "SHOW TRACE FOR SESSION", + "urls": [ + "/${VERSION}/show-trace.html" + ] + }, + { + "title": "SHOW TRANSACTIONS", + "urls": [ + "/${VERSION}/show-transactions.html" + ] + }, + { + "title": "SHOW TYPES", + "urls": [ + "/${VERSION}/show-types.html" + ] + }, + { + "title": "SHOW USERS", + "urls": [ + "/${VERSION}/show-users.html" + ] + }, + { + "title": "SHOW ZONE CONFIGURATIONS", + "urls": [ + "/${VERSION}/show-zone-configurations.html" + ] + }, + { + "title": "SPLIT AT", + "urls": [ + "/${VERSION}/split-at.html" + ] + }, + { + "title": "SURVIVE {ZONE,REGION} FAILURE", + "urls": [ + "/${VERSION}/survive-failure.html" + ] + }, + { + "title": "TRUNCATE", + "urls": [ + "/${VERSION}/truncate.html" + ] + }, + { + "title": "UNSPLIT AT", + "urls": [ + "/${VERSION}/unsplit-at.html" + ] + }, + { + "title": "UPDATE", + "urls": [ + "/${VERSION}/update.html" + ] + }, + { + "title": "UPSERT", + "urls": [ + "/${VERSION}/upsert.html" + ] + }, + { + "title": "VALIDATE CONSTRAINT", + "urls": [ + "/${VERSION}/validate-constraint.html" + ] + } + ] + }, + { + "title": "SQL Data Types", + "items": [ + { + "title": "Overview", + "urls": [ + "/${VERSION}/data-types.html" + ] + }, + { + "title": "ARRAY", + "urls": [ + "/${VERSION}/array.html" + ] + }, + { + "title": "BIT", + "urls": [ + "/${VERSION}/bit.html" + ] + }, + { + "title": "BOOL", + "urls": [ + "/${VERSION}/bool.html" + ] + }, + { + "title": "BYTES", + "urls": [ + "/${VERSION}/bytes.html" + ] + }, + { + "title": "COLLATE", + "urls": [ + "/${VERSION}/collate.html" + ] + }, + { + "title": "DATE", + "urls": [ + "/${VERSION}/date.html" + ] + }, + { + "title": "DECIMAL", + "urls": [ + "/${VERSION}/decimal.html" + ] + }, + { + "title": "ENUM", + "urls": [ + "/${VERSION}/enum.html" + ] + }, + { + "title": "FLOAT", + "urls": [ + "/${VERSION}/float.html" + ] + }, + { + "title": "INET", + "urls": [ + "/${VERSION}/inet.html" + ] + }, + { + "title": "INT", + "urls": [ + "/${VERSION}/int.html" + ] + }, + { + "title": "INTERVAL", + "urls": [ + "/${VERSION}/interval.html" + ] + }, + { + "title": "JSONB", + "urls": [ + "/${VERSION}/jsonb.html" + ] + }, + { + "title": "SERIAL", + "urls": [ + "/${VERSION}/serial.html" + ] + }, + { + "title": "STRING", + "urls": [ + "/${VERSION}/string.html" + ] + }, + { + "title": "TIME", + "urls": [ + "/${VERSION}/time.html" + ] + }, + { + "title": "TIMESTAMP", + "urls": [ + "/${VERSION}/timestamp.html" + ] + }, + { + "title": "UUID", + "urls": [ + "/${VERSION}/uuid.html" + ] + } + ] + }, + { + "title": "Constraints", + "items": [ + { + "title": "Overview", + "urls": [ + "/${VERSION}/constraints.html" + ] + }, + { + "title": "Check", + "urls": [ + "/${VERSION}/check.html" + ] + }, + { + "title": "Default Value", + "urls": [ + "/${VERSION}/default-value.html" + ] + }, + { + "title": "Foreign Key", + "urls": [ + "/${VERSION}/foreign-key.html" + ] + }, + { + "title": "Not Null", + "urls": [ + "/${VERSION}/not-null.html" + ] + }, + { + "title": "Primary Key", + "urls": [ + "/${VERSION}/primary-key.html" + ] + }, + { + "title": "Unique", + "urls": [ + "/${VERSION}/unique.html" + ] + } + ] + }, + { + "title": "Functions and Operators", + "urls": [ + "/${VERSION}/functions-and-operators.html" + ] + }, + { + "title": "Window Functions", + "urls": [ + "/${VERSION}/window-functions.html" + ] + }, + { + "title": "Name Resolution", + "urls": [ + "/${VERSION}/sql-name-resolution.html" + ] + }, + { + "title": "System Catalogs", + "items": [ + { + "title": "Overview", + "urls": [ + "/${VERSION}/system-catalogs.html" + ] + }, + { + "title": "crdb_internal", + "urls": [ + "/${VERSION}/crdb-internal.html" + ] + }, + { + "title": "information_schema", + "urls": [ + "/${VERSION}/information-schema.html" + ] + }, + { + "title": "pg_catalog", + "urls": [ + "/${VERSION}/pg-catalog.html" + ] + }, + { + "title": "pg_extension", + "urls": [ + "/${VERSION}/pg-extension.html" + ] + } + ] + } + ] + }, + { + "title": "Cluster settings", + "urls": [ + "/${VERSION}/cluster-settings.html" + ], + "items": [ + { + "title": "Cost-Based Optimizer", + "urls": [ + "/${VERSION}/cost-based-optimizer.html" + ] + }, + { + "title": "Load-Based Splitting", + "urls": [ + "/${VERSION}/load-based-splitting.html" + ] + } + ] + }, + { + "title": "CLI reference", + "urls": [ + "/${VERSION}/cockroach-commands.html" + ], + "items": [ + { + "title": "Client Connection Parameters", + "urls": [ + "/${VERSION}/connection-parameters.html" + ] + }, + { + "title": "cockroach commands", + "items": [ + { + "title": "cockroach start", + "urls": [ + "/${VERSION}/cockroach-start.html" + ] + }, + { + "title": "cockroach init", + "urls": [ + "/${VERSION}/cockroach-init.html" + ] + }, + { + "title": "cockroach start-single-node", + "urls": [ + "/${VERSION}/cockroach-start-single-node.html" + ] + }, + { + "title": "cockroach cert", + "urls": [ + "/${VERSION}/cockroach-cert.html" + ] + }, + { + "title": "cockroach quit", + "urls": [ + "/${VERSION}/cockroach-quit.html" + ] + }, + { + "title": "cockroach sql", + "urls": [ + "/${VERSION}/cockroach-sql.html" + ] + }, + { + "title": "cockroach sqlfmt", + "urls": [ + "/${VERSION}/cockroach-sqlfmt.html" + ] + }, + { + "title": "cockroach node", + "urls": [ + "/${VERSION}/cockroach-node.html" + ] + }, + { + "title": "cockroach nodelocal upload", + "urls": [ + "/${VERSION}/cockroach-nodelocal-upload.html" + ] + }, + { + "title": "cockroach dump", + "urls": [ + "/${VERSION}/cockroach-dump.html" + ] + }, + { + "title": "cockroach demo", + "urls": [ + "/${VERSION}/cockroach-demo.html" + ] + }, + { + "title": "cockroach debug ballast", + "urls": [ + "/${VERSION}/cockroach-debug-ballast.html" + ] + }, + { + "title": "cockroach debug encryption-active-key", + "urls": [ + "/${VERSION}/cockroach-debug-encryption-active-key.html" + ] + }, + { + "title": "cockroach debug list-files", + "urls": [ + "/${VERSION}/cockroach-debug-list-files.html" + ] + }, + { + "title": "cockroach debug merge-logs", + "urls": [ + "/${VERSION}/cockroach-debug-merge-logs.html" + ] + }, + { + "title": "cockroach debug zip", + "urls": [ + "/${VERSION}/cockroach-debug-zip.html" + ] + }, + { + "title": "cockroach statement-diag", + "urls": [ + "/${VERSION}/cockroach-statement-diag.html" + ] + }, + { + "title": "cockroach gen", + "urls": [ + "/${VERSION}/cockroach-gen.html" + ] + }, + { + "title": "cockroach userfile upload", + "urls": [ + "/${VERSION}/cockroach-userfile-upload.html" + ] + }, + { + "title": "cockroach userfile list", + "urls": [ + "/${VERSION}/cockroach-userfile-list.html" + ] + }, + { + "title": "cockroach userfile get", + "urls": [ + "/${VERSION}/cockroach-userfile-get.html" + ] + }, + { + "title": "cockroach userfile delete", + "urls": [ + "/${VERSION}/cockroach-userfile-delete.html" + ] + }, + { + "title": "cockroach version", + "urls": [ + "/${VERSION}/cockroach-version.html" + ] + }, + { + "title": "cockroach workload", + "urls": [ + "/${VERSION}/cockroach-workload.html" + ] + }, + { + "title": "cockroach import", + "urls": [ + "/${VERSION}/cockroach-import.html" + ] + } + ] + } + ] + }, + { + "title": "DB Console", + "urls": [ + "/${VERSION}/ui-overview.html" + ], + "items": [ + { + "title": "Cluster Overview Page", + "urls": [ + "/${VERSION}/ui-cluster-overview-page.html" + ] + }, + { + "title": "Metrics Dashboards", + "items": [ + { + "title": "Overview Dashboard", + "urls": [ + "/${VERSION}/ui-overview-dashboard.html" + ] + }, + { + "title": "Hardware Dashboard", + "urls": [ + "/${VERSION}/ui-hardware-dashboard.html" + ] + }, + { + "title": "Runtime Dashboard", + "urls": [ + "/${VERSION}/ui-runtime-dashboard.html" + ] + }, + { + "title": "SQL Dashboard", + "urls": [ + "/${VERSION}/ui-sql-dashboard.html" + ] + }, + { + "title": "Storage Dashboard", + "urls": [ + "/${VERSION}/ui-storage-dashboard.html" + ] + }, + { + "title": "Replication Dashboard", + "urls": [ + "/${VERSION}/ui-replication-dashboard.html" + ] + }, + { + "title": "Changefeeds Dashboard", + "urls": [ + "/${VERSION}/ui-cdc-dashboard.html" + ] + }, + { + "title": "Custom Chart", + "urls": [ + "/${VERSION}/ui-custom-chart-debug-page.html" + ] + } + ] + }, + { + "title": "Databases Page", + "urls": [ + "/${VERSION}/ui-databases-page.html" + ] + }, + { + "title": "Sessions Page", + "urls": [ + "/${VERSION}/ui-sessions-page.html" + ] + }, + { + "title": "Statements Page", + "urls": [ + "/${VERSION}/ui-statements-page.html" + ] + }, + { + "title": "Transactions Page", + "urls": [ + "/${VERSION}/ui-transactions-page.html" + ] + }, + { + "title": "Network Latency Page", + "urls": [ + "/${VERSION}/ui-network-latency-page.html" + ] + }, + { + "title": "Jobs Page", + "urls": [ + "/${VERSION}/ui-jobs-page.html" + ] + }, + { + "title": "Advanced Debug Page", + "urls": [ + "/${VERSION}/ui-debug-pages.html" + ] + } + ] + }, + { + "title": "Cluster API", + "urls": [ + "/api/cluster/v2.html" + ] + }, + { + "title": "Logging reference", + "urls": [ + "/${VERSION}/logging.html" + ], + "items": [ + { + "title": "Log formats", + "urls": [ + "/${VERSION}/log-formats.html" + ] + }, + { + "title": "Notable event types", + "urls": [ + "/${VERSION}/eventlog.html" + ] + } + ] + }, + { + "title": "Diagnostics Reporting", + "urls": [ + "/${VERSION}/diagnostics-reporting.html" + ] + }, + {% include_cached cockroachcloud/sidebar-release-notes.json %}, + {% include_cached sidebar-releases.json %} + ] + } \ No newline at end of file From e92eec7fc3042b98c880d260b78bbf5f1dcfcd8c Mon Sep 17 00:00:00 2001 From: ianjevans Date: Tue, 12 Oct 2021 16:14:45 -0700 Subject: [PATCH 68/77] Fixing fragment remote include for Sequelize version. --- _includes/v21.2/misc/tooling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/v21.2/misc/tooling.md b/_includes/v21.2/misc/tooling.md index 1f8cef1f497..af8b53af08c 100644 --- a/_includes/v21.2/misc/tooling.md +++ b/_includes/v21.2/misc/tooling.md @@ -31,7 +31,7 @@ For a list of tools supported by the CockroachDB community, see [Third-Party Too |----------+-----------+-----------------------+---------------+---------------------+----------| | Go | [GORM](https://github.com/jinzhu/gorm/releases)


    [go-pg](https://github.com/go-pg/pg)
    [upper/db](https://github.com/upper/db) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/gorm.go |var gormSupportedTag = "|"\n\n %}


    {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/gopg.go |var gopgSupportedTag = "|"\n\n %}
    v4 | Full


    Full
    Full | [`crdbgorm`](https://pkg.go.dev/github.com/cockroachdb/cockroach-go/crdb/crdbgorm)
    (includes client-side transaction retry handling)
    N/A
    N/A | [Build a Go App with CockroachDB (GORM)](build-a-go-app-with-cockroachdb-gorm.html)


    N/A
    [Build a Go App with CockroachDB (upper/db)](build-a-go-app-with-cockroachdb-upperdb.html) | | Java | [Hibernate](https://hibernate.org/orm/)
    (including [Hibernate Spatial](https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#spatial))
    [jOOQ](https://www.jooq.org/)
    [MyBatis](https://mybatis.org/mybatis-3/) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/hibernate.go |var supportedHibernateTag = "|"\n\n %} (must be 5.4.19)


    3.13.2 (must be 3.13.0)
    3.5.5| Full


    Full
    Full | N/A


    N/A
    N/A | [Build a Java App with CockroachDB (Hibernate)](build-a-java-app-with-cockroachdb-hibernate.html)


    [Build a Java App with CockroachDB (jOOQ)](build-a-java-app-with-cockroachdb-jooq.html)
    [Build a Spring App with CockroachDB (MyBatis)](build-a-spring-app-with-cockroachdb-mybatis.html) | -| JavaScript/TypeScript | [Sequelize](https://www.npmjs.com/package/sequelize)


    [TypeORM](https://www.npmjs.com/package/typeorm) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/sequelize.go |var supportedSequelizeRelease = "|"\n\n %}
    (use latest version of CockroachDB adapter)
    {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/typeorm.go |var supportedTypeORMRelease = "|"\n\n %} | Full


    Full | [`sequelize-cockroachdb`](https://www.npmjs.com/package/sequelize-cockroachdb)


    N/A | [Build a Node.js App with CockroachDB (Sequelize)](build-a-nodejs-app-with-cockroachdb-sequelize.html)


    [Build a TypeScript App with CockroachDB (TypeORM)](build-a-typescript-app-with-cockroachdb.html) | +| JavaScript/TypeScript | [Sequelize](https://www.npmjs.com/package/sequelize)


    [TypeORM](https://www.npmjs.com/package/typeorm) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/sequelize.go |var supportedSequelizeCockroachDBRelease = "|"\n\n %}
    (use latest version of CockroachDB adapter)
    {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/typeorm.go |var supportedTypeORMRelease = "|"\n\n %} | Full


    Full | [`sequelize-cockroachdb`](https://www.npmjs.com/package/sequelize-cockroachdb)


    N/A | [Build a Node.js App with CockroachDB (Sequelize)](build-a-nodejs-app-with-cockroachdb-sequelize.html)


    [Build a TypeScript App with CockroachDB (TypeORM)](build-a-typescript-app-with-cockroachdb.html) | | Ruby | [ActiveRecord](https://rubygems.org/gems/activerecord)
    [RGeo/RGeo-ActiveRecord](https://github.com/cockroachdb/activerecord-cockroachdb-adapter#working-with-spatial-data) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/activerecord.go |var supportedRailsVersion = "|"\nvar %}
    (use latest version of CockroachDB adapter) | Full | [`activerecord-cockroachdb-adapter`](https://rubygems.org/gems/activerecord-cockroachdb-adapter)
    (includes client-side transaction retry handling) | [Build a Ruby App with CockroachDB (ActiveRecord)](build-a-ruby-app-with-cockroachdb-activerecord.html) | | Python | [Django](https://pypi.org/project/Django/)
    (including [GeoDjango](https://docs.djangoproject.com/en/3.1/ref/contrib/gis/))
    [peewee](https://github.com/coleifer/peewee/)
    [PonyORM](https://ponyorm.org/)
    [SQLAlchemy](https://www.sqlalchemy.org/) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/django.go |var djangoSupportedTag = "cockroach-|"\nvar %}
    (use latest version of CockroachDB adapter)

    3.13.3
    0.7.13
    1.4.17
    (use latest version of CockroachDB adapter) | Full


    Full
    Full
    Full | [`django-cockroachdb`](https://pypi.org/project/django-cockroachdb/)


    N/A
    N/A
    [`sqlalchemy-cockroachdb`](https://pypi.org/project/sqlalchemy-cockroachdb)
    (includes client-side transaction retry handling) | [Build a Python App with CockroachDB (Django)](build-a-python-app-with-cockroachdb-django.html)


    N/A (See [peewee docs](http://docs.peewee-orm.com/en/latest/peewee/playhouse.html#cockroach-database).)
    [Build a Python App with CockroachDB (PonyORM)](build-a-python-app-with-cockroachdb-pony.html)
    [Build a Python App with CockroachDB (SQLAlchemy)](build-a-python-app-with-cockroachdb-sqlalchemy.html) | From 874751369be9dd1600d4e82dafe9a11a1fafd88e Mon Sep 17 00:00:00 2001 From: ianjevans Date: Tue, 12 Oct 2021 16:43:31 -0700 Subject: [PATCH 69/77] More remote fragment include fixes for Sequelize. --- _includes/v20.2/misc/tooling.md | 2 +- _includes/v21.1/misc/tooling.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/v20.2/misc/tooling.md b/_includes/v20.2/misc/tooling.md index 1f8cef1f497..af8b53af08c 100644 --- a/_includes/v20.2/misc/tooling.md +++ b/_includes/v20.2/misc/tooling.md @@ -31,7 +31,7 @@ For a list of tools supported by the CockroachDB community, see [Third-Party Too |----------+-----------+-----------------------+---------------+---------------------+----------| | Go | [GORM](https://github.com/jinzhu/gorm/releases)


    [go-pg](https://github.com/go-pg/pg)
    [upper/db](https://github.com/upper/db) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/gorm.go |var gormSupportedTag = "|"\n\n %}


    {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/gopg.go |var gopgSupportedTag = "|"\n\n %}
    v4 | Full


    Full
    Full | [`crdbgorm`](https://pkg.go.dev/github.com/cockroachdb/cockroach-go/crdb/crdbgorm)
    (includes client-side transaction retry handling)
    N/A
    N/A | [Build a Go App with CockroachDB (GORM)](build-a-go-app-with-cockroachdb-gorm.html)


    N/A
    [Build a Go App with CockroachDB (upper/db)](build-a-go-app-with-cockroachdb-upperdb.html) | | Java | [Hibernate](https://hibernate.org/orm/)
    (including [Hibernate Spatial](https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#spatial))
    [jOOQ](https://www.jooq.org/)
    [MyBatis](https://mybatis.org/mybatis-3/) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/hibernate.go |var supportedHibernateTag = "|"\n\n %} (must be 5.4.19)


    3.13.2 (must be 3.13.0)
    3.5.5| Full


    Full
    Full | N/A


    N/A
    N/A | [Build a Java App with CockroachDB (Hibernate)](build-a-java-app-with-cockroachdb-hibernate.html)


    [Build a Java App with CockroachDB (jOOQ)](build-a-java-app-with-cockroachdb-jooq.html)
    [Build a Spring App with CockroachDB (MyBatis)](build-a-spring-app-with-cockroachdb-mybatis.html) | -| JavaScript/TypeScript | [Sequelize](https://www.npmjs.com/package/sequelize)


    [TypeORM](https://www.npmjs.com/package/typeorm) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/sequelize.go |var supportedSequelizeRelease = "|"\n\n %}
    (use latest version of CockroachDB adapter)
    {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/typeorm.go |var supportedTypeORMRelease = "|"\n\n %} | Full


    Full | [`sequelize-cockroachdb`](https://www.npmjs.com/package/sequelize-cockroachdb)


    N/A | [Build a Node.js App with CockroachDB (Sequelize)](build-a-nodejs-app-with-cockroachdb-sequelize.html)


    [Build a TypeScript App with CockroachDB (TypeORM)](build-a-typescript-app-with-cockroachdb.html) | +| JavaScript/TypeScript | [Sequelize](https://www.npmjs.com/package/sequelize)


    [TypeORM](https://www.npmjs.com/package/typeorm) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/sequelize.go |var supportedSequelizeCockroachDBRelease = "|"\n\n %}
    (use latest version of CockroachDB adapter)
    {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/typeorm.go |var supportedTypeORMRelease = "|"\n\n %} | Full


    Full | [`sequelize-cockroachdb`](https://www.npmjs.com/package/sequelize-cockroachdb)


    N/A | [Build a Node.js App with CockroachDB (Sequelize)](build-a-nodejs-app-with-cockroachdb-sequelize.html)


    [Build a TypeScript App with CockroachDB (TypeORM)](build-a-typescript-app-with-cockroachdb.html) | | Ruby | [ActiveRecord](https://rubygems.org/gems/activerecord)
    [RGeo/RGeo-ActiveRecord](https://github.com/cockroachdb/activerecord-cockroachdb-adapter#working-with-spatial-data) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/activerecord.go |var supportedRailsVersion = "|"\nvar %}
    (use latest version of CockroachDB adapter) | Full | [`activerecord-cockroachdb-adapter`](https://rubygems.org/gems/activerecord-cockroachdb-adapter)
    (includes client-side transaction retry handling) | [Build a Ruby App with CockroachDB (ActiveRecord)](build-a-ruby-app-with-cockroachdb-activerecord.html) | | Python | [Django](https://pypi.org/project/Django/)
    (including [GeoDjango](https://docs.djangoproject.com/en/3.1/ref/contrib/gis/))
    [peewee](https://github.com/coleifer/peewee/)
    [PonyORM](https://ponyorm.org/)
    [SQLAlchemy](https://www.sqlalchemy.org/) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/django.go |var djangoSupportedTag = "cockroach-|"\nvar %}
    (use latest version of CockroachDB adapter)

    3.13.3
    0.7.13
    1.4.17
    (use latest version of CockroachDB adapter) | Full


    Full
    Full
    Full | [`django-cockroachdb`](https://pypi.org/project/django-cockroachdb/)


    N/A
    N/A
    [`sqlalchemy-cockroachdb`](https://pypi.org/project/sqlalchemy-cockroachdb)
    (includes client-side transaction retry handling) | [Build a Python App with CockroachDB (Django)](build-a-python-app-with-cockroachdb-django.html)


    N/A (See [peewee docs](http://docs.peewee-orm.com/en/latest/peewee/playhouse.html#cockroach-database).)
    [Build a Python App with CockroachDB (PonyORM)](build-a-python-app-with-cockroachdb-pony.html)
    [Build a Python App with CockroachDB (SQLAlchemy)](build-a-python-app-with-cockroachdb-sqlalchemy.html) | diff --git a/_includes/v21.1/misc/tooling.md b/_includes/v21.1/misc/tooling.md index 1f8cef1f497..af8b53af08c 100644 --- a/_includes/v21.1/misc/tooling.md +++ b/_includes/v21.1/misc/tooling.md @@ -31,7 +31,7 @@ For a list of tools supported by the CockroachDB community, see [Third-Party Too |----------+-----------+-----------------------+---------------+---------------------+----------| | Go | [GORM](https://github.com/jinzhu/gorm/releases)


    [go-pg](https://github.com/go-pg/pg)
    [upper/db](https://github.com/upper/db) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/gorm.go |var gormSupportedTag = "|"\n\n %}


    {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/gopg.go |var gopgSupportedTag = "|"\n\n %}
    v4 | Full


    Full
    Full | [`crdbgorm`](https://pkg.go.dev/github.com/cockroachdb/cockroach-go/crdb/crdbgorm)
    (includes client-side transaction retry handling)
    N/A
    N/A | [Build a Go App with CockroachDB (GORM)](build-a-go-app-with-cockroachdb-gorm.html)


    N/A
    [Build a Go App with CockroachDB (upper/db)](build-a-go-app-with-cockroachdb-upperdb.html) | | Java | [Hibernate](https://hibernate.org/orm/)
    (including [Hibernate Spatial](https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#spatial))
    [jOOQ](https://www.jooq.org/)
    [MyBatis](https://mybatis.org/mybatis-3/) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/hibernate.go |var supportedHibernateTag = "|"\n\n %} (must be 5.4.19)


    3.13.2 (must be 3.13.0)
    3.5.5| Full


    Full
    Full | N/A


    N/A
    N/A | [Build a Java App with CockroachDB (Hibernate)](build-a-java-app-with-cockroachdb-hibernate.html)


    [Build a Java App with CockroachDB (jOOQ)](build-a-java-app-with-cockroachdb-jooq.html)
    [Build a Spring App with CockroachDB (MyBatis)](build-a-spring-app-with-cockroachdb-mybatis.html) | -| JavaScript/TypeScript | [Sequelize](https://www.npmjs.com/package/sequelize)


    [TypeORM](https://www.npmjs.com/package/typeorm) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/sequelize.go |var supportedSequelizeRelease = "|"\n\n %}
    (use latest version of CockroachDB adapter)
    {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/typeorm.go |var supportedTypeORMRelease = "|"\n\n %} | Full


    Full | [`sequelize-cockroachdb`](https://www.npmjs.com/package/sequelize-cockroachdb)


    N/A | [Build a Node.js App with CockroachDB (Sequelize)](build-a-nodejs-app-with-cockroachdb-sequelize.html)


    [Build a TypeScript App with CockroachDB (TypeORM)](build-a-typescript-app-with-cockroachdb.html) | +| JavaScript/TypeScript | [Sequelize](https://www.npmjs.com/package/sequelize)


    [TypeORM](https://www.npmjs.com/package/typeorm) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/sequelize.go |var supportedSequelizeCockroachDBRelease = "|"\n\n %}
    (use latest version of CockroachDB adapter)
    {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/typeorm.go |var supportedTypeORMRelease = "|"\n\n %} | Full


    Full | [`sequelize-cockroachdb`](https://www.npmjs.com/package/sequelize-cockroachdb)


    N/A | [Build a Node.js App with CockroachDB (Sequelize)](build-a-nodejs-app-with-cockroachdb-sequelize.html)


    [Build a TypeScript App with CockroachDB (TypeORM)](build-a-typescript-app-with-cockroachdb.html) | | Ruby | [ActiveRecord](https://rubygems.org/gems/activerecord)
    [RGeo/RGeo-ActiveRecord](https://github.com/cockroachdb/activerecord-cockroachdb-adapter#working-with-spatial-data) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/activerecord.go |var supportedRailsVersion = "|"\nvar %}
    (use latest version of CockroachDB adapter) | Full | [`activerecord-cockroachdb-adapter`](https://rubygems.org/gems/activerecord-cockroachdb-adapter)
    (includes client-side transaction retry handling) | [Build a Ruby App with CockroachDB (ActiveRecord)](build-a-ruby-app-with-cockroachdb-activerecord.html) | | Python | [Django](https://pypi.org/project/Django/)
    (including [GeoDjango](https://docs.djangoproject.com/en/3.1/ref/contrib/gis/))
    [peewee](https://github.com/coleifer/peewee/)
    [PonyORM](https://ponyorm.org/)
    [SQLAlchemy](https://www.sqlalchemy.org/) | {% remote_include https://raw.githubusercontent.com/cockroachdb/cockroach/master/pkg/cmd/roachtest/tests/django.go |var djangoSupportedTag = "cockroach-|"\nvar %}
    (use latest version of CockroachDB adapter)

    3.13.3
    0.7.13
    1.4.17
    (use latest version of CockroachDB adapter) | Full


    Full
    Full
    Full | [`django-cockroachdb`](https://pypi.org/project/django-cockroachdb/)


    N/A
    N/A
    [`sqlalchemy-cockroachdb`](https://pypi.org/project/sqlalchemy-cockroachdb)
    (includes client-side transaction retry handling) | [Build a Python App with CockroachDB (Django)](build-a-python-app-with-cockroachdb-django.html)


    N/A (See [peewee docs](http://docs.peewee-orm.com/en/latest/peewee/playhouse.html#cockroach-database).)
    [Build a Python App with CockroachDB (PonyORM)](build-a-python-app-with-cockroachdb-pony.html)
    [Build a Python App with CockroachDB (SQLAlchemy)](build-a-python-app-with-cockroachdb-sqlalchemy.html) | From cf0faee53e9c81f96848a2f68d3c6bc3d6a9bb18 Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Wed, 13 Oct 2021 13:08:49 -0400 Subject: [PATCH 70/77] add beta info to faq --- cockroachcloud/serverless-faqs.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cockroachcloud/serverless-faqs.md b/cockroachcloud/serverless-faqs.md index b8a117cbadf..fb4a409d8af 100644 --- a/cockroachcloud/serverless-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -56,6 +56,10 @@ To connect to a cluster, download the CA certificate, and then generate a connec ## Beta release +### What does it mean for {{ site.data.products.serverless }} to be in beta? + +{{ site.data.products.serverless }} is in beta while we continue to add new features and improve our own testing for existing features. We don’t provide a Support Policy or Service Level Agreement (SLA) for beta products. + ### Where can I submit feedback or bugs on the beta? You can submit feedback or log any bugs you find through [this survey](https://forms.gle/jWNgmCFtF4y15ePw5). From bbd8f496d42629cb110c0ebbf0bee2a6ccea04ed Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Wed, 13 Oct 2021 13:41:51 -0400 Subject: [PATCH 71/77] benchmarking new numbers (graph not updated) --- cockroachcloud/serverless-benchmarking.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cockroachcloud/serverless-benchmarking.md b/cockroachcloud/serverless-benchmarking.md index 273bb9181f3..b15d234ae4c 100644 --- a/cockroachcloud/serverless-benchmarking.md +++ b/cockroachcloud/serverless-benchmarking.md @@ -8,7 +8,7 @@ This page describes {{ site.data.products.serverless }} performance benchmarking ## Introduction -{{ site.data.products.serverless }} is a fully-managed, auto-scaling deployment of CockroachDB. This page describes what you can expect from the free {{ site.data.products.serverless-plan }} baseline performance of 100 RU/s. Results for [burst performance](architecture.html#concepts) and Serverless clusters with larger budgets are coming soon. For more information about how {{ site.data.products.serverless-plan }} scales based on your workload, see [Architecture](architecture.html#performance). +{{ site.data.products.serverless }} is a fully-managed, auto-scaling deployment of CockroachDB. This page describes what you can expect from the free {{ site.data.products.serverless-plan }} baseline performance of 100 RU/s and the burst performance for the same cluster. For more information about how {{ site.data.products.serverless-plan }} scales based on your workload, see [Architecture](architecture.html#performance). ### What are RUs? @@ -18,13 +18,17 @@ Most resource usage in {{ site.data.products.serverless }} is measured in Reques KV 95 is a simple benchmark that tests linear scaling by [running a workload](../{{site.versions["stable"]}}/cockroach-workload.html#workloads) that is 95% point reads and 5% point writes. Reads and writes are distributed to keys spread uniformly across the cluster. -## Baseline Performance +## Baseline performance Baseline performance was benchmarked for a free CockroachDB Serverless cluster running in an Organization without billing information on file. This is the level of performance guaranteed for all clusters that have run out of Burst capacity and are throttled. Serverless performance -This chart shows the linear consumption of RUs by a CockroachDB Serverless cluster under a constant [KV 95](#what-is-kv-95) workload. The total number of RUs consumed over 10 minutes is about 228,655. The cluster is performing about 318 operations per second, and each operation (a point read or write) is consuming about 1.2 RUs. These results have been adjusted for a constant overhead of 5 RU/s that is unrelated to the workload. +This chart shows the linear consumption of RUs by a CockroachDB Serverless cluster under a constant [KV 95](#what-is-kv-95) workload. The total number of RUs consumed over one hour is 436,876. The cluster is performing about 40 operations per second, and each operation (a point read or write) is consuming about 3 RUs. We can calculate that (40 operations/sec * 3 RUs/operation) gives us a performance of 120 RU/s. These results have been adjusted for a constant overhead of 5 RU/s that is unrelated to the workload. + +## Burst performance + +When not throttled to baseline performance, the same cluster we benchmarked above used 3,325,231 RUs over five minutes, performing 4,325 operations per second and using an average of 2.56 RUs per operation. This gives us a burst performance rate of 11,072 RU/s. ## Learn more From 117dd1fd85b0475c6da6c377d5d4f90d3a58188f Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Wed, 13 Oct 2021 13:44:43 -0400 Subject: [PATCH 72/77] caps typo --- cockroachcloud/serverless-benchmarking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cockroachcloud/serverless-benchmarking.md b/cockroachcloud/serverless-benchmarking.md index b15d234ae4c..bc96740f75d 100644 --- a/cockroachcloud/serverless-benchmarking.md +++ b/cockroachcloud/serverless-benchmarking.md @@ -20,7 +20,7 @@ KV 95 is a simple benchmark that tests linear scaling by [running a workload](.. ## Baseline performance -Baseline performance was benchmarked for a free CockroachDB Serverless cluster running in an Organization without billing information on file. This is the level of performance guaranteed for all clusters that have run out of Burst capacity and are throttled. +Baseline performance was benchmarked for a free CockroachDB Serverless cluster running in an Organization without billing information on file. This is the level of performance guaranteed for all clusters that have run out of burst capacity and are throttled. Serverless performance From 15d23b3f3c826108531e86a91b6cb81f8904c200 Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Wed, 13 Oct 2021 14:01:50 -0400 Subject: [PATCH 73/77] clarifications and andy's review --- .../cockroachcloud/planning-your-serverless-cluster.md | 2 +- cockroachcloud/architecture.md | 10 +++++----- cockroachcloud/create-a-serverless-cluster.md | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index b5c78ea79ea..c3f75fd256b 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -4,7 +4,7 @@ Most resource usage in {{ site.data.products.serverless }} is measured in Reques ### Cluster scaling -{{ site.data.products.serverless }} clusters scale based on your workload. Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](architecture.html#concepts). Clusters start with 10M RUs of free burst capacity and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated. If you use all of your burst capacity and earned RUs, your cluster will revert to baseline performance. +{{ site.data.products.serverless }} clusters scale based on your workload. Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](architecture.html#concepts). Clusters start with 10M RUs of free burst capacity and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated. If you use all of your burst capacity, your cluster will revert to baseline performance. You can set your spend limit higher to maintain a high level of performance with larger workloads. If you have a spend limit, your cluster will not be throttled to baseline performance once you use all of your free earned RUs. Instead, it will continue to use burst performance as needed until you reach your spend limit. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of 100 RUs per second. diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 1eb22c4680d..a9c3f414d53 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -39,7 +39,7 @@ The following diagram is a high-level representation of what a typical Serverles Proxy pods allow many tenants to share the same IP address, balance loads across a tenant’s available SQL pods, and automatically resume tenant clusters that have been paused due to inactivity. They also detect and respond to suspected abuse of the service. -After the cloud load balancer routes a new connection to one of the proxy pods, the proxy pod will in turn forward that connection to a SQL pod owned by the connecting tenant. Each SQL pod is dedicated to just one tenant, and multiple SQL pods can be owned by the same tenant. Network security rules prevent SQL pods from talking to one another unless they are owned by the same tenant. +After the cloud load balancer routes a new connection to one of the proxy pods, the proxy pod will in turn forward that connection to a SQL pod owned by the connecting tenant. Each SQL pod is dedicated to just one tenant, and multiple SQL pods can be owned by the same tenant. Network security rules prevent SQL pods from communicating with one another unless they are owned by the same tenant. Finally, the SQL pods communicate with the KV layer to access data managed by the shared storage pods, each of which stores that data in an [AWS](https://aws.amazon.com/ebs/features/) or [GCP](https://cloud.google.com/compute/docs/disks#pdspecs) block storage system. @@ -47,15 +47,15 @@ Finally, the SQL pods communicate with the KV layer to access data managed by th #### Baseline -Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](#concepts). Serverless clusters scale based on your workload. Clusters start with 10M RUs of free burst capacity and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used for burst performance, and once they have been used the cluster will revert to the baseline performance of 100 RUs per second. +Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](#concepts). Clusters start with 10M RUs of free burst capacity and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated. If you use all of your burst capacity, your cluster will revert to baseline performance. #### Paid -If you set a spend limit, your cluster will not be throttled to baseline performance once you use all of your free earned RUs. Instead, it will continue to use burst performance as needed until you reach the spend limit. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of 100 RUs per second. All [Console Admins](console-access-management.html#console-admin) will receive email alerts when your cluster reaches 50%, 75%, and 100% of its spend limit, burst capacity, or storage limit. +You can set your spend limit higher to maintain a high level of performance with larger workloads. If you have a spend limit, your cluster will not be throttled to baseline performance once you use all of your free earned RUs. Instead, it will continue to use burst performance as needed until you reach your spend limit. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of 100 RUs per second. Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for burst performance, and vice versa. If you hit your spend limit, your cluster will be throttled down to baseline performance levels. If this occurs, you can opt to increase your spend limit, adjust your workload to stay within the current spend limit, or stay at the baseline performance level until the next month. -Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst performance. You can theoretically reach your spend limit for burst performance in the first few minutes of a cluster being created. If this happens, the cluster will be throttled back to the baseline performance and can reaccumulate burst capacity by using fewer RUs. +Storage always gets first priority in the budget since you need to be able to store your data first and foremost. The remainder of the budget is allocated to burst performance. You can theoretically reach your spend limit on burst performance in the first few minutes of a cluster being created. If this happens, the cluster will be throttled back to the baseline performance and can reaccumulate burst capacity by using fewer RUs. #### Autoscaling @@ -75,7 +75,7 @@ If you need a single-tenant cluster with no shared resources, we recommend {{ si ### Hardware -We use the Kubernetes offerings in AWS and GCP (EKS and GKE respectively) to run {{ site.data.products.db }} offerings. GCP clusters use [N1 standard](https://cloud.google.com/compute/docs/machine-types#n1_machine_types) machine types and [Persistent Disk storage](https://cloud.google.com/compute/docs/disks#pdspecs). AWS clusters use [M5 instance types](https://aws.amazon.com/ec2/instance-types/m5/#Product_Details) and [Elastic Block Store (EBS)](https://aws.amazon.com/ebs/features/). Each single region cluster has a minimum of three nodes spread across three availability zones (AZ) in a cloud provider region. Multi-region clusters are similar to single-region clusters, with nodes spread across three or more AZs in each region. +We use the Kubernetes offerings in AWS and GCP (EKS and GKE respectively) to run {{ site.data.products.db }} offerings. GCP clusters use [N1 standard](https://cloud.google.com/compute/docs/machine-types#n1_machine_types) machine types and [Persistent Disk storage](https://cloud.google.com/compute/docs/disks#pdspecs). AWS clusters use [M5 instance types](https://aws.amazon.com/ec2/instance-types/m5/#Product_Details) and [Elastic Block Store (EBS)](https://aws.amazon.com/ebs/features/). Each single-region cluster has a minimum of three nodes spread across three availability zones (AZ) in a cloud provider region. Multi-region clusters are similar to single-region clusters, with nodes spread across three or more AZs in each region. ### Security and Connection diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 238582e4631..8c67854cefb 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -32,7 +32,7 @@ If you haven't already,
    Date: Thu, 14 Oct 2021 12:25:25 -0400 Subject: [PATCH 75/77] nit and overhead RU addition to FAQ --- _includes/cockroachcloud/planning-your-serverless-cluster.md | 2 +- cockroachcloud/architecture.md | 2 +- cockroachcloud/create-a-serverless-cluster.md | 2 +- cockroachcloud/serverless-faqs.md | 4 ++++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index c3f75fd256b..6d2d6af2c25 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -4,7 +4,7 @@ Most resource usage in {{ site.data.products.serverless }} is measured in Reques ### Cluster scaling -{{ site.data.products.serverless }} clusters scale based on your workload. Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](architecture.html#concepts). Clusters start with 10M RUs of free burst capacity and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated. If you use all of your burst capacity, your cluster will revert to baseline performance. +{{ site.data.products.serverless }} clusters scale based on your workload. Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](architecture.html#concepts). Clusters start with 10M RUs of free burst capacity and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated as burst capacity. If you use all of your burst capacity, your cluster will revert to baseline performance. You can set your spend limit higher to maintain a high level of performance with larger workloads. If you have a spend limit, your cluster will not be throttled to baseline performance once you use all of your free earned RUs. Instead, it will continue to use burst performance as needed until you reach your spend limit. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of 100 RUs per second. diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index a9c3f414d53..c07d001e46f 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -47,7 +47,7 @@ Finally, the SQL pods communicate with the KV layer to access data managed by th #### Baseline -Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](#concepts). Clusters start with 10M RUs of free burst capacity and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated. If you use all of your burst capacity, your cluster will revert to baseline performance. +Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](#concepts). Clusters start with 10M RUs of free burst capacity and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated as burst capacity. If you use all of your burst capacity, your cluster will revert to baseline performance. #### Paid diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 8c67854cefb..fe1f497a421 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -32,7 +32,7 @@ If you haven't already, - - - - - {% include cockroachcloud/free-limitations.md %} ## Step 1. Create a free cluster @@ -55,7 +44,6 @@ The **Connection info** dialog shows information about how to connect to your cl -
    1. In the **Connection info** dialog, choose your OS. 1. Open a terminal on your local machine. 1. Run the commands in each step of the **Command Line** tab of the **Connection info** dialog. @@ -73,104 +61,6 @@ You will see a welcome message when you've successfully connected to your cluste # ~~~ -
    -
    {% comment %}Need to add this manual break to force Jekyll to render the next section correctly {% endcomment %} -
    - -1. In the **Connection info** dialog choose your OS. - -1. Open a terminal on your local machine. - -1. Run the command in step 1 of the **Command Line** tab of the **Connection info** dialog to install the CockroachDB binary and add it to your OS's `PATH`. - - We've included the command here for convenience: - -
    - {% include_cached copy-clipboard.html %} - ~~~ shell - curl https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.darwin-10.9-amd64.tgz | tar -xJ && cp -i cockroach-{{ page.release_info.version }}.darwin-10.9-amd64/cockroach /usr/local/bin/ - ~~~ -
    - -
    - {% include_cached copy-clipboard.html %} - ~~~ shell - curl https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.linux-amd64.tgz | tar -xz && sudo cp -i cockroach-{{ page.release_info.version }}.linux-amd64/cockroach /usr/local/bin/ - ~~~ -
    - -
    - {% include_cached copy-clipboard.html %} - ~~~ shell - $ErrorActionPreference = "Stop"; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; - $ProgressPreference = 'SilentlyContinue'; - # Use Windows New-Item with Force - $null = New-Item -Type Directory -Force $env:appdata/cockroach; - Invoke-WebRequest -Uri https://binaries.cockroachdb.com/cockroach-{{ page.release_info.version }}.windows-6.2-amd64.zip -OutFile cockroach.zip; - Expand-Archive -Path cockroach.zip; - # Add force if the cockroach binary is already there - Copy-Item -Force "cockroach/cockroach-{{ page.release_info.version }}.windows-6.2-amd64/cockroach.exe" -Destination $env:appdata/cockroach; - $Env:PATH += ";$env:appdata/cockroach"; - # Add command to append the cockroach binary path on every shell. Powershell equivalent of `.bashrc` - Add-Content -Path C:\Users\$env:UserName\Documents\WindowsPowerShell\profile.ps1 -Value '$Env:PATH += ";$env:appdata/cockroach"' - ~~~ -
    - -1. Run the command in step 2 of the **Command Line** tab of the **Connection info** dialog to download the CA certificate to your local machine. - - We've included the command here for convenience but with some placeholder values. It's easiest to use the command directly from the **Connection info** dialog. - -
    - {% include_cached copy-clipboard.html %} - ~~~ shell - curl --create-dirs -o ~/.postgresql/root.crt -O https://cockroachlabs.cloud/clusters//cert - ~~~ - - Your `cert` file will be downloaded to `~/.postgres/root.crt`. -
    - -
    - {% include_cached copy-clipboard.html %} - ~~~ shell - curl --create-dirs -o ~/.postgresql/root.crt -O https://cockroachlabs.cloud/clusters//cert - ~~~ - - Your `cert` file will be downloaded to `~/.postgres/root.crt`. -
    - -
    - {% include_cached copy-clipboard.html %} - ~~~ shell - mkdir -p $env:appdata\.postgresql\; Invoke-WebRequest -Uri https://cockroachlabs.cloud/clusters//cert -OutFile $env:appdata\.postgresql\root.crt - ~~~ - - Your `cert` file will be downloaded to `%APPDATA%/.postgres/root.crt`. -
    - - Where `` is the ID of the cluster. You can find the cluster ID in step 2 of the **Command Line** tab in the **Connect** dialog. - - {{site.data.alerts.callout_info}} - The `~/.postgres/root.crt` (Mac and Linux) or `%APPDATA%/.postgres/root.crt` is the [default location for CA certificates](https://www.postgresql.org/docs/current/libpq-ssl.html) when using PostgreSQL drivers and ORMs. - {{site.data.alerts.end}} - -1. Run the command in step 3 of the **Command Line** tab in the **Connection info** dialog. Your username, password, host, and cluster name are pre-populated for you in the dialog. - - We've included the command here for convenience but with some placeholder values. It's easiest to use the command directly from the **Connection info** dialog. - - {% include cockroachcloud/sql-connection-string-free.md %} - - A welcome message displays: - - ~~~ - # - # Welcome to the CockroachDB SQL shell. - # All statements must be terminated by a semicolon. - # To exit, type: \q. - # - ~~~ - -
    - ## Step 3. Insert data 1. You can now run [CockroachDB SQL statements](learn-cockroachdb-sql.html): From 97a7358d5ad368d1a54d991e5a3fb15b7a46525e Mon Sep 17 00:00:00 2001 From: Gemma Shay <75328174+gemma-shay@users.noreply.github.com> Date: Fri, 15 Oct 2021 19:35:29 -0400 Subject: [PATCH 77/77] lakshmi review and various nits --- .../cockroachcloud-ask-admin.md | 2 +- .../planning-your-serverless-cluster.md | 4 +- _includes/v19.1/cockroachcloud-ask-admin.md | 2 +- _includes/v19.2/cockroachcloud-ask-admin.md | 2 +- cockroachcloud/architecture.md | 14 +-- cockroachcloud/console-access-management.md | 2 +- cockroachcloud/create-a-serverless-cluster.md | 4 +- cockroachcloud/free-faqs.md | 99 ------------------- cockroachcloud/frequently-asked-questions.md | 2 +- cockroachcloud/quickstart.md | 2 +- cockroachcloud/serverless-benchmarking.md | 4 +- cockroachcloud/serverless-faqs.md | 9 +- cockroachcloud/user-authorization.md | 2 +- releases/index-cockroachcloud.md | 2 +- 14 files changed, 25 insertions(+), 125 deletions(-) delete mode 100644 cockroachcloud/free-faqs.md diff --git a/_includes/cockroachcloud/cockroachcloud-ask-admin.md b/_includes/cockroachcloud/cockroachcloud-ask-admin.md index 87c020c2f3b..c45ebe5296d 100644 --- a/_includes/cockroachcloud/cockroachcloud-ask-admin.md +++ b/_includes/cockroachcloud/cockroachcloud-ask-admin.md @@ -1,3 +1,3 @@ {{site.data.alerts.callout_info}} -Only [Console Admins](console-access-management.html#console-admin) can create SQL users. If you are a [Developer](console-access-management.html#developer), you need to ask your Console Admin for the credentials of a SQL user to access the cluster. To find out who's your Console Admin, [log in](https://cockroachlabs.cloud/) and navigate to **Cluster Overview** > **Access**. +Only [Console Admins](console-access-management.html#console-admin) can create SQL users. If you are a [Developer](console-access-management.html#developer), you need to ask your Console Admin for the credentials of a SQL user to access the cluster. To find out who your Console Admin is, [log in](https://cockroachlabs.cloud/) and navigate to **Cluster Overview** > **Access**. {{site.data.alerts.end}} diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index 6d2d6af2c25..e6d4e4c08d5 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -1,10 +1,10 @@ ### Request Units -Most resource usage in {{ site.data.products.serverless }} is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 2 RUs, and a "large read" such as a full table scan with indexes could cost a large number of RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. +{{ site.data.products.serverless }} cluster resource usage is measured by two metrics: storage and Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 2 RUs, and a "large read" such as a full table scan with indexes could cost a large number of RUs. You can see how many request units your cluster has used on the [Cluster Overview](#view-cluster-overview) page. ### Cluster scaling -{{ site.data.products.serverless }} clusters scale based on your workload. Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](architecture.html#concepts). Clusters start with 10M RUs of free burst capacity and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated as burst capacity. If you use all of your burst capacity, your cluster will revert to baseline performance. +{{ site.data.products.serverless }} clusters scale based on your workload. Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](architecture.html#concepts). Clusters start with 10M RUs of free burst capacity each month and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated as burst capacity. If you use all of your burst capacity, your cluster will revert to baseline performance. You can set your spend limit higher to maintain a high level of performance with larger workloads. If you have a spend limit, your cluster will not be throttled to baseline performance once you use all of your free earned RUs. Instead, it will continue to use burst performance as needed until you reach your spend limit. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, your cluster will revert to the baseline performance of 100 RUs per second. diff --git a/_includes/v19.1/cockroachcloud-ask-admin.md b/_includes/v19.1/cockroachcloud-ask-admin.md index e82e7d709b0..d6a5b7b2f65 100644 --- a/_includes/v19.1/cockroachcloud-ask-admin.md +++ b/_includes/v19.1/cockroachcloud-ask-admin.md @@ -1,3 +1,3 @@ {{site.data.alerts.callout_info}} -Only [Console Admins](console-access-management.html#console-admin) can create SQL users. If you are a [Developer](console-access-management.html#developer), you need to ask your Console Admin for the credentials of a SQL user to access the database. To find out who's your Console Admin, [sign in to the Console](sign-up-for-a-cluster.html#sign-in) and navigate to **Cluster Overview** > **Access**. +Only [Console Admins](console-access-management.html#console-admin) can create SQL users. If you are a [Developer](console-access-management.html#developer), you need to ask your Console Admin for the credentials of a SQL user to access the database. To find out who your Console Admin is, [sign in to the Console](sign-up-for-a-cluster.html#sign-in) and navigate to **Cluster Overview** > **Access**. {{site.data.alerts.end}} diff --git a/_includes/v19.2/cockroachcloud-ask-admin.md b/_includes/v19.2/cockroachcloud-ask-admin.md index 80ec99fa434..ef803493947 100644 --- a/_includes/v19.2/cockroachcloud-ask-admin.md +++ b/_includes/v19.2/cockroachcloud-ask-admin.md @@ -1,3 +1,3 @@ {{site.data.alerts.callout_info}} -Only [Console Admins](console-access-management.html#console-admin) can create SQL users. If you are a [Developer](console-access-management.html#developer), you need to ask your Console Admin for the credentials of a SQL user to access the database. To find out who's your Console Admin, [log in](https://cockroachlabs.cloud/) and navigate to **Cluster Overview** > **Access**. +Only [Console Admins](console-access-management.html#console-admin) can create SQL users. If you are a [Developer](console-access-management.html#developer), you need to ask your Console Admin for the credentials of a SQL user to access the database. To find out who your Console Admin is, [log in](https://cockroachlabs.cloud/) and navigate to **Cluster Overview** > **Access**. {{site.data.alerts.end}} diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index c07d001e46f..b542970129b 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -24,22 +24,22 @@ Term | Definition **Serverless cluster** | A cluster that’s automatically billed and scaled in response to the resources it consumes (as opposed to a Dedicated cluster, which is billed for resources provisioned). **Request Unit (RU)** | Request Units represent the compute and I/O resources used by a query. All database operations in {{ site.data.products.serverless-plan }} cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 2 RUs, and a "large read" such as a full table scan with indexes could cost a large number RUs. You can see how many Request Units your cluster has used on the [**Cluster Overview**](serverless-cluster-management.html#view-cluster-overview) page. **Spend limit** | The maximum amount of money you indicate you want to be billed in a particular billing period for a cluster. The actual amount you are billed is based on the resources used during that billing period. A cluster's budget is allocated across storage and burst performance. -**Projected usage** | The amount of usage that Cockroach Labs projects a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because we always reserve enough budget to pay for storage for the rest of the billing period. +**Projected usage** | The amount of usage that Cockroach Labs projects a cluster will consume during a billing period. This is important for setting a cluster’s spend limit, because we always reserve enough budget to pay for storage for the rest of the billing period. You can see your projected usage while [editing your spend limit](serverless-cluster-management.html#edit-your-spend-limit). **Baseline performance** | The minimum compute and I/O performance that you can expect from your cluster at all times. This is 100 RUs per second for all Serverless clusters (free and paid). The actual usage of a cluster may be lower than the baseline performance depending on application traffic, because not every application will need 100 RU/s at all times.  -**Burst capacity** | Burst capacity is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can earn Request Units that can be used for burst capacity for the rest of the month.  +**Burst performance** | Burst performance is the ability of the Serverless cluster to perform above the baseline. Supporting application traffic that “bursts,” i.e., can fluctuate above baseline traffic, is a key feature of Serverless clusters. Every Serverless cluster starts with a certain amount of burst performance capacity. If the actual usage of a cluster is lower than the baseline performance, the cluster can earn Request Units that can be used for burst performance for the rest of the month.  **Storage** | Disk space for permanently storing data over time. All data in {{ site.data.products.serverless }} is automatically replicated three times and distributed across Availability Zones to survive outages. Storage is measured in units of GiB-months, which is the amount of data stored multiplied by how long it was stored. Storing 10 GiB for a month and storing 1 GiB for 10 months are both 10 GiB-months. The storage you see in the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page is the amount of data before considering the replication multiplier. ### Architecture -Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes (K8s) cluster that hosts CockroachDB. Each node runs in its own K8s pod, which allows {{ site.data.products.serverless }} to limit SQL resource consumption for each tenant. It also minimizes interference between pods that are scheduled on the same machine, giving each tenant a high-quality experience even when other tenants are running heavy workloads. +Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes (K8s) cluster that hosts CockroachDB. K8s pods allow {{ site.data.products.serverless }} to limit SQL resource consumption for each user. It also minimizes interference between pods that are scheduled on the same machine, giving each user a high-quality experience even when other users are running heavy workloads. The following diagram is a high-level representation of what a typical Serverless cluster looks like: Serverless architecture -Proxy pods allow many tenants to share the same IP address, balance loads across a tenant’s available SQL pods, and automatically resume tenant clusters that have been paused due to inactivity. They also detect and respond to suspected abuse of the service. +Proxy pods allow many users to share the same IP address, balance loads across a user's available SQL pods, and automatically resume clusters that have been paused due to inactivity. They also detect and respond to suspected abuse of the service. -After the cloud load balancer routes a new connection to one of the proxy pods, the proxy pod will in turn forward that connection to a SQL pod owned by the connecting tenant. Each SQL pod is dedicated to just one tenant, and multiple SQL pods can be owned by the same tenant. Network security rules prevent SQL pods from communicating with one another unless they are owned by the same tenant. +After the cloud load balancer routes a new connection to one of the proxy pods, the proxy pod will in turn forward that connection to a SQL pod owned by the connecting user. Each SQL pod is dedicated to just one user, and multiple SQL pods can be owned by the same user. Network security rules prevent SQL pods from communicating with one another unless they are owned by the same user. Finally, the SQL pods communicate with the KV layer to access data managed by the shared storage pods, each of which stores that data in an [AWS](https://aws.amazon.com/ebs/features/) or [GCP](https://cloud.google.com/compute/docs/disks#pdspecs) block storage system. @@ -47,7 +47,7 @@ Finally, the SQL pods communicate with the KV layer to access data managed by th #### Baseline -Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](#concepts). Clusters start with 10M RUs of free burst capacity and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated as burst capacity. If you use all of your burst capacity, your cluster will revert to baseline performance. +Baseline performance for a Serverless cluster is 100 RUs per second, and any usage above that is called [burst performance](#concepts). Clusters start with 10M RUs of free burst capacity each month and earn 100 RUs per second up to a maximum of 250M free RUs per month. Earned RUs can be used immediately or accumulated as burst capacity. If you use all of your burst capacity, your cluster will revert to baseline performance. #### Paid @@ -59,7 +59,7 @@ Storage always gets first priority in the budget since you need to be able to st #### Autoscaling -Serverless clusters also have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for the storage your app is using, but not for Request Units. To avoid wasted resources, {{ site.data.products.db }} automatically pauses Serverless clusters that are inactive, which is defined by having no connection to the cluster for two consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). +Serverless clusters also have the ability to scale to zero and consume no compute resources when there are no active queries. When there are no active queries, you will pay for the storage your app is using, but not for Request Units. To avoid wasted resources, {{ site.data.products.db }} automatically pauses Serverless clusters that are inactive, which is defined by having no connection to the cluster for five consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). The diagram below shows how {{ site.data.products.serverless }} autoscales in four different scenarios: diff --git a/cockroachcloud/console-access-management.md b/cockroachcloud/console-access-management.md index e09b54051d1..fe72659eb2a 100644 --- a/cockroachcloud/console-access-management.md +++ b/cockroachcloud/console-access-management.md @@ -31,7 +31,7 @@ Every {{ site.data.products.db }} user is either a Developer or a Console Admin A Developer is a limited-access role. A Developer cannot invite Team Members to the Console or create new SQL users. -To access a cluster, you need to ask a Console Admin for the username and password of a SQL user. To find out who's your Console Admin, check the **Access** page. +To access a cluster, you need to ask a Console Admin for the username and password of a SQL user. To find out who your Console Admin is, check the **Access** page. ### Console Admin diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index fe1f497a421..2b8f4a3f62b 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -32,14 +32,14 @@ If you haven't already,
    diff --git a/cockroachcloud/free-faqs.md b/cockroachcloud/free-faqs.md deleted file mode 100644 index d6aaca77fcc..00000000000 --- a/cockroachcloud/free-faqs.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: CockroachCloud Free (beta) FAQs -summary: Get answers to frequently asked questions about CockroachCloud Free (beta) -toc: true ---- - -This page answers the frequently asked questions about {{ site.data.products.serverless }} and the paid version of {{ site.data.products.dedicated }}. - - - -## General - -### What is {{ site.data.products.serverless }}? - -{{ site.data.products.serverless }} delivers free CockroachDB clusters for you and your organization. It is a managed instance of CockroachDB that removes the friction of initial cluster sizing and auto-scales based on your application traffic. - -### How do I start using {{ site.data.products.serverless }}? - -To get started with {{ site.data.products.serverless }}, sign up for a {{ site.data.products.db }} account, click **Create Cluster**, then click **Create your free cluster**. Your cluster will be ready in 20-30 seconds. For more information, see [**Quickstart**](quickstart.html). - -### What are the usage limits of Cockroach Cloud Free (beta)? - -There is an upper limit of usage of up to 1 vCPU and 5GB storage per free cluster. If you hit the storage limit, you will receive an email asking you to delete enough data to stay under the 5GB limit. If you do not respond within the next 30 days, you will be blocked from accessing your cluster. - -### Do I have to pay for {{ site.data.products.serverless }}? - -No, you do not have to pay anything. {{ site.data.products.serverless }} is free forever. - -### What can I use {{ site.data.products.serverless }} for? - -{{ site.data.products.serverless }} can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). - -For examples of applications that use {{ site.data.products.serverless }}, check out the following [Hack the North](https://hackthenorth.com/) projects: - -- [flock](https://devpost.com/software/flock-figure-out-what-film-to-watch-with-friends) -- [mntr.tech](https://devpost.com/software/mntr-tech) -- [curbshop.online](https://devpost.com/software/curbshop-online) - -### What are the limitations of {{ site.data.products.serverless }}? - -{{ site.data.products.serverless-plan }} is currently in beta and there are capabilities we are still working on enabling, such as no-downtime upgrades to a paid cluster. If you want to try out a paid cluster, you can get a [30-day trial of {{ site.data.products.dedicated }}](quickstart-trial-cluster.html). - -### How do I connect to my cluster? - -To connect to a cluster, download the CA certificate, and then generate a connection string or parameters. You can use this information to connect to your cluster through the CockroachDB SQL client or a Postgres-compatible driver or ORM. For more details, see [Connect to Your Cluster](connect-to-your-cluster.html). - -## Beta release - -### Where can I submit feedback or bugs on the beta? - -You can submit feedback or log any bugs you find through [this survey](https://forms.gle/jWNgmCFtF4y15ePw5). - -## Security - -### Is my cluster secure? - -Yes, we use separate certificate authorities for each cluster, and all connections to the cluster over the internet use TLS 1.2. - -### Is encryption-at-rest enabled on {{ site.data.products.serverless }}? - -Yes. All data on {{ site.data.products.db }} is encrypted-at-rest using the tools provided by the cloud provider that your cluster is running in. - -- Data stored in clusters running in GCP are encrypted-at-rest using [persistent disk encryption](https://cloud.google.com/compute/docs/disks#pd_encryption). -- Data stored in clusters running in AWS are encrypted-at-rest using [EBS encryption-at-rest](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html). - -Because we are relying on the cloud provider's encryption implementation (as noted above), we do not enable CockroachDB's [internal implementation of encryption-at-rest](../{{site.versions["stable"]}}/encryption.html#encryption-at-rest-enterprise). This means that encryption will appear to be disabled in the [DB Console](../{{site.versions["stable"]}}/ui-overview.html), since it is unaware of cloud provider encryption. - -### Is my cluster isolated? Does it share resources with any other clusters? - -{{ site.data.products.serverless }} is a multi-tenant offering and resources are shared between clusters. - -## Cluster maintenance - -### How do I add nodes? - -You cannot add nodes to your {{ site.data.products.serverless }} cluster, and there is an upper limit of usage of up to 1 vCPU and 5GB storage. If you exceed this limit or want a more powerful cluster, you can create a cluster using the paid version of [{{ site.data.products.dedicated }}](create-your-cluster.html). - -### Can I upgrade my cluster from {{ site.data.products.serverless }} to the paid version of {{ site.data.products.dedicated }}? - -At this time, a {{ site.data.products.serverless }} cluster cannot be upgraded. In the future, you will have the ability to move from {{ site.data.products.serverless }} to a paid version of {{ site.data.products.dedicated }}. - -## Product features - -### Are partitioning or change data capture available to me? - -No, partitioning is not available on {{ site.data.products.serverless }} clusters, but will be in the future. - -Change data capture is available on {{ site.data.products.serverless }} clusters through [core changefeeds](../{{site.versions["stable"]}}/changefeed-for.html). See [Stream Data out of your {{ site.data.products.serverless }} cluster](run-bulk-operations.html#stream-data-out-of-your-cockroachcloud-free-beta-cluster) for an example of creating a core changefeed. - -### Do you have a UI? How can I see details? - -Yes, you can view and your clusters in the [{{ site.data.products.db }} Console](https://cockroachlabs.cloud/). However, [DB Console](../{{site.versions["stable"]}}/ui-overview.html) pages (e.g., **Statements** or **Database** pages) are not currently available for {{ site.data.products.serverless }} clusters. - -### Can I backup my {{ site.data.products.serverless }} cluster? Does Cockroach Labs take backups of my cluster? - -Cockroach Labs takes full cluster backups of all {{ site.data.products.serverless }} clusters for our own purposes. Currently, these backups are not available to you. We support [`BACKUP`](../{{site.versions["stable"]}}/backup.html) and [`RESTORE`](../{{site.versions["stable"]}}/restore.html) of databases and tables on {{ site.data.products.serverless }} clusters through [`userfile`](../{{site.versions["stable"]}}/use-userfile-for-bulk-operations.html) storage. For an example on using `userfile` for backups, see [Backup and restore with `userfile`](run-bulk-operations.html#backup-and-restore-with-userfile). diff --git a/cockroachcloud/frequently-asked-questions.md b/cockroachcloud/frequently-asked-questions.md index 3367d87b247..6247f51ac32 100644 --- a/cockroachcloud/frequently-asked-questions.md +++ b/cockroachcloud/frequently-asked-questions.md @@ -84,7 +84,7 @@ Today, we do not automatically scale nodes based on your capacity usage. To add ### Who is responsible for backup? -Cockroach Labs runs full backups daily and incremental backups hourly for every {{ site.data.products.dedicated }} cluster. The full backups are retained for 30 days and incremental backups for 7 days. +Cockroach Labs runs full backups daily and incremental backups hourly for every {{ site.data.products.db }} cluster. The full backups are retained for 30 days and incremental backups for 7 days. Only {{ site.data.products.dedicated }} cluster backups are available to users at this time. The backups for AWS clusters are encrypted using [AWS S3’s server-side encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) and the backups for GCP clusters are encrypted using [Google-managed server-side encryption keys](https://cloud.google.com/storage/docs/encryption/default-keys). diff --git a/cockroachcloud/quickstart.md b/cockroachcloud/quickstart.md index e57f7f03fee..0a4fde02e05 100644 --- a/cockroachcloud/quickstart.md +++ b/cockroachcloud/quickstart.md @@ -37,7 +37,7 @@ Choose the level of detail you want for this page. 1. Click **Create cluster**. - Your cluster will be created in approximately 20-30 seconds and the **Connection info** dialog will display. + Your cluster will be created in a few seconds and the **Connection info** dialog will display. 1. Click the **Connection string** tab in the **Connection info** dialog and copy the connection string in step 2 to a secure location. diff --git a/cockroachcloud/serverless-benchmarking.md b/cockroachcloud/serverless-benchmarking.md index bc96740f75d..f4416435615 100644 --- a/cockroachcloud/serverless-benchmarking.md +++ b/cockroachcloud/serverless-benchmarking.md @@ -12,7 +12,7 @@ This page describes {{ site.data.products.serverless }} performance benchmarking ### What are RUs? -Most resource usage in {{ site.data.products.serverless }} is measured in Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 2 RUs, and a "large read" such as a full table scan with indexes could cost a large number of RUs. You can see how many request units your cluster has used on the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page. +{{ site.data.products.serverless }} cluster resource usage is measured by two metrics: storage and Request Units, or RUs. RUs represent the compute and I/O resources used by a query. All database operations cost a certain amount of RUs depending on the resources used. For example, a "small read" might cost 2 RUs, and a "large read" such as a full table scan with indexes could cost a large number of RUs. You can see how many request units your cluster has used on the [Cluster Overview](serverless-cluster-management.html#view-cluster-overview) page. ### What is KV 95? @@ -20,7 +20,7 @@ KV 95 is a simple benchmark that tests linear scaling by [running a workload](.. ## Baseline performance -Baseline performance was benchmarked for a free CockroachDB Serverless cluster running in an Organization without billing information on file. This is the level of performance guaranteed for all clusters that have run out of burst capacity and are throttled. +Baseline performance was benchmarked for a free CockroachDB Serverless cluster running in an organization without billing information on file. This is the level of performance guaranteed for all clusters that have run out of burst capacity and are throttled. Serverless performance diff --git a/cockroachcloud/serverless-faqs.md b/cockroachcloud/serverless-faqs.md index 3e75d5889e4..4596134a891 100644 --- a/cockroachcloud/serverless-faqs.md +++ b/cockroachcloud/serverless-faqs.md @@ -24,11 +24,11 @@ To get started with {{ site.data.products.serverless }}, {{site.data.alerts.callout_info}} -Only [Console Admins](console-access-management.html#console-admin) can change a user's password. If you are a [Developer](console-access-management.html#developer), you need to ask your Console Admin to change the password. To find out who's your Console Admin, [log in](https://cockroachlabs.cloud/) and navigate to **Cluster Overview** > **Access**. +Only [Console Admins](console-access-management.html#console-admin) can change a user's password. If you are a [Developer](console-access-management.html#developer), you need to ask your Console Admin to change the password. To find out who your Console Admin is, [log in](https://cockroachlabs.cloud/) and navigate to **Cluster Overview** > **Access**. {{site.data.alerts.end}} To change a user's password: diff --git a/releases/index-cockroachcloud.md b/releases/index-cockroachcloud.md index 6193177abbc..4d63883ce76 100644 --- a/releases/index-cockroachcloud.md +++ b/releases/index-cockroachcloud.md @@ -4,7 +4,7 @@ summary: Release notes for older versions of CockroachDB Cloud. toc: true --- -CockroachDB Cloud supports the latest major version of CockroachDB and the version immediately preceding it. All clusters are subject to automatic upgrades to the latest supported minor version. [{{ site.data.products.serverless }}](../cockroachcloud/quickstart.html) clusters are subject to automatic upgrades for both minor and major releases. +CockroachDB Cloud supports the latest major version of CockroachDB and the version immediately preceding it. All clusters are subject to automatic upgrades to the latest supported minor version. [{{ site.data.products.serverless }}](../cockroachcloud/quickstart.html) clusters are subject to automatic upgrades for both minor and major releases while in beta. For more information, see the [{{ site.data.products.db }} Upgrade Policy](../cockroachcloud/upgrade-policy.html).

    P%IEd^;wZDMi#8SlFgI#*0pJ|+}e5*y?Z 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 D;J;W| diff --git a/images/cockroachcloud/serverless-diagram.png b/images/cockroachcloud/serverless-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..2ee1d4813977819c307c81cfe937b71b70bb2454 GIT binary patch literal 389428 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 Zj&yU;cP<^RIvuc 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 f`LWI9!Lwm~o-WH+2 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%0DeIZ#biRV#)lbYr!E-?joIjTR4i-iX5V($&fj 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

    P%IEd^;wZDMi#8SlFgI#*0pJ|+}e5*y?Z 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 D;J;W| literal 0 HcmV?d00001 From 136de312abe86384a08cbc03c6feaef4797cf2c9 Mon Sep 17 00:00:00 2001 From: Gemma Shay Date: Thu, 12 Aug 2021 12:10:36 -0400 Subject: [PATCH 20/77] RU specs and arch updates --- .../planning-your-serverless-cluster.md | 2 +- _includes/sidebar-data-cockroachcloud.json | 14 +++++++------- cockroachcloud/architecture.md | 18 +++++++++--------- cockroachcloud/create-a-serverless-cluster.md | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/_includes/cockroachcloud/planning-your-serverless-cluster.md b/_includes/cockroachcloud/planning-your-serverless-cluster.md index 4fba92323c2..dcabaa9d7de 100644 --- a/_includes/cockroachcloud/planning-your-serverless-cluster.md +++ b/_includes/cockroachcloud/planning-your-serverless-cluster.md @@ -4,7 +4,7 @@ All resource usage in CockroachCloud Serverless (beta) is measured in Request Un ### Cluster scaling -CockroachCloud Serverless (beta) clusters scale based on your workload. Free clusters include 100M RUs and 5GB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or 2.5K QPS. +CockroachCloud Serverless (beta) clusters scale based on your workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](architecture.html#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or 2.5K QPS. Paid clusters include additional resources with no throttling. You will only be charged for the resources you use up to your spend limit. If you reach your spend limit, you will still have access to the resources included with free clusters. diff --git a/_includes/sidebar-data-cockroachcloud.json b/_includes/sidebar-data-cockroachcloud.json index 4121630a28f..40954e136d3 100644 --- a/_includes/sidebar-data-cockroachcloud.json +++ b/_includes/sidebar-data-cockroachcloud.json @@ -45,6 +45,13 @@ { "title": "Use Your Cluster", "items": [ + { + "title": "Manage Your Cluster", + "urls": [ + "/cockroachcloud/serverless-cluster-management.html", + "/cockroachcloud/cluster-management.html" + ] + }, { "title": "Secure Your Cluster", "items": [ @@ -180,13 +187,6 @@ "/cockroachcloud/troubleshooting-page.html" ] }, - { - "title": "Manage Your Cluster", - "urls": [ - "/cockroachcloud/serverless-cluster-management.html", - "/cockroachcloud/cluster-management.html" - ] - }, { "title": "Restore Data from a Backup", "urls": [ diff --git a/cockroachcloud/architecture.md b/cockroachcloud/architecture.md index 99e987b6586..af93fe41155 100644 --- a/cockroachcloud/architecture.md +++ b/cockroachcloud/architecture.md @@ -26,33 +26,33 @@ Term | Definition ### Performance -Serverless clusters scale based on the application load they are serving. Paid clusters can scale up to the amount of resources being paid for, and free clusters can scale up to 100M Request Units and 5GB of storage. +Serverless clusters scale based on your application's workload. Free clusters include 250M RUs with 10M RUs reserved for [burst performance](#concepts) and 5GiB of storage per month. They have a guaranteed baseline performance of 100 RUs per second, or 2.5K QPS. If you set a budget for your cluster, you will have access to additional resources without throttling. Depending on your workload, your budget will be used differently. For example, a cluster using very little storage space will have more of its budget available for Request Units, and vice versa. If you hit your budget, your cluster will be throttled down to free-tier performance levels. In this case, you can increase your budget or adjust your workload to stay within budget. -Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst and baseline performance. A user can theoretically use up all their budget for burst in the first few minutes of a cluster being created. If this happens, they will be brought back to the baseline performance (see “Cluster Usage Subsidies and Limits”), after which point they can reaccumulate burst performance if they don’t use all of their request units. +Storage always gets first priority in the budget since you need to be able to store the data first and foremost. The remainder of the budget is allocated to burst and baseline performance. A user can theoretically use up all their budget for burst performance in the first few minutes of a cluster being created. If this happens, they will be throttled back to the baseline performance and can reaccumulate burst capacity by using fewer RUs. -Burst capacity is the ability of the Serverless (beta) cluster to scale above baseline performance. Supporting application traffic that “burst” i.e., can fluctuate above baseline traffic is a key feature of Serverless clusters. - -CockroachCloud Serverless (beta) clusters have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses free clusters that are inactive, which is defined by having no connection to the cluster for 2 consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. +Serverless clusters also have the ability to scale to zero and consume no resources when there are no active queries. When there are no active queries, you will pay for storage your app is using, but not for Request Units. To avoid wasted resources, CockroachCloud automatically pauses free clusters that are inactive, which is defined by having no connection to the cluster for two consecutive minutes. Once the user attempts to reconnect to the cluster, the cluster will automatically resume. Pausing, resuming, and scaling clusters is a fully-managed process and will not disrupt or affect the user experience. However, it is important for your application to have connection retry logic in the event of node restarts or network disruptions. For more information, see the [Production Checklist](production-checklist.html). ### Architecture +Traffic comes in from the public internet and is routed by the cloud provider’s load balancer to a Kubernetes cluster that hosts CockroachDB. However, unlike a regular CockroachDB cluster where the SQL and KV layers run in the same process, our serverless architecture fully decouples the SQL layer from the KV layer so that both layers run in separate processes running in separate Kubernetes pods. + Perf tuning concepts ## CockroachCloud Dedicated -CockroachDB Serverless may not be right for enterprises that have rigorous security requirements due to its multi-tenant architecture. For those use cases we recommend CockroachDB Dedicated. CockroachCloud Dedicated supports single and multi-region clusters in Amazon Web Services and Google Cloud Platform. +If you need a single-tenant cluster with no shared resources, we recommend CockroachCloud Dedicated. CockroachCloud Dedicated supports single and multi-region clusters in Amazon Web Services and Google Cloud Platform. ### Hardware -We use the Kubernetes offerings in AWS and GCP to run our offering - EKS and GKE respectively. For compute we use the C5 series of machines in AWS and the N1-standard machine types in GCP. For storage we use Elastic Block Storage with provisioned iops in AWS, and Persistent Disks in GCP. Each single region cluster has a minimum of three nodes spread across three availability zones (AZ) in a cloud provider region. For multi-region clusters, similarly, nodes are spread across three or more AZs in each region. +We use the Kubernetes offerings in AWS and GCP (EKS and GKE respectively) to run CockroachCloud offerings. GCP clusters use [N1 standard](https://cloud.google.com/compute/docs/machine-types#n1_machine_types) machine types and [Persistent Disk storage](https://cloud.google.com/compute/docs/disks#pdspecs). AWS clusters use [M5 instance types](https://aws.amazon.com/ec2/instance-types/m5/#Product_Details) and [Elastic Block Store (EBS)](https://aws.amazon.com/ebs/features/). Each single region cluster has a minimum of three nodes spread across three availability zones (AZ) in a cloud provider region. For multi-region clusters, similarly, nodes are spread across three or more AZs in each region. ### Security and Connection -CockroachCloud Dedicated clusters are single tenant. This means each new cluster gets its own project in GCP or its own account in AWS. No two clusters share any resources between each other. Since these clusters are within their own accounts and projects, they are also in a default virtual private cloud (VPC). Currently a customer connects to them using the load balancer in front of each region leading to one connection string if the cluster is single region and multiple connection strings (one per region) if the cluster is multi-region. Since we don’t support VPC peering (yet), the connections are over TLS 1.2 secure over the internet. +CockroachCloud Dedicated clusters are single tenant. This means each new cluster gets its own project in GCP or its own account in AWS. No two Dedicated clusters share any resources with each other. Since these clusters are within their own accounts and projects, they are also in a default virtual private cloud (VPC). Users connect to a Dedicated cluster by using a load balancer in front of each region which leads to one connection string per region. Unless you set up [VPC peering](network-authorization.html#vpc-peering) or [AWS PrivateLink](network-authorization.html#aws-privatelink), your cluster will use TLS 1.2 protocol for inter-node and client-node communication. -All clusters are secure by default, and we use a combination of certificates and passwords authentication. We generate one certificate per cluster. We use certificates (verify-full SSL mode) for the nodes to authenticate each other, and for the nodes to authenticate the client. We use passwords for the client to authenticate the node. We use a network security model where IPs must be whitelisted for SQL connections to be allowed to the cluster - this prevents denial of service and brute password attacks. +CockroachCloud clusters also use digital certificates for inter-node authentication, [SSL modes](authentication.html#ssl-mode-settings) for node identity verification, and password authentication for client identity verification. See [Authentication](authentication.html) for more details. Backups are encrypted in S3 and GCS buckets using the cloud provider keys. diff --git a/cockroachcloud/create-a-serverless-cluster.md b/cockroachcloud/create-a-serverless-cluster.md index 3356c72c125..8706abff1d5 100644 --- a/cockroachcloud/create-a-serverless-cluster.md +++ b/cockroachcloud/create-a-serverless-cluster.md @@ -31,7 +31,7 @@ If you haven't already, - - - - -This page walks you through the process of creating a cluster using CockroachCloud Free (beta). Note that only [CockroachCloud Console Administrators](console-access-management.html#console-admin) can create clusters. If you are a Developer and need to create a cluster, contact your CockroachCloud Administrator. - -{% include cockroachcloud/free-limitations.md %} - -## Before you begin - -If you haven't already, sign up for a CockroachCloud account. - -## Step 1. Start the cluster creation process - -1. [Log in](https://cockroachlabs.cloud/) to your CockroachCloud account. -2. If there are multiple [organizations](console-access-management.html#organization) in your account, select the correct organization in the top right corner. -3. On the **Overview** page, click **Create Cluster**. - -## Step 2. Select Free Plan - -1. On the **Create your cluster** page, select the **CockroachCloud Free**. - - {{site.data.alerts.callout_info}} - This cluster will be free forever. - {{site.data.alerts.end}} - -1. _(Optional)_ Select a cloud provider (GCP or AWS) in the **Additional configuration** section. - -1. _(Optional)_ Select a region in the **Additional configuration** section. For optimal performance, select the cloud provider region closest to the region in which you are running your application. - -1. Click **Create your free cluster**. - -Your cluster will be created in approximately 20-30 seconds. - -## What's next - -- [Connect to your free cluster](connect-to-a-free-cluster.html) -- [Authorize users](user-authorization.html) - -## Usage examples - -CockroachCloud Free (beta) can be used for proofs-of-concept, toy programs, or to use while completing [Cockroach University](https://www.cockroachlabs.com/cockroach-university/). - -For examples of applications that use CockroachCloud Free (beta), check out the following [Hack the North](https://hackthenorth.com/) projects: - -- [flock](https://devpost.com/software/flock-figure-out-what-film-to-watch-with-friends) -- [mntr.tech](https://devpost.com/software/mntr-tech) -- [curbshop.online](https://devpost.com/software/curbshop-online) diff --git a/cockroachcloud/free-faqs.md b/cockroachcloud/free-faqs.md deleted file mode 100644 index c1c7e8d4d58..00000000000 --- a/cockroachcloud/free-faqs.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: CockroachCloud Free (beta) FAQs -summary: Get answers to frequently asked questions about CockroachCloud Free (beta) -toc: true ---- - -This page answers the frequently asked questions about CockroachCloud Free (beta) and the paid version of CockroachCloud. - -