From bade569111f3e400396a7ade6487e05c0a88cfc8 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Wed, 1 Jul 2026 18:11:06 +0800 Subject: [PATCH 1/8] tidb-cloud: add storage billing explanations Expand the billing doc with storage model guidance, including standard row-based storage, Infrequent Access row-based storage, and TiFlash-powered columnar storage. The update also adds IA caveats (experimental/region-limited), enablement SQL for TiFlash replicas, and dual-layer encryption details with compliance-focused use cases. --- tidb-cloud/tidb-cloud-billing.md | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/tidb-cloud/tidb-cloud-billing.md b/tidb-cloud/tidb-cloud-billing.md index b7bf81ecb920d..01591c183e91d 100644 --- a/tidb-cloud/tidb-cloud-billing.md +++ b/tidb-cloud/tidb-cloud-billing.md @@ -96,6 +96,45 @@ The **Bills** tab shows the billing summary by projects & instances and the bill > - The total amount in the monthly bill is rounded off to the 2nd decimal place. > - The total amount in the daily usage details is accurate to the 6th decimal place. +### Row-based storage + +Standard row-based storage where data is stored in **TiKV**. The table's **Storage Class** is set to `Standard` or left unset (`NULL`). + +**Use case:** Core online transactional processing (OLTP) workloads that require low-latency reads and writes. + +### Row-based storage with Infrequent Access (IA) + +Row-based storage where data is stored in **remote object storage**. The table's **Storage Class** is set to `IA`. + +> **Warning:** +> +> Infrequent Access is currently an **experimental feature** and is available only in selected regions. It is currently supported only for {{{ .essential }}}. + +**Use case:** Historical or archival data that is accessed infrequently but still needs to remain queryable while reducing storage costs. + +> **Note:** +> +> Infrequent Access is designed for data that is rarely accessed but still needs to be available for online queries. + +### Columnar storage + +Columnar storage powered by the **TiFlash** engine. To enable columnar storage for a table, add a TiFlash replica using the following SQL statement: + +```sql +ALTER TABLE table_name SET TIFLASH REPLICA n; +``` + +**Use case:** Online analytical processing (OLAP) workloads that benefit from real-time columnar acceleration without requiring additional ETL. + +### Dual-layer encryption + +Both **Row-based storage** and **columnar storage** support dual-layer encryption. This mechanism protects data with two independent layers of encryption, ensuring that data remains protected even if one layer is compromised. + +1. **Infrastructure-level encryption:** The underlying cloud provider encrypts all data at rest using its native storage encryption mechanism. +2. **TiDB Cloud-level encryption:** On top of the cloud provider's encryption, TiDB Cloud automatically applies a second layer of encryption using either a customer-managed encryption key (CMEK) or an escrow key. + +**Use case:** Workloads with strict security and compliance requirements, such as those in the financial services, government, and healthcare industries. + ## Cost explorer If you are in the `Organization Owner` or `Organization Billing Manager` role of your organization, you can view and analyze the usage costs of TiDB Cloud. Otherwise, skip this section. From 2f618e218461c91382500f2592fe3418ded6a6d0 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Wed, 1 Jul 2026 18:13:18 +0800 Subject: [PATCH 2/8] Update tidb-cloud-billing.md --- tidb-cloud/tidb-cloud-billing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tidb-cloud/tidb-cloud-billing.md b/tidb-cloud/tidb-cloud-billing.md index 01591c183e91d..5798f0db61fb2 100644 --- a/tidb-cloud/tidb-cloud-billing.md +++ b/tidb-cloud/tidb-cloud-billing.md @@ -130,8 +130,8 @@ ALTER TABLE table_name SET TIFLASH REPLICA n; Both **Row-based storage** and **columnar storage** support dual-layer encryption. This mechanism protects data with two independent layers of encryption, ensuring that data remains protected even if one layer is compromised. -1. **Infrastructure-level encryption:** The underlying cloud provider encrypts all data at rest using its native storage encryption mechanism. -2. **TiDB Cloud-level encryption:** On top of the cloud provider's encryption, TiDB Cloud automatically applies a second layer of encryption using either a customer-managed encryption key (CMEK) or an escrow key. +- **Infrastructure-level encryption:** The underlying cloud provider encrypts all data at rest using its native storage encryption mechanism. +- **TiDB Cloud-level encryption:** On top of the cloud provider's encryption, TiDB Cloud automatically applies a second layer of encryption using either a customer-managed encryption key (CMEK) or an escrow key. **Use case:** Workloads with strict security and compliance requirements, such as those in the financial services, government, and healthcare industries. From 1800029f39be61febb8f159db788d6a9f3e3ab47 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Wed, 1 Jul 2026 18:20:46 +0800 Subject: [PATCH 3/8] Update wording and format --- tidb-cloud/tidb-cloud-billing.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tidb-cloud/tidb-cloud-billing.md b/tidb-cloud/tidb-cloud-billing.md index 5798f0db61fb2..e9769a4539461 100644 --- a/tidb-cloud/tidb-cloud-billing.md +++ b/tidb-cloud/tidb-cloud-billing.md @@ -98,13 +98,13 @@ The **Bills** tab shows the billing summary by projects & instances and the bill ### Row-based storage -Standard row-based storage where data is stored in **TiKV**. The table's **Storage Class** is set to `Standard` or left unset (`NULL`). +Standard row-based storage stores data in **TiKV**. The table's **Storage Class** is set to `Standard` or left unset (`NULL`). **Use case:** Core online transactional processing (OLTP) workloads that require low-latency reads and writes. -### Row-based storage with Infrequent Access (IA) +### Row-based storage with IA -Row-based storage where data is stored in **remote object storage**. The table's **Storage Class** is set to `IA`. +Row-based storage with Infrequent Access (IA) stores data in **remote object storage**. The table's **Storage Class** is set to `IA`. > **Warning:** > @@ -118,7 +118,7 @@ Row-based storage where data is stored in **remote object storage**. The table's ### Columnar storage -Columnar storage powered by the **TiFlash** engine. To enable columnar storage for a table, add a TiFlash replica using the following SQL statement: +Columnar storage is powered by the **TiFlash** engine. To enable columnar storage for a table, add a TiFlash replica using the following SQL statement: ```sql ALTER TABLE table_name SET TIFLASH REPLICA n; @@ -128,7 +128,7 @@ ALTER TABLE table_name SET TIFLASH REPLICA n; ### Dual-layer encryption -Both **Row-based storage** and **columnar storage** support dual-layer encryption. This mechanism protects data with two independent layers of encryption, ensuring that data remains protected even if one layer is compromised. +Both **row-based storage** and **columnar storage** support dual-layer encryption. This mechanism protects your data with two independent layers of encryption, ensuring that data remains protected even if one layer is compromised. - **Infrastructure-level encryption:** The underlying cloud provider encrypts all data at rest using its native storage encryption mechanism. - **TiDB Cloud-level encryption:** On top of the cloud provider's encryption, TiDB Cloud automatically applies a second layer of encryption using either a customer-managed encryption key (CMEK) or an escrow key. From ec396fe6adff4ba847b2d893713c90d740213255 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Wed, 1 Jul 2026 18:22:36 +0800 Subject: [PATCH 4/8] Update tidb-cloud-billing.md --- tidb-cloud/tidb-cloud-billing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tidb-cloud/tidb-cloud-billing.md b/tidb-cloud/tidb-cloud-billing.md index e9769a4539461..3e46be77f1b06 100644 --- a/tidb-cloud/tidb-cloud-billing.md +++ b/tidb-cloud/tidb-cloud-billing.md @@ -98,13 +98,13 @@ The **Bills** tab shows the billing summary by projects & instances and the bill ### Row-based storage -Standard row-based storage stores data in **TiKV**. The table's **Storage Class** is set to `Standard` or left unset (`NULL`). +Standard row-based storage stores data in **TiKV**. You can set the table's **Storage Class** to `Standard` or leave it unset (`NULL`). **Use case:** Core online transactional processing (OLTP) workloads that require low-latency reads and writes. ### Row-based storage with IA -Row-based storage with Infrequent Access (IA) stores data in **remote object storage**. The table's **Storage Class** is set to `IA`. +Row-based storage with Infrequent Access (IA) stores data in **remote object storage**. You can set the table's **Storage Class** to `IA`. > **Warning:** > From 6b231be4163ce96829f33a9d2f8863ef375fb226 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Wed, 1 Jul 2026 18:39:28 +0800 Subject: [PATCH 5/8] Hide use cases --- tidb-cloud/tidb-cloud-billing.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tidb-cloud/tidb-cloud-billing.md b/tidb-cloud/tidb-cloud-billing.md index 3e46be77f1b06..34a588b2f6cc8 100644 --- a/tidb-cloud/tidb-cloud-billing.md +++ b/tidb-cloud/tidb-cloud-billing.md @@ -100,7 +100,7 @@ The **Bills** tab shows the billing summary by projects & instances and the bill Standard row-based storage stores data in **TiKV**. You can set the table's **Storage Class** to `Standard` or leave it unset (`NULL`). -**Use case:** Core online transactional processing (OLTP) workloads that require low-latency reads and writes. + ### Row-based storage with IA @@ -110,7 +110,7 @@ Row-based storage with Infrequent Access (IA) stores data in **remote object sto > > Infrequent Access is currently an **experimental feature** and is available only in selected regions. It is currently supported only for {{{ .essential }}}. -**Use case:** Historical or archival data that is accessed infrequently but still needs to remain queryable while reducing storage costs. + > **Note:** > @@ -124,7 +124,7 @@ Columnar storage is powered by the **TiFlash** engine. To enable columnar storag ALTER TABLE table_name SET TIFLASH REPLICA n; ``` -**Use case:** Online analytical processing (OLAP) workloads that benefit from real-time columnar acceleration without requiring additional ETL. + ### Dual-layer encryption @@ -133,7 +133,7 @@ Both **row-based storage** and **columnar storage** support dual-layer encryptio - **Infrastructure-level encryption:** The underlying cloud provider encrypts all data at rest using its native storage encryption mechanism. - **TiDB Cloud-level encryption:** On top of the cloud provider's encryption, TiDB Cloud automatically applies a second layer of encryption using either a customer-managed encryption key (CMEK) or an escrow key. -**Use case:** Workloads with strict security and compliance requirements, such as those in the financial services, government, and healthcare industries. + ## Cost explorer From fcf19ecc841b4ee2d25c0435bae3a6feabf337a8 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Wed, 1 Jul 2026 18:48:27 +0800 Subject: [PATCH 6/8] Add how to set --- tidb-cloud/tidb-cloud-billing.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tidb-cloud/tidb-cloud-billing.md b/tidb-cloud/tidb-cloud-billing.md index 34a588b2f6cc8..20525c0fa7fe3 100644 --- a/tidb-cloud/tidb-cloud-billing.md +++ b/tidb-cloud/tidb-cloud-billing.md @@ -98,13 +98,21 @@ The **Bills** tab shows the billing summary by projects & instances and the bill ### Row-based storage -Standard row-based storage stores data in **TiKV**. You can set the table's **Storage Class** to `Standard` or leave it unset (`NULL`). +Standard row-based storage stores data in **TiKV**. You can set the table's **Storage Class** to `Standard` using the following SQL statement or leave it unset (`NULL`). + +```sql +ALTER TABLE t1 STORAGE_CLASS='STANDARD'; +``` ### Row-based storage with IA -Row-based storage with Infrequent Access (IA) stores data in **remote object storage**. You can set the table's **Storage Class** to `IA`. +Row-based storage with Infrequent Access (IA) stores data in **remote object storage**. You can set the table's **Storage Class** to `IA` using the following SQL statement: + +```sql +ALTER TABLE t1 STORAGE_CLASS='IA'; +``` > **Warning:** > From 9e1adfc8bffccc864650db46f9956ff9ad6e0279 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 2 Jul 2026 10:48:08 +0800 Subject: [PATCH 7/8] Apply suggestions from code review --- tidb-cloud/tidb-cloud-billing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tidb-cloud/tidb-cloud-billing.md b/tidb-cloud/tidb-cloud-billing.md index 20525c0fa7fe3..404dc05d0c178 100644 --- a/tidb-cloud/tidb-cloud-billing.md +++ b/tidb-cloud/tidb-cloud-billing.md @@ -98,7 +98,7 @@ The **Bills** tab shows the billing summary by projects & instances and the bill ### Row-based storage -Standard row-based storage stores data in **TiKV**. You can set the table's **Storage Class** to `Standard` using the following SQL statement or leave it unset (`NULL`). +TiDB tables use row-based storage by default, with data stored in **TiKV**. ```sql ALTER TABLE t1 STORAGE_CLASS='STANDARD'; From 2fde29980293f14a1055cd984eceeeb663a4e3ea Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 2 Jul 2026 10:48:50 +0800 Subject: [PATCH 8/8] Apply suggestions from code review --- tidb-cloud/tidb-cloud-billing.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tidb-cloud/tidb-cloud-billing.md b/tidb-cloud/tidb-cloud-billing.md index 404dc05d0c178..08c029864bf2f 100644 --- a/tidb-cloud/tidb-cloud-billing.md +++ b/tidb-cloud/tidb-cloud-billing.md @@ -100,10 +100,6 @@ The **Bills** tab shows the billing summary by projects & instances and the bill TiDB tables use row-based storage by default, with data stored in **TiKV**. -```sql -ALTER TABLE t1 STORAGE_CLASS='STANDARD'; -``` - ### Row-based storage with IA