Skip to content

Commit b8f6874

Browse files
committed
docs: clarify scope and remove duplicate footnotes in limits pages
1 parent 9c288da commit b8f6874

File tree

5 files changed

+78
-109
lines changed

5 files changed

+78
-109
lines changed

src/content/docs/d1/platform/limits.mdx

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@ pcx_content_type: concept
33
title: Limits
44
sidebar:
55
order: 2
6-
76
---
87

9-
import { Render, Details } from "~/components";
8+
import { Render } from "~/components";
109

1110
| Feature | Limit |
1211
| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
13-
| Databases | 50,000 (Workers Paid)[^1] / 10 (Free) |
12+
| Databases per account | 50,000 (Workers Paid) [^1] / 10 (Free) |
1413
| Maximum database size | 10 GB (Workers Paid) / 500 MB (Free) |
1514
| Maximum storage per account | 1 TB (Workers Paid)[^2] / 5 GB (Free) |
1615
| [Time Travel](/d1/reference/time-travel/) duration (point-in-time recovery) | 30 days (Workers Paid) / 7 days (Free) |
@@ -32,22 +31,14 @@ Limits for individual queries (listed above) apply to each individual statement
3231
:::
3332

3433
[^1]: The maximum number of databases per account can be increased by request on Workers Paid and Enterprise plans, with support for millions to tens-of-millions of databases (or more) per account. Refer to the guidance on limit increases on this page to request an increase.
35-
[^2]: The maximum storage per account can be increased by request on Workers Paid and Enterprise plans. Refer to the guidance on limit increases on this page to request an increase.
36-
[^3]: A single Worker script can have up to 1 MB of script metadata. A binding is defined as a binding to a resource, such as a D1 database, KV namespace, [environmental variable](/workers/configuration/environment-variables/), or secret. Each resource binding is approximately 150-bytes, however environmental variables and secrets are controlled by the size of the value you provide. Excluding environmental variables, you can bind up to \~5,000 D1 databases to a single Worker script.
37-
[^4]: Requests to Cloudflare API must resolve in 30 seconds. Therefore, this duration limit also applies to the entire batch call.
38-
[^5]: The imported file is uploaded to R2. Refer to [R2 upload limit](/r2/platform/limits).
3934

40-
<Details header = "Footnotes" open={true}>
41-
1: The maximum number of databases per account can be increased by request on Workers Paid and Enterprise plans, with support for millions to tens-of-millions of databases (or more) per account. Refer to the guidance on limit increases on this page to request an increase.
42-
43-
2: The maximum storage per account can be increased by request on Workers Paid and Enterprise plans. Refer to the guidance on limit increases on this page to request an increase.
35+
[^2]: The maximum storage per account can be increased by request on Workers Paid and Enterprise plans. Refer to the guidance on limit increases on this page to request an increase.
4436

45-
3: A single Worker script can have up to 1 MB of script metadata. A binding is defined as a binding to a resource, such as a D1 database, KV namespace, [environmental variable](/workers/configuration/environment-variables/), or secret. Each resource binding is approximately 150 bytes, however environmental variables and secrets are controlled by the size of the value you provide. Excluding environmental variables, you can bind up to \~5,000 D1 databases to a single Worker script.
37+
[^3]: A single Worker script can have up to 1 MB of script metadata. A binding is defined as a binding to a resource, such as a D1 database, KV namespace, [environmental variable](/workers/configuration/environment-variables/), or secret. Each resource binding is approximately 150-bytes, however environmental variables and secrets are controlled by the size of the value you provide. Excluding environmental variables, you can bind up to \~5,000 D1 databases to a single Worker script.
4638

47-
4: Requests to Cloudflare API must resolve in 30 seconds. Therefore, this duration limit also applies to the entire batch call.
39+
[^4]: Requests to Cloudflare API must resolve in 30 seconds. Therefore, this duration limit also applies to the entire batch call.
4840

49-
5: The imported file is uploaded to R2. Refer to [R2 upload limit](/r2/platform/limits).
50-
</Details>
41+
[^5]: The imported file is uploaded to R2. Refer to [R2 upload limit](/r2/platform/limits).
5142

5243
Cloudflare also offers other storage solutions such as [Workers KV](/kv/api/), [Durable Objects](/durable-objects/), and [R2](/r2/get-started/). Each product has different advantages and limits. Refer to [Choose a data or storage product](/workers/platform/storage-options/) to review which storage option is right for your use case.
5344

