From 31bdc8861662ed01a5db7dbbea086de4256e0fd7 Mon Sep 17 00:00:00 2001 From: Liuxiaozhen12 Date: Thu, 20 May 2021 16:04:12 +0800 Subject: [PATCH 1/8] update TiDB 6MB limit --- error-codes.md | 4 ++-- faq/migration-tidb-faq.md | 2 +- storage-engine/titan-overview.md | 2 +- tidb-limitations.md | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/error-codes.md b/error-codes.md index d59320bc0ee6e..9bdac20cd6edd 100644 --- a/error-codes.md +++ b/error-codes.md @@ -88,9 +88,9 @@ TiDB is compatible with the error codes in MySQL, and in most cases returns the * Error Number: 8025 - The single Key-Value pair being written is too large. The largest single Key-Value pair supported in TiDB is 6 MB. + The single Key-Value pair being written is too large. The largest single Key-Value pair supported in TiDB by default is 6 MB. - If a pair exceeds this limit, you need to manually deal with this row of data to meet the 6 MB limit. + If a pair exceeds this limit, you need to properly adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-New-in-v5.0) to ease the restrictions. * Error Number: 8026 diff --git a/faq/migration-tidb-faq.md b/faq/migration-tidb-faq.md index aeccad89a699e..0fe9a63d6ec43 100644 --- a/faq/migration-tidb-faq.md +++ b/faq/migration-tidb-faq.md @@ -138,7 +138,7 @@ The total read capacity has no limit. You can increase the read capacity by addi ### The error message `transaction too large` is displayed -Due to the limitation of the underlying storage engine, each key-value entry (one row) in TiDB should be no more than 6MB. +Due to the limitation of the underlying storage engine, each key-value entry (one row) in TiDB should be no more than 6MB. You can adjust the configuration items in the configuration file [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-New-in-v5.0) and the maximum value is 120MB. Distributed transactions need two-phase commit and the bottom layer performs the Raft replication. If a transaction is very large, the commit process would be quite slow and the write conflict is more likely to occur. Moreover, the rollback of a failed transaction leads to an unnecessary performance penalty. To avoid these problems, we limit the total size of key-value entries to no more than 100MB in a transaction by default. If you need larger transactions, modify the value of `txn-total-size-limit` in the TiDB configuration file. The maximum value of this configuration item is up to 10G. The actual limitation is also affected by the physical memory of the machine. diff --git a/storage-engine/titan-overview.md b/storage-engine/titan-overview.md index db4a9fed9835b..8969385641793 100644 --- a/storage-engine/titan-overview.md +++ b/storage-engine/titan-overview.md @@ -27,7 +27,7 @@ Titan is suitable for the scenarios where a huge volume of data is written to th The prerequisites for enabling Titan are as follows: -- The average size of values is large, or the size of all large values accounts for much of the total value size. Currently, the size of a value greater than 1 KB is considered as a large value. In some situations, this number (1 KB) can be 512 B. Note that a single value written to TiKV cannot exceed 6 MB due to the limitation of the TiKV Raft layer. +- The average size of values is large, or the size of all large values accounts for much of the total value size. Currently, the size of a value greater than 1 KB is considered as a large value. In some situations, this number (1 KB) can be 512 B. Note that a single value written to TiKV cannot exceed 8 MB due to the limitation of the TiKV Raft layer. You can adjust the configuration items in [`raft-entry-max-size`](/tikv-configuration-file.md#raft-entry-max-size) to ease the restrictions. - No range query will be performed or you do not need a high performance of range query. Because the data stored in Titan is not well-ordered, its performance of range query is poorer than that of RocksDB, especially for the query of a large range. According PingCAP's internal test, Titan's range query performance is 40% to a few times lower than that of RocksDB. - Sufficient disk space, because Titan reduces write amplification at the cost of disk space. In addition, Titan compresses values one by one, and its compression rate is lower than that of RocksDB. RocksDB compresses blocks one by one. Therefore, Titan consumes more storage space than RocksDB, which is expected and normal. In some situations, Titan's storage consumption can be twice that of RocksDB. diff --git a/tidb-limitations.md b/tidb-limitations.md index 4eafede29849d..58aea0525dbbf 100644 --- a/tidb-limitations.md +++ b/tidb-limitations.md @@ -51,7 +51,7 @@ This document describes the common usage limitations of TiDB, including the maxi | Type | Upper limit | |:----------|:----------| -| Size | 6 MB | +| Size | 6 MB by default, you can adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-New-in-v5.0) | ## Limitation on a single column From e170fb312d2e81bd7b6e1249e6a39ae87e14abd1 Mon Sep 17 00:00:00 2001 From: Liuxiaozhen12 Date: Thu, 20 May 2021 16:11:11 +0800 Subject: [PATCH 2/8] add an updated file --- best-practices/tidb-best-practices.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/best-practices/tidb-best-practices.md b/best-practices/tidb-best-practices.md index 6fec677f183c7..dc5d4d322fd7a 100644 --- a/best-practices/tidb-best-practices.md +++ b/best-practices/tidb-best-practices.md @@ -53,7 +53,7 @@ TiDB provides complete distributed transactions and the model has some optimizat As distributed transactions need to conduct two-phase commit and the bottom layer performs Raft replication, if a transaction is very large, the commit process would be quite slow, and the following Raft replication process is thus stuck. To avoid this problem, the transaction size is limited: - A transaction is limited to 5,000 SQL statements (by default) - - Each Key-Value entry is no more than 6 MB + - Each Key-Value entry is no more than 6 MB (by default) - The total size of Key-Value entries is no more than 10 GB. You can find similar limits in [Google Cloud Spanner](https://cloud.google.com/spanner/quotas). From 4f0304b4167edf90e14e04e5377a2bf329b52238 Mon Sep 17 00:00:00 2001 From: Liuxiaozhen12 Date: Thu, 20 May 2021 16:18:32 +0800 Subject: [PATCH 3/8] fix the dead anchor --- error-codes.md | 2 +- faq/migration-tidb-faq.md | 2 +- tidb-limitations.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/error-codes.md b/error-codes.md index 9bdac20cd6edd..6b12392e59b4f 100644 --- a/error-codes.md +++ b/error-codes.md @@ -90,7 +90,7 @@ TiDB is compatible with the error codes in MySQL, and in most cases returns the The single Key-Value pair being written is too large. The largest single Key-Value pair supported in TiDB by default is 6 MB. - If a pair exceeds this limit, you need to properly adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-New-in-v5.0) to ease the restrictions. + If a pair exceeds this limit, you need to properly adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v5.0) to ease the restrictions. * Error Number: 8026 diff --git a/faq/migration-tidb-faq.md b/faq/migration-tidb-faq.md index 0fe9a63d6ec43..307b7030d365d 100644 --- a/faq/migration-tidb-faq.md +++ b/faq/migration-tidb-faq.md @@ -138,7 +138,7 @@ The total read capacity has no limit. You can increase the read capacity by addi ### The error message `transaction too large` is displayed -Due to the limitation of the underlying storage engine, each key-value entry (one row) in TiDB should be no more than 6MB. You can adjust the configuration items in the configuration file [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-New-in-v5.0) and the maximum value is 120MB. +Due to the limitation of the underlying storage engine, each key-value entry (one row) in TiDB should be no more than 6MB. You can adjust the configuration items in the configuration file [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v5.0) and the maximum value is 120MB. Distributed transactions need two-phase commit and the bottom layer performs the Raft replication. If a transaction is very large, the commit process would be quite slow and the write conflict is more likely to occur. Moreover, the rollback of a failed transaction leads to an unnecessary performance penalty. To avoid these problems, we limit the total size of key-value entries to no more than 100MB in a transaction by default. If you need larger transactions, modify the value of `txn-total-size-limit` in the TiDB configuration file. The maximum value of this configuration item is up to 10G. The actual limitation is also affected by the physical memory of the machine. diff --git a/tidb-limitations.md b/tidb-limitations.md index 58aea0525dbbf..60725c7b5bb8e 100644 --- a/tidb-limitations.md +++ b/tidb-limitations.md @@ -51,7 +51,7 @@ This document describes the common usage limitations of TiDB, including the maxi | Type | Upper limit | |:----------|:----------| -| Size | 6 MB by default, you can adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-New-in-v5.0) | +| Size | 6 MB by default, you can adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v5.0) | ## Limitation on a single column From 08e144c38c27f59ec61051ca0e26b9e2874033e3 Mon Sep 17 00:00:00 2001 From: Liuxiaozhen12 Date: Thu, 20 May 2021 16:23:01 +0800 Subject: [PATCH 4/8] fix the dead anchors --- error-codes.md | 2 +- faq/migration-tidb-faq.md | 2 +- tidb-limitations.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/error-codes.md b/error-codes.md index 6b12392e59b4f..696cc3461b495 100644 --- a/error-codes.md +++ b/error-codes.md @@ -90,7 +90,7 @@ TiDB is compatible with the error codes in MySQL, and in most cases returns the The single Key-Value pair being written is too large. The largest single Key-Value pair supported in TiDB by default is 6 MB. - If a pair exceeds this limit, you need to properly adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v5.0) to ease the restrictions. + If a pair exceeds this limit, you need to properly adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) to ease the restrictions. * Error Number: 8026 diff --git a/faq/migration-tidb-faq.md b/faq/migration-tidb-faq.md index 307b7030d365d..c17fd003dd9b0 100644 --- a/faq/migration-tidb-faq.md +++ b/faq/migration-tidb-faq.md @@ -138,7 +138,7 @@ The total read capacity has no limit. You can increase the read capacity by addi ### The error message `transaction too large` is displayed -Due to the limitation of the underlying storage engine, each key-value entry (one row) in TiDB should be no more than 6MB. You can adjust the configuration items in the configuration file [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v5.0) and the maximum value is 120MB. +Due to the limitation of the underlying storage engine, each key-value entry (one row) in TiDB should be no more than 6MB. You can adjust the configuration items in the configuration file [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) and the maximum value is 120MB. Distributed transactions need two-phase commit and the bottom layer performs the Raft replication. If a transaction is very large, the commit process would be quite slow and the write conflict is more likely to occur. Moreover, the rollback of a failed transaction leads to an unnecessary performance penalty. To avoid these problems, we limit the total size of key-value entries to no more than 100MB in a transaction by default. If you need larger transactions, modify the value of `txn-total-size-limit` in the TiDB configuration file. The maximum value of this configuration item is up to 10G. The actual limitation is also affected by the physical memory of the machine. diff --git a/tidb-limitations.md b/tidb-limitations.md index 60725c7b5bb8e..53eccc7d8f51e 100644 --- a/tidb-limitations.md +++ b/tidb-limitations.md @@ -51,7 +51,7 @@ This document describes the common usage limitations of TiDB, including the maxi | Type | Upper limit | |:----------|:----------| -| Size | 6 MB by default, you can adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v5.0) | +| Size | 6 MB by default, you can adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) | ## Limitation on a single column From 07f5d14d769e8e2f8d7926ac372981c53a3b4ca2 Mon Sep 17 00:00:00 2001 From: Xiaozhen Liu <82579298+Liuxiaozhen12@users.noreply.github.com> Date: Fri, 21 May 2021 10:55:28 +0800 Subject: [PATCH 5/8] Apply suggestions from code review Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> --- error-codes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/error-codes.md b/error-codes.md index 696cc3461b495..c1d936830f447 100644 --- a/error-codes.md +++ b/error-codes.md @@ -88,9 +88,9 @@ TiDB is compatible with the error codes in MySQL, and in most cases returns the * Error Number: 8025 - The single Key-Value pair being written is too large. The largest single Key-Value pair supported in TiDB by default is 6 MB. + The single Key-Value pair being written is too large. The largest single Key-Value pair supported in TiDB is 6 MB by default. - If a pair exceeds this limit, you need to properly adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) to ease the restrictions. + If a pair exceeds this limit, you need to properly adjust the [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) configuration item to relax the limit. * Error Number: 8026 From 5ec0672aad0313d3b0fb35c94ecd492f7b70219a Mon Sep 17 00:00:00 2001 From: Liuxiaozhen12 Date: Fri, 21 May 2021 14:18:15 +0800 Subject: [PATCH 6/8] Apply suggestions from code review --- faq/migration-tidb-faq.md | 2 +- storage-engine/titan-overview.md | 2 +- tidb-limitations.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/faq/migration-tidb-faq.md b/faq/migration-tidb-faq.md index c17fd003dd9b0..07d1fa8c28fb8 100644 --- a/faq/migration-tidb-faq.md +++ b/faq/migration-tidb-faq.md @@ -138,7 +138,7 @@ The total read capacity has no limit. You can increase the read capacity by addi ### The error message `transaction too large` is displayed -Due to the limitation of the underlying storage engine, each key-value entry (one row) in TiDB should be no more than 6MB. You can adjust the configuration items in the configuration file [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) and the maximum value is 120MB. +Due to the limitation of the underlying storage engine, each key-value entry (one row) in TiDB should be no more than 6MB. You can adjust the [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) configuration item and the maximum value is 120MB. Distributed transactions need two-phase commit and the bottom layer performs the Raft replication. If a transaction is very large, the commit process would be quite slow and the write conflict is more likely to occur. Moreover, the rollback of a failed transaction leads to an unnecessary performance penalty. To avoid these problems, we limit the total size of key-value entries to no more than 100MB in a transaction by default. If you need larger transactions, modify the value of `txn-total-size-limit` in the TiDB configuration file. The maximum value of this configuration item is up to 10G. The actual limitation is also affected by the physical memory of the machine. diff --git a/storage-engine/titan-overview.md b/storage-engine/titan-overview.md index 8969385641793..3c5299f226871 100644 --- a/storage-engine/titan-overview.md +++ b/storage-engine/titan-overview.md @@ -27,7 +27,7 @@ Titan is suitable for the scenarios where a huge volume of data is written to th The prerequisites for enabling Titan are as follows: -- The average size of values is large, or the size of all large values accounts for much of the total value size. Currently, the size of a value greater than 1 KB is considered as a large value. In some situations, this number (1 KB) can be 512 B. Note that a single value written to TiKV cannot exceed 8 MB due to the limitation of the TiKV Raft layer. You can adjust the configuration items in [`raft-entry-max-size`](/tikv-configuration-file.md#raft-entry-max-size) to ease the restrictions. +- The average size of values is large, or the size of all large values accounts for much of the total value size. Currently, the size of a value greater than 1 KB is considered as a large value. In some situations, this number (1 KB) can be 512 B. Note that a single value written to TiKV cannot exceed 8 MB due to the limitation of the TiKV Raft layer. You can adjust the [`raft-entry-max-size`](/tikv-configuration-file.md#raft-entry-max-size) configuration item to relax the limit. - No range query will be performed or you do not need a high performance of range query. Because the data stored in Titan is not well-ordered, its performance of range query is poorer than that of RocksDB, especially for the query of a large range. According PingCAP's internal test, Titan's range query performance is 40% to a few times lower than that of RocksDB. - Sufficient disk space, because Titan reduces write amplification at the cost of disk space. In addition, Titan compresses values one by one, and its compression rate is lower than that of RocksDB. RocksDB compresses blocks one by one. Therefore, Titan consumes more storage space than RocksDB, which is expected and normal. In some situations, Titan's storage consumption can be twice that of RocksDB. diff --git a/tidb-limitations.md b/tidb-limitations.md index 53eccc7d8f51e..ed4262ef508b8 100644 --- a/tidb-limitations.md +++ b/tidb-limitations.md @@ -51,7 +51,7 @@ This document describes the common usage limitations of TiDB, including the maxi | Type | Upper limit | |:----------|:----------| -| Size | 6 MB by default, you can adjust the configuration items in [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) | +| Size | 6 MB by default, you can adjust the [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) configuration item | ## Limitation on a single column From c0c88c0ba5e31573df7c1a407f76b92572d1401d Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 1 Jun 2021 16:27:08 +0800 Subject: [PATCH 7/8] Apply suggestions from code review --- error-codes.md | 2 +- faq/migration-tidb-faq.md | 2 +- storage-engine/titan-overview.md | 2 +- tidb-limitations.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/error-codes.md b/error-codes.md index c1d936830f447..6867b930ba12e 100644 --- a/error-codes.md +++ b/error-codes.md @@ -90,7 +90,7 @@ TiDB is compatible with the error codes in MySQL, and in most cases returns the The single Key-Value pair being written is too large. The largest single Key-Value pair supported in TiDB is 6 MB by default. - If a pair exceeds this limit, you need to properly adjust the [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) configuration item to relax the limit. + If a pair exceeds this limit, you need to properly adjust the [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) configuration value to relax the limit. * Error Number: 8026 diff --git a/faq/migration-tidb-faq.md b/faq/migration-tidb-faq.md index 07d1fa8c28fb8..50e1939ecca18 100644 --- a/faq/migration-tidb-faq.md +++ b/faq/migration-tidb-faq.md @@ -138,7 +138,7 @@ The total read capacity has no limit. You can increase the read capacity by addi ### The error message `transaction too large` is displayed -Due to the limitation of the underlying storage engine, each key-value entry (one row) in TiDB should be no more than 6MB. You can adjust the [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) configuration item and the maximum value is 120MB. +Due to the limitation of the underlying storage engine, each key-value entry (one row) in TiDB should be no more than 6MB. You can adjust the [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) configuration value up to 120MB. Distributed transactions need two-phase commit and the bottom layer performs the Raft replication. If a transaction is very large, the commit process would be quite slow and the write conflict is more likely to occur. Moreover, the rollback of a failed transaction leads to an unnecessary performance penalty. To avoid these problems, we limit the total size of key-value entries to no more than 100MB in a transaction by default. If you need larger transactions, modify the value of `txn-total-size-limit` in the TiDB configuration file. The maximum value of this configuration item is up to 10G. The actual limitation is also affected by the physical memory of the machine. diff --git a/storage-engine/titan-overview.md b/storage-engine/titan-overview.md index 3c5299f226871..8f6e698d42340 100644 --- a/storage-engine/titan-overview.md +++ b/storage-engine/titan-overview.md @@ -27,7 +27,7 @@ Titan is suitable for the scenarios where a huge volume of data is written to th The prerequisites for enabling Titan are as follows: -- The average size of values is large, or the size of all large values accounts for much of the total value size. Currently, the size of a value greater than 1 KB is considered as a large value. In some situations, this number (1 KB) can be 512 B. Note that a single value written to TiKV cannot exceed 8 MB due to the limitation of the TiKV Raft layer. You can adjust the [`raft-entry-max-size`](/tikv-configuration-file.md#raft-entry-max-size) configuration item to relax the limit. +- The average size of values is large, or the size of all large values accounts for much of the total value size. Currently, the size of a value greater than 1 KB is considered as a large value. In some situations, this number (1 KB) can be 512 B. Note that a single value written to TiKV cannot exceed 8 MB due to the limitation of the TiKV Raft layer. You can adjust the [`raft-entry-max-size`](/tikv-configuration-file.md#raft-entry-max-size) configuration value to relax the limit. - No range query will be performed or you do not need a high performance of range query. Because the data stored in Titan is not well-ordered, its performance of range query is poorer than that of RocksDB, especially for the query of a large range. According PingCAP's internal test, Titan's range query performance is 40% to a few times lower than that of RocksDB. - Sufficient disk space, because Titan reduces write amplification at the cost of disk space. In addition, Titan compresses values one by one, and its compression rate is lower than that of RocksDB. RocksDB compresses blocks one by one. Therefore, Titan consumes more storage space than RocksDB, which is expected and normal. In some situations, Titan's storage consumption can be twice that of RocksDB. diff --git a/tidb-limitations.md b/tidb-limitations.md index ed4262ef508b8..86e4cae006e96 100644 --- a/tidb-limitations.md +++ b/tidb-limitations.md @@ -51,7 +51,7 @@ This document describes the common usage limitations of TiDB, including the maxi | Type | Upper limit | |:----------|:----------| -| Size | 6 MB by default, you can adjust the [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) configuration item | +| Size | 6 MB by default. You can adjust the size limit via the [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-new-in-v50) configuration item. | ## Limitation on a single column From 54edb13307555c4caf4ce81ccfc50ff42cecb02c Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 1 Jun 2021 16:32:17 +0800 Subject: [PATCH 8/8] Update storage-engine/titan-overview.md Co-authored-by: Lei Zhao --- storage-engine/titan-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage-engine/titan-overview.md b/storage-engine/titan-overview.md index 8f6e698d42340..d1fa7ecac018b 100644 --- a/storage-engine/titan-overview.md +++ b/storage-engine/titan-overview.md @@ -27,7 +27,7 @@ Titan is suitable for the scenarios where a huge volume of data is written to th The prerequisites for enabling Titan are as follows: -- The average size of values is large, or the size of all large values accounts for much of the total value size. Currently, the size of a value greater than 1 KB is considered as a large value. In some situations, this number (1 KB) can be 512 B. Note that a single value written to TiKV cannot exceed 8 MB due to the limitation of the TiKV Raft layer. You can adjust the [`raft-entry-max-size`](/tikv-configuration-file.md#raft-entry-max-size) configuration value to relax the limit. +- The average size of values is large, or the size of all large values accounts for much of the total value size. Currently, the size of a value greater than 1 KB is considered as a large value. In some situations, this number (1 KB) can be 512 B. Note that a single value written to TiKV cannot exceed 8 MB due to the limitation of the TiKV Raft layer. You can adjust the [`raft-entry-max-size`](/tikv-configuration-file.md#raft-entry-max-size) configuration value to relax the limit. - No range query will be performed or you do not need a high performance of range query. Because the data stored in Titan is not well-ordered, its performance of range query is poorer than that of RocksDB, especially for the query of a large range. According PingCAP's internal test, Titan's range query performance is 40% to a few times lower than that of RocksDB. - Sufficient disk space, because Titan reduces write amplification at the cost of disk space. In addition, Titan compresses values one by one, and its compression rate is lower than that of RocksDB. RocksDB compresses blocks one by one. Therefore, Titan consumes more storage space than RocksDB, which is expected and normal. In some situations, Titan's storage consumption can be twice that of RocksDB.