From c54060cbbb3c304a2b513afa54f402c2acff33a5 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin Date: Mon, 24 Feb 2025 18:04:52 -0500 Subject: [PATCH 01/19] thomasgauvin: Hyperdrive pool placement improvement + ip address egress --- ...pooling-near-database-and-ip-range-egress.mdx | 15 +++++++++++++++ src/content/release-notes/hyperdrive.yaml | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/content/changelog/hyperdrive/2025-02-26-hyperdrive-pooling-near-database-and-ip-range-egress.mdx diff --git a/src/content/changelog/hyperdrive/2025-02-26-hyperdrive-pooling-near-database-and-ip-range-egress.mdx b/src/content/changelog/hyperdrive/2025-02-26-hyperdrive-pooling-near-database-and-ip-range-egress.mdx new file mode 100644 index 000000000000000..943b4678a1fd878 --- /dev/null +++ b/src/content/changelog/hyperdrive/2025-02-26-hyperdrive-pooling-near-database-and-ip-range-egress.mdx @@ -0,0 +1,15 @@ +--- +title: Hyperdrive improves pool placement, uses Cloudflare's IP addresses for egress +description: Hyperdrive now pools database connections closer to your database to reduce latency and connects using Cloudflare's IP address ranges. +products: + - hyperdrive +date: 2025-02-26T18:00:00Z +--- + +Hyperdrive pools database connections in one or more regions closest to your database. This means that your uncached queries and new connections have up to 50% less latency. In aggregate, we observed a decrease on average of \. + +With this update, Hyperdrive also uses [Cloudflare's standard IP address ranges](https://www.cloudflare.com/ips/) to connect to your database. This enables you to configure the firewall policies of your database to allow access to this limited IP address range. + +Refer to [documentation on how Hyperdrive makes connecting to regional databases from Cloudflare Workers fast](/hyperdrive/configuration/how-hyperdrive-works/). + +This improvement is enabled on all Hyperdrive configurations. diff --git a/src/content/release-notes/hyperdrive.yaml b/src/content/release-notes/hyperdrive.yaml index 8d1bf39089e1627..8b101ce74be7a1d 100644 --- a/src/content/release-notes/hyperdrive.yaml +++ b/src/content/release-notes/hyperdrive.yaml @@ -5,6 +5,22 @@ productLink: "/hyperdrive/" productArea: Developer platform productAreaLink: /workers/platform/changelog/platform/ entries: + - publish_date: "2025-02-26" + title: Hyperdrive egresses using Cloudflare's IP address ranges + description: |- + Hyperdrive now connects to your databases using [Cloudflare's IP address ranges]((https://www.cloudflare.com/ips/). + + This enables you to configure the firewall policies on your database to allow access to this limited IP address range. + + Refer to the [full list of Cloudflare IP ranges](https://www.cloudflare.com/ips/) that Hyperdrive uses. + - publish_date: "2025-02-25" + title: Hyperdrive improves connection pool placement decreasing query latency by up to 50% + description: |- + Hyperdrive now pools all database connections in one or more regions as close to your database as possible. This means that you uncached queries resolve faster by up to 50%. + + In aggregate, we observed a decrease on average of \. + + Refer to [documentation on how Hyperdrive caches query results](/hyperdrive/configuration/how-hyperdrive-works/#query-caching). - publish_date: "2025-01-28" title: Hyperdrive automatically configures your Cloudflare Tunnel to connect to your private database. description: |- From a3971ad830f7cba6f09c9609c9432226c89f5535 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin Date: Mon, 24 Feb 2025 18:33:25 -0500 Subject: [PATCH 02/19] thomasgauvin: add details to how hyperdrive works with changes --- .../configuration/how-hyperdrive-works.mdx | 28 +++++++++++-------- src/content/docs/hyperdrive/reference/faq.mdx | 10 +++++-- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx b/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx index d91908dc79a1291..23b8352d3ae78ce 100644 --- a/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx +++ b/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx @@ -3,7 +3,6 @@ pcx_content_type: concept title: How Hyperdrive works sidebar: order: 2 - --- Connecting to traditional centralized databases from Cloudflare's global network which consists of over [300 data center locations](https://www.cloudflare.com/network/) presents a few challenges as queries can originate from any of these locations. @@ -16,9 +15,17 @@ Hyperdrive solves these challenges by managing the number of global connections ![Hyperdrive connection](~/assets/images/hyperdrive/configuration/hyperdrive-comparison.svg) +## Edge connection setup + +When a database driver connects to a database from a Cloudflare Worker, illustrated above on the right half of the diagram in **Direct (without Hyperdrive)**, it will first go through the connection setup. This may require multiple round trips to the database in order to verify and establish a secure connection. + +**With Hyperdrive** (on the left half of the above diagram), this connection setup occurs between your Cloudflare Worker and Hyperdrive on the edge, as close to your Worker as possible. This incurs significantly less latency since the roundtrips are done within the same region. + ## Connection Pooling -Hyperdrive creates a global pool of connections to your database that can be reused as your application executes queries against your database. +Hyperdrive creates a pool of connections to your database that can be reused as your application executes queries against your database. + +The pool of database connections is placed in one or more regions closest to your origin database. This minimizes the latency incurred by roundtrips between your Cloudflare Workers and database to establish new connections. This also ensures that as little network latency is incurred for uncached queries. When a query hits Hyperdrive, the request is routed to the nearest connection pool. @@ -28,15 +35,14 @@ If the connection pool does not have pre-existing connections, it will establish :::note -Hyperdrive automatically manages the connection pool properties for you, including limiting the total number of connections to your origin database. Refer to [Limits](/hyperdrive/platform/limits/) to learn more. +Hyperdrive automatically manages the connection pool properties for you, including limiting the total number of connections to your origin database. Refer to [Limits](/hyperdrive/platform/limits/) to learn more. ::: ## Pooling mode The Hyperdrive connection pooler operates in transaction mode, where the client that executes the query communicates through a single connection for the duration of a transaction. When that transaction has completed, the connection is returned to the pool. - -Hyperdrive supports [`SET` statements](https://www.postgresql.org/docs/current/sql-set.html) for the duration of a transaction or a query. For instance, if you manually create a transaction with `BEGIN`/`COMMIT`, `SET` statements within the transaction will take effect. Moreover, a query that includes a `SET` command (`SET X; SELECT foo FROM bar;`) will also apply the `SET` command. When a connection is returned to the pool, the connection is `RESET` such that the `SET` commands will not take effect on subsequent queries. +Hyperdrive supports [`SET` statements](https://www.postgresql.org/docs/current/sql-set.html) for the duration of a transaction or a query. For instance, if you manually create a transaction with `BEGIN`/`COMMIT`, `SET` statements within the transaction will take effect. Moreover, a query that includes a `SET` command (`SET X; SELECT foo FROM bar;`) will also apply the `SET` command. When a connection is returned to the pool, the connection is `RESET` such that the `SET` commands will not take effect on subsequent queries. This implies that a single Worker invocation may obtain multiple connections to perform its database operations and may need to `SET` any configurations for every query or transaction. It is not recommended to wrap multiple database operations with a single transaction to maintain the `SET` state. Doing so will affect the performance and scaling of Hyperdrive as the connection cannot be reused by other Worker isolates for the duration of the transaction. @@ -46,11 +52,11 @@ Hyperdrive supports named prepared statements as implemented in the `postgres.js Hyperdrive does not support the following PostgreSQL features: -* SQL-level management of prepared statements, such as using `PREPARE`, `DISCARD`, `DEALLOCATE`, or `EXECUTE`. -* Advisory locks ([PostgreSQL documentation](https://www.postgresql.org/docs/current/explicit-locking.html#ADVISORY-LOCKS)). -* `LISTEN` and `NOTIFY`. -* `PREPARE` and `DEALLOCATE`. -* Any modification to per-session state not explicitly documented as supported elsewhere. +- SQL-level management of prepared statements, such as using `PREPARE`, `DISCARD`, `DEALLOCATE`, or `EXECUTE`. +- Advisory locks ([PostgreSQL documentation](https://www.postgresql.org/docs/current/explicit-locking.html#ADVISORY-LOCKS)). +- `LISTEN` and `NOTIFY`. +- `PREPARE` and `DEALLOCATE`. +- Any modification to per-session state not explicitly documented as supported elsewhere. In cases where you need to issue these unsupported statements from your application, the Hyperdrive team recommends setting up a second, direct client without Hyperdrive. @@ -66,4 +72,4 @@ Caching reduces the burden on your origin database and accelerates the response ## Related resources -* [Query caching](/hyperdrive/configuration/query-caching/) +- [Query caching](/hyperdrive/configuration/query-caching/) diff --git a/src/content/docs/hyperdrive/reference/faq.mdx b/src/content/docs/hyperdrive/reference/faq.mdx index 0b1eebed4f510f1..f946383eeb517b0 100644 --- a/src/content/docs/hyperdrive/reference/faq.mdx +++ b/src/content/docs/hyperdrive/reference/faq.mdx @@ -3,11 +3,18 @@ pcx_content_type: concept title: FAQ sidebar: order: 10 - --- Below you will find answers to our most commonly asked questions regarding Hyperdrive. +## Connectivity + +### Does Hyperdrive use specific IP addresses to connect to my database? + +Hyperdrive connects to your database using [Cloudflare's IP address ranges](https://www.cloudflare.com/ips/). These are shared by all Hyperdrive configurations and other Cloudflare products. + +This can be used to configure restrictions in your database firewall to restrict the IP addresses that can access your database. + ## Pricing ### Does Hyperdrive charge for data transfer / egress? @@ -27,4 +34,3 @@ Hyperdrive itself does not charge for compute (CPU) or processing (wall clock) t ### Are there any limits to Hyperdrive? Refer to the published [limits](/hyperdrive/platform/limits/) documentation. - From b70a3ccdea788cb0edd9ddcf2c5c8ed59b2213ce Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Mon, 24 Feb 2025 18:34:27 -0500 Subject: [PATCH 03/19] Update src/content/changelog/hyperdrive/2025-02-26-hyperdrive-pooling-near-database-and-ip-range-egress.mdx --- ...-26-hyperdrive-pooling-near-database-and-ip-range-egress.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/changelog/hyperdrive/2025-02-26-hyperdrive-pooling-near-database-and-ip-range-egress.mdx b/src/content/changelog/hyperdrive/2025-02-26-hyperdrive-pooling-near-database-and-ip-range-egress.mdx index 943b4678a1fd878..3cb8fc2b53db8d3 100644 --- a/src/content/changelog/hyperdrive/2025-02-26-hyperdrive-pooling-near-database-and-ip-range-egress.mdx +++ b/src/content/changelog/hyperdrive/2025-02-26-hyperdrive-pooling-near-database-and-ip-range-egress.mdx @@ -1,5 +1,5 @@ --- -title: Hyperdrive improves pool placement, uses Cloudflare's IP addresses for egress +title: Hyperdrive reduces connection setup latency by 50% with regional pooling, uses Cloudflare's IP addresses for egress description: Hyperdrive now pools database connections closer to your database to reduce latency and connects using Cloudflare's IP address ranges. products: - hyperdrive From cb753abb33587eeaebe17e4c6c217f58e4b47c01 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin Date: Mon, 24 Feb 2025 20:25:00 -0500 Subject: [PATCH 04/19] thomasgauvin: add docs on networking, firewall and ip addresses --- .../firewall-and-networking-configuration.mdx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx diff --git a/src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx b/src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx new file mode 100644 index 000000000000000..91b7aa2c6c56bd9 --- /dev/null +++ b/src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx @@ -0,0 +1,16 @@ +--- +pcx_content_type: concept +title: Firewall and networking configuration +sidebar: + order: 7 +--- + +import { TabItem, Tabs, Render, WranglerConfig } from "~/components"; + +Hyperdrive uses the [Cloudflare IP address ranges](https://www.cloudflare.com/ips/) to connect to your database. Only the IP address ranges listed in this reference need to be allow-listed in your database's firewall and networking configurations. + +You can connect to your database from Hyperdrive using any of the 3 following networking configurations: + +1. Configure your database to allow inbound connectivity from the public Internet (all IP address ranges). +2. Configure your database to allow inbound connectivity from the public Internet, with only the IP address ranges used by Hyperdrive allow-listed. +3. Configure your database to allow inbound connectivity from a private network, and run a Cloudflare Tunnel instance in your private network to enable Hyperdrive to connect from the Cloudflare network to your private network. Refer to [documentation on connecting to a private database using Tunnel](/hyperdrive/configuration/connect-to-private-database/). From 409dd16ec30972649f04444d1fdac522c0872ffc Mon Sep 17 00:00:00 2001 From: Thomas Gauvin Date: Thu, 6 Mar 2025 10:56:03 -0500 Subject: [PATCH 05/19] small changes to phrasing, update date, include screenshot --- ...onal-pooling-query-latency-improvement.png | Bin 0 -> 166863 bytes ...ling-near-database-and-ip-range-egress.mdx | 15 -------------- ...ling-near-database-and-ip-range-egress.mdx | 19 ++++++++++++++++++ .../firewall-and-networking-configuration.mdx | 2 +- .../configuration/how-hyperdrive-works.mdx | 4 ++-- src/content/release-notes/hyperdrive.yaml | 18 ++++++++--------- 6 files changed, 31 insertions(+), 27 deletions(-) create mode 100644 src/assets/images/hyperdrive/configuration/hyperdrive-regional-pooling-query-latency-improvement.png delete mode 100644 src/content/changelog/hyperdrive/2025-02-26-hyperdrive-pooling-near-database-and-ip-range-egress.mdx create mode 100644 src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx diff --git a/src/assets/images/hyperdrive/configuration/hyperdrive-regional-pooling-query-latency-improvement.png b/src/assets/images/hyperdrive/configuration/hyperdrive-regional-pooling-query-latency-improvement.png new file mode 100644 index 0000000000000000000000000000000000000000..45d6135a2e9806b9eea17efa752a578505f684f2 GIT binary patch literal 166863 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. - -With this update, Hyperdrive also uses [Cloudflare's standard IP address ranges](https://www.cloudflare.com/ips/) to connect to your database. This enables you to configure the firewall policies of your database to allow access to this limited IP address range. - -Refer to [documentation on how Hyperdrive makes connecting to regional databases from Cloudflare Workers fast](/hyperdrive/configuration/how-hyperdrive-works/). - -This improvement is enabled on all Hyperdrive configurations. diff --git a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx new file mode 100644 index 000000000000000..9282517d461d147 --- /dev/null +++ b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx @@ -0,0 +1,19 @@ +--- +title: Hyperdrive reduces query latency by up to 90%, uses Cloudflare's IP addresses for egress +description: Hyperdrive now pools database connections closer to your database to reduce latency and connects using Cloudflare's IP address ranges. +products: + - hyperdrive +date: 2025-03-06T18:00:00Z +--- + +Hyperdrive now pools database connections in one or more regions close to your database. This means that your uncached queries and new database connections have up to 90% less latency as measured from connection pools. + +![Hyperdrive query latency decreases by 90% during Hyperdrive's gradual rollout of regional pooling.](~/assets/images/hyperdrive/configuration/hyperdrive-regional-pooling-query-latency-improvement.png) + +By improving placement of Hyperdrive database connection pools, Workers smart placement is now more effective when used with Hyperdrive, ensuring that your Worker can be placed as close to your database as possible. + +With this update, Hyperdrive also uses [Cloudflare's standard IP address ranges](https://www.cloudflare.com/ips/) to connect to your database. This enables you to configure the firewall policies of your database to allow access to this limited IP address range. + +Refer to [documentation on how Hyperdrive makes connecting to regional databases from Cloudflare Workers fast](/hyperdrive/configuration/how-hyperdrive-works/). + +This improvement is enabled on all Hyperdrive configurations. diff --git a/src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx b/src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx index 91b7aa2c6c56bd9..fc187e6cba0f637 100644 --- a/src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx +++ b/src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx @@ -7,7 +7,7 @@ sidebar: import { TabItem, Tabs, Render, WranglerConfig } from "~/components"; -Hyperdrive uses the [Cloudflare IP address ranges](https://www.cloudflare.com/ips/) to connect to your database. Only the IP address ranges listed in this reference need to be allow-listed in your database's firewall and networking configurations. +Hyperdrive uses the [Cloudflare IP address ranges](https://www.cloudflare.com/ips/) to connect to your database. If you decide to restrict the IP addresses that can access your database with firewall rules, the IP address ranges listed in this reference need to be allow-listed in your database's firewall and networking configurations. You can connect to your database from Hyperdrive using any of the 3 following networking configurations: diff --git a/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx b/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx index 23b8352d3ae78ce..325df3a5b10d732 100644 --- a/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx +++ b/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx @@ -17,9 +17,9 @@ Hyperdrive solves these challenges by managing the number of global connections ## Edge connection setup -When a database driver connects to a database from a Cloudflare Worker, illustrated above on the right half of the diagram in **Direct (without Hyperdrive)**, it will first go through the connection setup. This may require multiple round trips to the database in order to verify and establish a secure connection. +When a database driver connects to a database from a Cloudflare Worker (illustrated above on the right half of the diagram in **Direct (without Hyperdrive)**) it will first go through the connection setup. This may require multiple round trips to the database in order to verify and establish a secure connection. This can incur additional network latency due to the distance between your Cloudflare Worker and your database. -**With Hyperdrive** (on the left half of the above diagram), this connection setup occurs between your Cloudflare Worker and Hyperdrive on the edge, as close to your Worker as possible. This incurs significantly less latency since the roundtrips are done within the same region. +**With Hyperdrive** (on the left half of the above diagram), this connection setup occurs between your Cloudflare Worker and Hyperdrive on the edge, as close to your Worker as possible. This incurs significantly less latency since the connection setup is completed within the same location. ## Connection Pooling diff --git a/src/content/release-notes/hyperdrive.yaml b/src/content/release-notes/hyperdrive.yaml index 8b101ce74be7a1d..d60eea3b810e9c5 100644 --- a/src/content/release-notes/hyperdrive.yaml +++ b/src/content/release-notes/hyperdrive.yaml @@ -5,22 +5,22 @@ productLink: "/hyperdrive/" productArea: Developer platform productAreaLink: /workers/platform/changelog/platform/ entries: - - publish_date: "2025-02-26" - title: Hyperdrive egresses using Cloudflare's IP address ranges + - publish_date: "2025-03-06" + title: Hyperdrive connects to your database using Cloudflare's IP address ranges description: |- - Hyperdrive now connects to your databases using [Cloudflare's IP address ranges]((https://www.cloudflare.com/ips/). + Hyperdrive now uses [Cloudflare's IP address ranges]((https://www.cloudflare.com/ips/) for egress. This enables you to configure the firewall policies on your database to allow access to this limited IP address range. - Refer to the [full list of Cloudflare IP ranges](https://www.cloudflare.com/ips/) that Hyperdrive uses. - - publish_date: "2025-02-25" - title: Hyperdrive improves connection pool placement decreasing query latency by up to 50% + Learn more about [configuring your database networking for Hyperdrive](/hyperdrive/configuration/firewall-and-networking-configuration/). + - publish_date: "2025-03-06" + title: Hyperdrive improves connection pool placement decreasing query latency by up to 90% description: |- - Hyperdrive now pools all database connections in one or more regions as close to your database as possible. This means that you uncached queries resolve faster by up to 50%. + Hyperdrive now pools all database connections in one or more regions as close to your database as possible. This means that your uncached queries and new database connections have up to 90% less latency as measured from Hyperdrive connection pools. - In aggregate, we observed a decrease on average of \. + With improved placement for Hyperdrive connection pools, Workers smart placement is more effective by ensuring that your Worker and Hyperdrive database connection pool are placed as close to your database as possible. - Refer to [documentation on how Hyperdrive caches query results](/hyperdrive/configuration/how-hyperdrive-works/#query-caching). + See [the announcement](/changelog/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress/) for more details. - publish_date: "2025-01-28" title: Hyperdrive automatically configures your Cloudflare Tunnel to connect to your private database. description: |- From 925deb8747a0e1bcf3116283a08e928f4ee803a5 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 12:34:07 -0500 Subject: [PATCH 06/19] Update src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx Co-authored-by: Jun Lee --- ...-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx index 9282517d461d147..8af341d49a1c837 100644 --- a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx +++ b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx @@ -10,7 +10,7 @@ Hyperdrive now pools database connections in one or more regions close to your d ![Hyperdrive query latency decreases by 90% during Hyperdrive's gradual rollout of regional pooling.](~/assets/images/hyperdrive/configuration/hyperdrive-regional-pooling-query-latency-improvement.png) -By improving placement of Hyperdrive database connection pools, Workers smart placement is now more effective when used with Hyperdrive, ensuring that your Worker can be placed as close to your database as possible. +By improving placement of Hyperdrive database connection pools, Workers' Smart Placement is now more effective when used with Hyperdrive, ensuring that your Worker can be placed as close to your database as possible. With this update, Hyperdrive also uses [Cloudflare's standard IP address ranges](https://www.cloudflare.com/ips/) to connect to your database. This enables you to configure the firewall policies of your database to allow access to this limited IP address range. From 2e85d4525d21e2cdde096e49394a8508ccf31593 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 12:34:19 -0500 Subject: [PATCH 07/19] Update src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx Co-authored-by: Jun Lee --- ...-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx index 8af341d49a1c837..8c60649fd0f9d9d 100644 --- a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx +++ b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx @@ -1,6 +1,6 @@ --- title: Hyperdrive reduces query latency by up to 90%, uses Cloudflare's IP addresses for egress -description: Hyperdrive now pools database connections closer to your database to reduce latency and connects using Cloudflare's IP address ranges. +description: Hyperdrive now pools database connections closer to your database to reduce latency and uses Cloudflare's IP address ranges. products: - hyperdrive date: 2025-03-06T18:00:00Z From 70edf81626b66958270f0373cf0fc4a05dfb5dc7 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 12:34:32 -0500 Subject: [PATCH 08/19] Update src/content/release-notes/hyperdrive.yaml Co-authored-by: Jun Lee --- src/content/release-notes/hyperdrive.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/release-notes/hyperdrive.yaml b/src/content/release-notes/hyperdrive.yaml index d60eea3b810e9c5..ebe239a714d1917 100644 --- a/src/content/release-notes/hyperdrive.yaml +++ b/src/content/release-notes/hyperdrive.yaml @@ -18,7 +18,7 @@ entries: description: |- Hyperdrive now pools all database connections in one or more regions as close to your database as possible. This means that your uncached queries and new database connections have up to 90% less latency as measured from Hyperdrive connection pools. - With improved placement for Hyperdrive connection pools, Workers smart placement is more effective by ensuring that your Worker and Hyperdrive database connection pool are placed as close to your database as possible. + With improved placement for Hyperdrive connection pools, Workers' Smart Placement is more effective by ensuring that your Worker and Hyperdrive database connection pool are placed as close to your database as possible. See [the announcement](/changelog/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress/) for more details. - publish_date: "2025-01-28" From 13132d0c7968e311dd2b5e6d3066642952ef3800 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 12:34:38 -0500 Subject: [PATCH 09/19] Update src/content/docs/hyperdrive/reference/faq.mdx Co-authored-by: Jun Lee --- src/content/docs/hyperdrive/reference/faq.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/hyperdrive/reference/faq.mdx b/src/content/docs/hyperdrive/reference/faq.mdx index f946383eeb517b0..2c72bf23f66acc6 100644 --- a/src/content/docs/hyperdrive/reference/faq.mdx +++ b/src/content/docs/hyperdrive/reference/faq.mdx @@ -13,7 +13,7 @@ Below you will find answers to our most commonly asked questions regarding Hyper Hyperdrive connects to your database using [Cloudflare's IP address ranges](https://www.cloudflare.com/ips/). These are shared by all Hyperdrive configurations and other Cloudflare products. -This can be used to configure restrictions in your database firewall to restrict the IP addresses that can access your database. +You can use this to configure restrictions in your database firewall to restrict the IP addresses that can access your database. ## Pricing From 17380d84484548974d2b66c5188be902961a4a6c Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 12:35:30 -0500 Subject: [PATCH 10/19] Update src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx Co-authored-by: Jun Lee --- .../docs/hyperdrive/configuration/how-hyperdrive-works.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx b/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx index 325df3a5b10d732..8c070574f4f27c8 100644 --- a/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx +++ b/src/content/docs/hyperdrive/configuration/how-hyperdrive-works.mdx @@ -19,7 +19,7 @@ Hyperdrive solves these challenges by managing the number of global connections When a database driver connects to a database from a Cloudflare Worker (illustrated above on the right half of the diagram in **Direct (without Hyperdrive)**) it will first go through the connection setup. This may require multiple round trips to the database in order to verify and establish a secure connection. This can incur additional network latency due to the distance between your Cloudflare Worker and your database. -**With Hyperdrive** (on the left half of the above diagram), this connection setup occurs between your Cloudflare Worker and Hyperdrive on the edge, as close to your Worker as possible. This incurs significantly less latency since the connection setup is completed within the same location. +**With Hyperdrive** (on the left half of the above diagram), this connection setup occurs between your Cloudflare Worker and Hyperdrive on the edge, as close to your Worker as possible. This incurs significantly less latency, since the connection setup is completed within the same location. ## Connection Pooling From 6b4263dafa1d81b5b18ab443313cd750e1082a77 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 12:35:41 -0500 Subject: [PATCH 11/19] Update src/content/release-notes/hyperdrive.yaml Co-authored-by: Jun Lee --- src/content/release-notes/hyperdrive.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/release-notes/hyperdrive.yaml b/src/content/release-notes/hyperdrive.yaml index ebe239a714d1917..30a3c4aad456795 100644 --- a/src/content/release-notes/hyperdrive.yaml +++ b/src/content/release-notes/hyperdrive.yaml @@ -14,7 +14,7 @@ entries: Learn more about [configuring your database networking for Hyperdrive](/hyperdrive/configuration/firewall-and-networking-configuration/). - publish_date: "2025-03-06" - title: Hyperdrive improves connection pool placement decreasing query latency by up to 90% + title: Hyperdrive improves connection pool placement, decreasing query latency by up to 90% description: |- Hyperdrive now pools all database connections in one or more regions as close to your database as possible. This means that your uncached queries and new database connections have up to 90% less latency as measured from Hyperdrive connection pools. From 912000e9a0d0df562496cdef3a8906f9227bca65 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:33:05 -0500 Subject: [PATCH 12/19] Update src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx --- ...-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx index 8c60649fd0f9d9d..c387e4bf0a49ded 100644 --- a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx +++ b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx @@ -3,7 +3,7 @@ title: Hyperdrive reduces query latency by up to 90%, uses Cloudflare's IP addre description: Hyperdrive now pools database connections closer to your database to reduce latency and uses Cloudflare's IP address ranges. products: - hyperdrive -date: 2025-03-06T18:00:00Z +date: 2025-03-07T18:00:00Z --- Hyperdrive now pools database connections in one or more regions close to your database. This means that your uncached queries and new database connections have up to 90% less latency as measured from connection pools. From 687dac922279add5434b7dca970b3e39319930aa Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:33:16 -0500 Subject: [PATCH 13/19] Update src/content/release-notes/hyperdrive.yaml --- src/content/release-notes/hyperdrive.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/release-notes/hyperdrive.yaml b/src/content/release-notes/hyperdrive.yaml index 30a3c4aad456795..25a4a1d123d68b5 100644 --- a/src/content/release-notes/hyperdrive.yaml +++ b/src/content/release-notes/hyperdrive.yaml @@ -5,7 +5,7 @@ productLink: "/hyperdrive/" productArea: Developer platform productAreaLink: /workers/platform/changelog/platform/ entries: - - publish_date: "2025-03-06" + - publish_date: "2025-03-07" title: Hyperdrive connects to your database using Cloudflare's IP address ranges description: |- Hyperdrive now uses [Cloudflare's IP address ranges]((https://www.cloudflare.com/ips/) for egress. From 56a481749d5cdd6621546291b8ace1c02d3f54d4 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 14:33:23 -0500 Subject: [PATCH 14/19] Update src/content/release-notes/hyperdrive.yaml --- src/content/release-notes/hyperdrive.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/release-notes/hyperdrive.yaml b/src/content/release-notes/hyperdrive.yaml index 25a4a1d123d68b5..7f1ead8279f083b 100644 --- a/src/content/release-notes/hyperdrive.yaml +++ b/src/content/release-notes/hyperdrive.yaml @@ -13,7 +13,7 @@ entries: This enables you to configure the firewall policies on your database to allow access to this limited IP address range. Learn more about [configuring your database networking for Hyperdrive](/hyperdrive/configuration/firewall-and-networking-configuration/). - - publish_date: "2025-03-06" + - publish_date: "2025-03-07" title: Hyperdrive improves connection pool placement, decreasing query latency by up to 90% description: |- Hyperdrive now pools all database connections in one or more regions as close to your database as possible. This means that your uncached queries and new database connections have up to 90% less latency as measured from Hyperdrive connection pools. From 6443d45ad597539e6a7959d5e104d9ff31daade9 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 16:30:54 -0500 Subject: [PATCH 15/19] Update src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx Co-authored-by: Matt Silverlock --- ...-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx index c387e4bf0a49ded..cb19ff5be7d9e81 100644 --- a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx +++ b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx @@ -12,7 +12,7 @@ Hyperdrive now pools database connections in one or more regions close to your d By improving placement of Hyperdrive database connection pools, Workers' Smart Placement is now more effective when used with Hyperdrive, ensuring that your Worker can be placed as close to your database as possible. -With this update, Hyperdrive also uses [Cloudflare's standard IP address ranges](https://www.cloudflare.com/ips/) to connect to your database. This enables you to configure the firewall policies of your database to allow access to this limited IP address range. +With this update, Hyperdrive also uses [Cloudflare's standard IP address ranges](https://www.cloudflare.com/ips/) to connect to your database. This enables you to configure the firewall policies (IP access control lists) of your database to only allow access from Cloudflare and Hyperdrive. Refer to [documentation on how Hyperdrive makes connecting to regional databases from Cloudflare Workers fast](/hyperdrive/configuration/how-hyperdrive-works/). From f346d3b8ccb3cb1383be45430580a265c90bea30 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 16:31:10 -0500 Subject: [PATCH 16/19] Update src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx Co-authored-by: Matt Silverlock --- ...-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx index cb19ff5be7d9e81..534045547164edf 100644 --- a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx +++ b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx @@ -1,5 +1,5 @@ --- -title: Hyperdrive reduces query latency by up to 90%, uses Cloudflare's IP addresses for egress +title: Hyperdrive reduces query latency by up to 90% and now supports IP ACLs description: Hyperdrive now pools database connections closer to your database to reduce latency and uses Cloudflare's IP address ranges. products: - hyperdrive From 85a4861413ee570b5d7d214c4b025425ae342004 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 16:31:29 -0500 Subject: [PATCH 17/19] Update src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx Co-authored-by: Matt Silverlock --- ...-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx index 534045547164edf..0e072164a34e47a 100644 --- a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx +++ b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx @@ -1,6 +1,6 @@ --- title: Hyperdrive reduces query latency by up to 90% and now supports IP ACLs -description: Hyperdrive now pools database connections closer to your database to reduce latency and uses Cloudflare's IP address ranges. +description: Hyperdrive now pools database connections closer to your database to reduce query latency, and now also provides a documented IP address range for IP ACLs. products: - hyperdrive date: 2025-03-07T18:00:00Z From 82c804725924c1cb8c30f97c43437b431cf002e7 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 16:32:08 -0500 Subject: [PATCH 18/19] Update src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx --- ...-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx index 0e072164a34e47a..1399c9b6ba2fe49 100644 --- a/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx +++ b/src/content/changelog/hyperdrive/2025-03-04-hyperdrive-pooling-near-database-and-ip-range-egress.mdx @@ -1,5 +1,5 @@ --- -title: Hyperdrive reduces query latency by up to 90% and now supports IP ACLs +title: Hyperdrive reduces query latency by up to 90% and now supports IP access control lists description: Hyperdrive now pools database connections closer to your database to reduce query latency, and now also provides a documented IP address range for IP ACLs. products: - hyperdrive From 3f74dc61ee27748161191ed551d535ac5dbcfe61 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Thu, 6 Mar 2025 16:33:15 -0500 Subject: [PATCH 19/19] Update src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx --- .../configuration/firewall-and-networking-configuration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx b/src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx index fc187e6cba0f637..f1c38e864ba8efa 100644 --- a/src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx +++ b/src/content/docs/hyperdrive/configuration/firewall-and-networking-configuration.mdx @@ -12,5 +12,5 @@ Hyperdrive uses the [Cloudflare IP address ranges](https://www.cloudflare.com/ip You can connect to your database from Hyperdrive using any of the 3 following networking configurations: 1. Configure your database to allow inbound connectivity from the public Internet (all IP address ranges). -2. Configure your database to allow inbound connectivity from the public Internet, with only the IP address ranges used by Hyperdrive allow-listed. +2. Configure your database to allow inbound connectivity from the public Internet, with only the IP address ranges used by Hyperdrive allow-listed in an IP access control list (ACL). 3. Configure your database to allow inbound connectivity from a private network, and run a Cloudflare Tunnel instance in your private network to enable Hyperdrive to connect from the Cloudflare network to your private network. Refer to [documentation on connecting to a private database using Tunnel](/hyperdrive/configuration/connect-to-private-database/).