@@ -57,4 +48,4 @@ Cloudflare also offers other storage solutions such as [Workers KV](/kv/api/), [
5748

5849
Frequently asked questions related to D1 limits:
5950

60-
<Render file="faq-limits" product="d1"/>
51+
<Render file="faq-limits" product="d1" />

src/content/docs/durable-objects/platform/limits.mdx

Lines changed: 23 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@ sidebar:
55
order: 2
66
---
77

8-
import { Render, GlossaryTooltip, Details, WranglerConfig } from "~/components";
8+
import { Render, GlossaryTooltip, WranglerConfig } from "~/components";
99

1010
Durable Objects are a special kind of Worker, so [Workers Limits](/workers/platform/limits/) apply according to your Workers plan. In addition, Durable Objects have specific limits as listed in this page.
1111

1212
## SQLite-backed Durable Objects general limits
1313

14-
| Feature | Limit |
15-
| ------------------------------ | -------------------------------------------------------------------------------------------------------------- |
16-
| Number of Objects | Unlimited (within an account or of a given class) |
17-
| Maximum Durable Object classes | 500 (Workers Paid) / 100 (Free) [^1] |
18-
| Storage per account | Unlimited (Workers Paid) / 5GB (Free) [^2] |
19-
| Storage per class | Unlimited [^3] |
20-
| Storage per Durable Object | 10 GB [^3] |
21-
| Key size | Key and value combined cannot exceed 2 MB |
22-
| Value size | Key and value combined cannot exceed 2 MB |
23-
| WebSocket message size | 32 MiB (only for received messages) |
24-
| CPU per request | 30 seconds (default) / configurable to 5 minutes of [active CPU time](/workers/platform/limits/#cpu-time) [^4] |
14+
| Feature | Limit |
15+
| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
16+
| Number of Objects | Unlimited (within an account or of a given class) |
17+
| Maximum Durable Object classes (per account) | 500 (Workers Paid) / 100 (Free) [^1] |
18+
| Storage per account | Unlimited (Workers Paid) / 5GB (Free) [^2] |
19+
| Storage per class | Unlimited [^3] |
20+
| Storage per Durable Object | 10 GB [^3] |
21+
| Key size | Key and value combined cannot exceed 2 MB |
22+
| Value size | Key and value combined cannot exceed 2 MB |
23+
| WebSocket message size | 32 MiB (only for received messages) |
24+
| CPU per request | 30 seconds (default) / configurable to 5 minutes of [active CPU time](/workers/platform/limits/#cpu-time) [^4] |
2525

2626
[^1]: Identical to the Workers [script limit](/workers/platform/limits/).
2727

@@ -31,17 +31,6 @@ Durable Objects are a special kind of Worker, so [Workers Limits](/workers/platf
3131

3232
[^4]: Each incoming HTTP request or WebSocket _message_ resets the remaining available CPU time to 30 seconds. This allows the Durable Object to consume up to 30 seconds of compute after each incoming network request, with each new network request resetting the timer. If you consume more than 30 seconds of compute between incoming network requests, there is a heightened chance that the individual Durable Object is evicted and reset. CPU time per request invocation [can be increased](/durable-objects/platform/limits/#increasing-durable-object-cpu-limits).
3333

34-
<Details header="Footnotes" open={true}>
35-
1. Identical to the Workers [script limit](/workers/platform/limits/).
36-
37-
2. Durable Objects both bills and measures storage based on a gigabyte <br/> (1 GB = 1,000,000,000 bytes) and not a gibibyte (GiB). <br/>
38-
39-
3. Accounts on the Workers Free plan are limited to 5GB total Durable Objects storage.
40-
41-
4. Each incoming HTTP request or WebSocket _message_ resets the remaining available CPU time to 30 seconds. This allows the Durable Object to consume up to 30 seconds of compute after each incoming network request, with each new network request resetting the timer. If you consume more than 30 seconds of compute between incoming network requests, there is a heightened chance that the individual Durable Object is evicted and reset. CPU time per request invocation [can be increased](/durable-objects/platform/limits/#increasing-durable-object-cpu-limits).
42-
43-
</Details>
44-
4534
### SQL storage limits
4635

4736
For Durable Object classes with [SQLite storage](/durable-objects/api/sqlite-storage-api/) these SQL limits apply:
@@ -60,33 +49,24 @@ For Durable Object classes with [SQLite storage](/durable-objects/api/sqlite-sto
6049

6150
<Render file="do-plans-note" product="durable-objects" />
6251

63-
| Feature | Limit for class with key-value storage backend |
64-
| ------------------------------ | --------------------------------------------------- |
65-
| Number of Objects | Unlimited (within an account or of a given class) |
66-
| Maximum Durable Object classes | 500 (Workers Paid) / 100 (Free) [^5] |
67-
| Storage per account | 50 GB (can be raised by contacting Cloudflare) [^6] |
68-
| Storage per class | Unlimited |
69-
| Storage per Durable Object | Unlimited |
70-
| Key size | 2 KiB (2048 bytes) |
71-
| Value size | 128 KiB (131072 bytes) |
72-
| WebSocket message size | 32 MiB (only for received messages) |
73-
| CPU per request | 30s (including WebSocket messages) [^7] |
52+
| Feature | Limit for class with key-value storage backend |
53+
| -------------------------------------------- | --------------------------------------------------- |
54+
| Number of Objects | Unlimited (within an account or of a given class) |
55+
| Maximum Durable Object classes (per account) | 500 (Workers Paid) / 100 (Free) [^5] |
56+
| Storage per account | 50 GB (can be raised by contacting Cloudflare) [^6] |
57+
| Storage per class | Unlimited |
58+
| Storage per Durable Object | Unlimited |
59+
| Key size | 2 KiB (2048 bytes) |
60+
| Value size | 128 KiB (131072 bytes) |
61+
| WebSocket message size | 32 MiB (only for received messages) |
62+
| CPU per request | 30s (including WebSocket messages) [^7] |
7463

7564
[^5]: Identical to the Workers [script limit](/workers/platform/limits/).
7665

7766
[^6]: Durable Objects both bills and measures storage based on a gigabyte <br/> (1 GB = 1,000,000,000 bytes) and not a gibibyte (GiB). <br/>
7867

7968
[^7]: Each incoming HTTP request or WebSocket _message_ resets the remaining available CPU time to 30 seconds. This allows the Durable Object to consume up to 30 seconds of compute after each incoming network request, with each new network request resetting the timer. If you consume more than 30 seconds of compute between incoming network requests, there is a heightened chance that the individual Durable Object is evicted and reset. CPU time per request invocation [can be increased](/durable-objects/platform/limits/#increasing-durable-object-cpu-limits).
8069

81-
<Details header="Footnotes" open={true}>
82-
5. Identical to the Workers [script limit](/workers/platform/limits/).
83-
84-
6. Durable Objects both bills and measures storage based on a gigabyte <br/> (1 GB = 1,000,000,000 bytes) and not a gibibyte (GiB). <br/>
85-
86-
7. Each incoming HTTP request or WebSocket _message_ resets the remaining available CPU time to 30 seconds. This allows the Durable Object to consume up to 30 seconds of compute after each incoming network request, with each new network request resetting the timer. If you consume more than 30 seconds of compute between incoming network requests, there is a heightened chance that the individual Durable Object is evicted and reset. CPU time per request invocation [can be increased](/durable-objects/platform/limits/#increasing-durable-object-cpu-limits).
87-
88-
</Details>
89-
9070
<Render file="limits_increase" product="workers" />
9171

9272
## Frequently Asked Questions

src/content/docs/kv/platform/limits.mdx

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,24 @@ pcx_content_type: concept
33
title: Limits
44
sidebar:
55
order: 2
6-
76
---
87

9-
import { Render } from "~/components"
10-
11-
| Feature | Free | Paid |
12-
| ------------------------------------------------------------------------------ | --------------------- | ------------ |
13-
| Reads | 100,000 reads per day | Unlimited |
14-
| Writes to different keys | 1,000 writes per day | Unlimited |
15-
| Writes to same key | 1 per second | 1 per second |
16-
| Operations/Worker invocation [^1] | 1000 | 1000 |
17-
| Namespaces | 1000 | 1000 |
18-
| Storage/account | 1 GB | Unlimited |
19-
| Storage/namespace | 1 GB | Unlimited |
20-
| Keys/namespace | Unlimited | Unlimited |
21-
| Key size | 512 bytes | 512 bytes |
22-
| Key metadata | 1024 bytes | 1024 bytes |
23-
| Value size | 25 MiB | 25 MiB |
24-
| Minimum [`cacheTtl`](/kv/api/read-key-value-pairs/#cachettl-parameter) [^2] | 60 seconds | 60 seconds |
8+
import { Render } from "~/components";
9+
10+
| Feature | Free | Paid |
11+
| --------------------------------------------------------------------------- | --------------------- | ------------ |
12+
| Reads | 100,000 reads per day | Unlimited |
13+
| Writes to different keys | 1,000 writes per day | Unlimited |
14+
| Writes to same key | 1 per second | 1 per second |
15+
| Operations/Worker invocation [^1] | 1000 | 1000 |
16+
| Namespaces per account | 1,000 | 1,000 |
17+
| Storage/account | 1 GB | Unlimited |
18+
| Storage/namespace | 1 GB | Unlimited |
19+
| Keys/namespace | Unlimited | Unlimited |
20+
| Key size | 512 bytes | 512 bytes |
21+
| Key metadata | 1024 bytes | 1024 bytes |
22+
| Value size | 25 MiB | 25 MiB |
23+
| Minimum [`cacheTtl`](/kv/api/read-key-value-pairs/#cachettl-parameter) [^2] | 60 seconds | 60 seconds |
2524

2625
[^1]: Within a single invocation, a Worker can make up to 1,000 operations to external services (for example, 500 Workers KV reads and 500 R2 reads). A bulk request to Workers KV counts for 1 request to an external service.
2726

0 commit comments

Comments
 (0)