From a23bee2376e8814a824391437a8486a2e2a25276 Mon Sep 17 00:00:00 2001 From: Wallace Date: Tue, 26 May 2020 18:37:11 +0800 Subject: [PATCH 1/2] cherry pick #3249 to release-3.0 Signed-off-by: ti-srebot --- TOC.md | 117 ++++++++++++++++++++++++++++++++++++++++++++ media/tikv-arch.png | Bin 0 -> 43653 bytes tikv-overview.md | 36 ++++++++++++++ 3 files changed, 153 insertions(+) create mode 100644 media/tikv-arch.png create mode 100644 tikv-overview.md diff --git a/TOC.md b/TOC.md index 68e8bc01711b..cc4ed778aeb6 100644 --- a/TOC.md +++ b/TOC.md @@ -215,6 +215,7 @@ - [`TRUNCATE`](/sql-statements/sql-statement-truncate.md) - [`UPDATE`](/sql-statements/sql-statement-update.md) - [`USE`](/sql-statements/sql-statement-use.md) +<<<<<<< HEAD - [约束](/constraints.md) - [生成列](/generated-columns.md) - [分区表](/partitioned-table.md) @@ -341,6 +342,122 @@ - [改进文档](/contribute.md#改进文档) + [TiDB 路线图](/roadmap.md) + 版本发布历史 +======= + + 数据类型 @张原嘉 + + [数据类型概述](/data-type-overview.md) + + [数据类型默认值](/data-type-default-values.md) + + [数值类型](/data-type-numeric.md) + + [日期和时间类型](/data-type-date-and-time.md) + + [字符串类型](/data-type-string.md) + + [JSON 类型](/data-type-json.md) + + 函数与操作符 @张原嘉 + + [函数与操作符概述](/functions-and-operators/functions-and-operators-overview.md) + + [表达式求值的类型转换](/functions-and-operators/type-conversion-in-expression-evaluation.md) + + [操作符](/functions-and-operators/operators.md) + + [控制流程函数](/functions-and-operators/control-flow-functions.md) + + [字符串函数](/functions-and-operators/string-functions.md) + + [数值函数与操作符](/functions-and-operators/numeric-functions-and-operators.md) + + [日期和时间函数](/functions-and-operators/date-and-time-functions.md) + + [位函数和操作符](/functions-and-operators/bit-functions-and-operators.md) + + [Cast 函数和操作符](/functions-and-operators/cast-functions-and-operators.md) + + [加密和压缩函数](/functions-and-operators/encryption-and-compression-functions.md) + + [信息函数](/functions-and-operators/information-functions.md) + + [JSON 函数](/functions-and-operators/json-functions.md) + + [GROUP BY 聚合函数](/functions-and-operators/aggregate-group-by-functions.md) + + [窗口函数](/functions-and-operators/window-functions.md) + + [其它函数](/functions-and-operators/miscellaneous-functions.md) + + [精度数学](/functions-and-operators/precision-math.md) + + [下推到 TiKV 的表达式列表](/functions-and-operators/expressions-pushed-down.md) + + [约束](/constraints.md) @于帅鹏 + + [生成列](/generated-columns.md) @黄文俊 + + [SQL 模式](/sql-mode.md) @张原嘉 + + 事务 + + [事务概览](/transaction-overview.md) @于帅鹏 + + [隔离级别](/transaction-isolation-levels.md) @于帅鹏 + + [乐观事务](/optimistic-transaction.md) @于帅鹏 + + [悲观事务](/pessimistic-transaction.md) @于帅鹏 + + 垃圾回收 (GC) + + [GC 机制简介](/garbage-collection-overview.md) + + [GC 配置](/garbage-collection-configuration.md) + + [视图](/views.md) @徐怀宇 + + [分区表](/partitioned-table.md) @毛康力 + + [字符集和排序规则](/character-set-and-collation.md) @黄文俊 + + 系统表 @陈霜 + + [`mysql`](/system-tables/system-table-overview.md) + + [`information_schema`](/system-tables/system-table-information-schema.md) + + `sql-diagnosis` + + [`cluster_info`](/system-tables/system-table-cluster-info.md) + + [`cluster_hardware`](/system-tables/system-table-cluster-hardware.md) + + [`cluster_config`](/system-tables/system-table-cluster-config.md) + + [`cluster_load`](/system-tables/system-table-cluster-load.md) + + [`cluster_systeminfo`](/system-tables/system-table-cluster-systeminfo.md) + + [`cluster_log`](/system-tables/system-table-cluster-log.md) + + [`metrics_schema`](/system-tables/system-table-metrics-schema.md) + + [`metrics_tables`](/system-tables/system-table-metrics-tables.md) + + [`metrics_summary`](/system-tables/system-table-metrics-summary.md) + + [`inspection_result`](/system-tables/system-table-inspection-result.md) + + [`inspection_summary`](/system-tables/system-table-inspection-summary.md) + + UI + + TiDB Dashboard @施闻轩 + + 访问 + + 概况页面 + + 集群信息页面 + + 流量可视化页面 + + SQL 语句分析页面 + + 慢查询页面 + + 集群诊断页面 + + 日志搜索页面 + + 实例性能分析页面 + + CLI + + [tikv-ctl](/tikv-control.md) @屈鹏 + + [pd-ctl](/pd-control.md) @陈书宁 + + [tidb-ctl](/tidb-control.md) @于帅鹏 + + [binlog-ctl](/tidb-binlog/binlog-control.md) @王相 + + [pd-recover](/pd-recover.md) @陈书宁 + + 命令行参数 + + [tidb-server](/command-line-flags-for-tidb-configuration.md) @于帅鹏 + + [tikv-server](/command-line-flags-for-tikv-configuration.md) @陈书宁 + + [tiflash-server](/tiflash/tiflash-command-line-flags.md) @孙若曦 + + [pd-server](/command-line-flags-for-pd-configuration.md) @陈书宁 + + 配置文件参数 + + [tidb-server](/tidb-configuration-file.md) @于帅鹏 + + [tikv-server](/tikv-configuration-file.md) @陈书宁 + + [tiflash-server](/tiflash/tiflash-configuration.md) @孙若曦 + + [pd-server](/pd-configuration-file.md) @陈书宁 + + 系统变量 + + [MySQL 系统变量](/system-variables.md) + + [TiDB 特定系统变量](/tidb-specific-system-variables.md) + + 存储引擎 + + TiKV + + [TiKV 简介](/tikv-overview.md) + + [RocksDB 简介](/rocksdb/rocksdb-overview.md) + + TiFlash + + [错误码](/error-codes.md) @于帅鹏 ++ 常见问题解答 (FAQ) + + [产品 FAQ](/faq/tidb-faq.md) @荣毅龙/启航 + + [SQL FAQ](/faq/sql-faq.md) @荣毅龙/启航 + + [部署运维 FAQ](/faq/deploy-and-maintain-faq.md) @荣毅龙/启航 + + [升级 FAQ](/faq/upgrade-faq.md) @荣毅龙/启航 + + [License FAQ](/faq/licensing-faq.md) @荣毅龙/启航 + + [高可用 FAQ](/faq/high-availability-faq.md) @荣毅龙/启航 + + [高可靠 FAQ](/faq/high-reliability-faq.md) @荣毅龙/启航 ++ [术语表](/glossary.md) @李琳 ++ [版本发布历史](/releases/release-notes.md) + + v4.0 + - [4.0.0-rc.2](/releases/release-4.0.0-rc.2.md) + - [4.0.0-rc.1](/releases/release-4.0.0-rc.1.md) + - [4.0.0-rc](/releases/release-4.0.0-rc.md) + - [4.0.0-beta.2](/releases/release-4.0.0-beta.2.md) + - [4.0.0-beta.1](/releases/release-4.0.0-beta.1.md) + - [4.0.0-beta](/releases/release-4.0.0-beta.md) + + v3.1 + - [3.1.1](/releases/release-3.1.1.md) + - [3.1.0 GA](/releases/release-3.1.0-ga.md) + - [3.1.0-rc](/releases/release-3.1.0-rc.md) + - [3.1.0-beta.2](/releases/release-3.1.0-beta.2.md) + - [3.1.0-beta.1](/releases/release-3.1.0-beta.1.md) + - [3.1.0-beta](/releases/release-3.1.0-beta.md) +>>>>>>> 6dc3273... Add tikv overview (#3249) + v3.0 - [3.0.15](/releases/release-3.0.15.md) - [3.0.14](/releases/release-3.0.14.md) diff --git a/media/tikv-arch.png b/media/tikv-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..7272faf31e018c8698617f61c793ab63b616eeda GIT binary patch literal 43653 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 Date: Fri, 3 Jul 2020 13:19:12 +0800 Subject: [PATCH 2/2] Update TOC.md --- TOC.md | 118 +-------------------------------------------------------- 1 file changed, 1 insertion(+), 117 deletions(-) diff --git a/TOC.md b/TOC.md index cc4ed778aeb6..4b46af5b47f5 100644 --- a/TOC.md +++ b/TOC.md @@ -215,7 +215,6 @@ - [`TRUNCATE`](/sql-statements/sql-statement-truncate.md) - [`UPDATE`](/sql-statements/sql-statement-update.md) - [`USE`](/sql-statements/sql-statement-use.md) -<<<<<<< HEAD - [约束](/constraints.md) - [生成列](/generated-columns.md) - [分区表](/partitioned-table.md) @@ -281,6 +280,7 @@ - [PD 调度策略最佳实践](/best-practices/pd-scheduling-best-practices.md) - [海量 Region 集群调优最佳实践](/best-practices/massive-regions-best-practices.md) + [TiSpark 使用指南](/tispark-overview.md) + + [TiKV](/tikv-overview.md) + TiDB Binlog - [概述](/tidb-binlog/tidb-binlog-overview.md) - [部署使用](/tidb-binlog/deploy-tidb-binlog.md) @@ -342,122 +342,6 @@ - [改进文档](/contribute.md#改进文档) + [TiDB 路线图](/roadmap.md) + 版本发布历史 -======= - + 数据类型 @张原嘉 - + [数据类型概述](/data-type-overview.md) - + [数据类型默认值](/data-type-default-values.md) - + [数值类型](/data-type-numeric.md) - + [日期和时间类型](/data-type-date-and-time.md) - + [字符串类型](/data-type-string.md) - + [JSON 类型](/data-type-json.md) - + 函数与操作符 @张原嘉 - + [函数与操作符概述](/functions-and-operators/functions-and-operators-overview.md) - + [表达式求值的类型转换](/functions-and-operators/type-conversion-in-expression-evaluation.md) - + [操作符](/functions-and-operators/operators.md) - + [控制流程函数](/functions-and-operators/control-flow-functions.md) - + [字符串函数](/functions-and-operators/string-functions.md) - + [数值函数与操作符](/functions-and-operators/numeric-functions-and-operators.md) - + [日期和时间函数](/functions-and-operators/date-and-time-functions.md) - + [位函数和操作符](/functions-and-operators/bit-functions-and-operators.md) - + [Cast 函数和操作符](/functions-and-operators/cast-functions-and-operators.md) - + [加密和压缩函数](/functions-and-operators/encryption-and-compression-functions.md) - + [信息函数](/functions-and-operators/information-functions.md) - + [JSON 函数](/functions-and-operators/json-functions.md) - + [GROUP BY 聚合函数](/functions-and-operators/aggregate-group-by-functions.md) - + [窗口函数](/functions-and-operators/window-functions.md) - + [其它函数](/functions-and-operators/miscellaneous-functions.md) - + [精度数学](/functions-and-operators/precision-math.md) - + [下推到 TiKV 的表达式列表](/functions-and-operators/expressions-pushed-down.md) - + [约束](/constraints.md) @于帅鹏 - + [生成列](/generated-columns.md) @黄文俊 - + [SQL 模式](/sql-mode.md) @张原嘉 - + 事务 - + [事务概览](/transaction-overview.md) @于帅鹏 - + [隔离级别](/transaction-isolation-levels.md) @于帅鹏 - + [乐观事务](/optimistic-transaction.md) @于帅鹏 - + [悲观事务](/pessimistic-transaction.md) @于帅鹏 - + 垃圾回收 (GC) - + [GC 机制简介](/garbage-collection-overview.md) - + [GC 配置](/garbage-collection-configuration.md) - + [视图](/views.md) @徐怀宇 - + [分区表](/partitioned-table.md) @毛康力 - + [字符集和排序规则](/character-set-and-collation.md) @黄文俊 - + 系统表 @陈霜 - + [`mysql`](/system-tables/system-table-overview.md) - + [`information_schema`](/system-tables/system-table-information-schema.md) - + `sql-diagnosis` - + [`cluster_info`](/system-tables/system-table-cluster-info.md) - + [`cluster_hardware`](/system-tables/system-table-cluster-hardware.md) - + [`cluster_config`](/system-tables/system-table-cluster-config.md) - + [`cluster_load`](/system-tables/system-table-cluster-load.md) - + [`cluster_systeminfo`](/system-tables/system-table-cluster-systeminfo.md) - + [`cluster_log`](/system-tables/system-table-cluster-log.md) - + [`metrics_schema`](/system-tables/system-table-metrics-schema.md) - + [`metrics_tables`](/system-tables/system-table-metrics-tables.md) - + [`metrics_summary`](/system-tables/system-table-metrics-summary.md) - + [`inspection_result`](/system-tables/system-table-inspection-result.md) - + [`inspection_summary`](/system-tables/system-table-inspection-summary.md) - + UI - + TiDB Dashboard @施闻轩 - + 访问 - + 概况页面 - + 集群信息页面 - + 流量可视化页面 - + SQL 语句分析页面 - + 慢查询页面 - + 集群诊断页面 - + 日志搜索页面 - + 实例性能分析页面 - + CLI - + [tikv-ctl](/tikv-control.md) @屈鹏 - + [pd-ctl](/pd-control.md) @陈书宁 - + [tidb-ctl](/tidb-control.md) @于帅鹏 - + [binlog-ctl](/tidb-binlog/binlog-control.md) @王相 - + [pd-recover](/pd-recover.md) @陈书宁 - + 命令行参数 - + [tidb-server](/command-line-flags-for-tidb-configuration.md) @于帅鹏 - + [tikv-server](/command-line-flags-for-tikv-configuration.md) @陈书宁 - + [tiflash-server](/tiflash/tiflash-command-line-flags.md) @孙若曦 - + [pd-server](/command-line-flags-for-pd-configuration.md) @陈书宁 - + 配置文件参数 - + [tidb-server](/tidb-configuration-file.md) @于帅鹏 - + [tikv-server](/tikv-configuration-file.md) @陈书宁 - + [tiflash-server](/tiflash/tiflash-configuration.md) @孙若曦 - + [pd-server](/pd-configuration-file.md) @陈书宁 - + 系统变量 - + [MySQL 系统变量](/system-variables.md) - + [TiDB 特定系统变量](/tidb-specific-system-variables.md) - + 存储引擎 - + TiKV - + [TiKV 简介](/tikv-overview.md) - + [RocksDB 简介](/rocksdb/rocksdb-overview.md) - + TiFlash - + [错误码](/error-codes.md) @于帅鹏 -+ 常见问题解答 (FAQ) - + [产品 FAQ](/faq/tidb-faq.md) @荣毅龙/启航 - + [SQL FAQ](/faq/sql-faq.md) @荣毅龙/启航 - + [部署运维 FAQ](/faq/deploy-and-maintain-faq.md) @荣毅龙/启航 - + [升级 FAQ](/faq/upgrade-faq.md) @荣毅龙/启航 - + [License FAQ](/faq/licensing-faq.md) @荣毅龙/启航 - + [高可用 FAQ](/faq/high-availability-faq.md) @荣毅龙/启航 - + [高可靠 FAQ](/faq/high-reliability-faq.md) @荣毅龙/启航 -+ [术语表](/glossary.md) @李琳 -+ [版本发布历史](/releases/release-notes.md) - + v4.0 - - [4.0.0-rc.2](/releases/release-4.0.0-rc.2.md) - - [4.0.0-rc.1](/releases/release-4.0.0-rc.1.md) - - [4.0.0-rc](/releases/release-4.0.0-rc.md) - - [4.0.0-beta.2](/releases/release-4.0.0-beta.2.md) - - [4.0.0-beta.1](/releases/release-4.0.0-beta.1.md) - - [4.0.0-beta](/releases/release-4.0.0-beta.md) - + v3.1 - - [3.1.1](/releases/release-3.1.1.md) - - [3.1.0 GA](/releases/release-3.1.0-ga.md) - - [3.1.0-rc](/releases/release-3.1.0-rc.md) - - [3.1.0-beta.2](/releases/release-3.1.0-beta.2.md) - - [3.1.0-beta.1](/releases/release-3.1.0-beta.1.md) - - [3.1.0-beta](/releases/release-3.1.0-beta.md) ->>>>>>> 6dc3273... Add tikv overview (#3249) + v3.0 - [3.0.15](/releases/release-3.0.15.md) - [3.0.14](/releases/release-3.0.14.md)