Skip to content

Commit

Permalink
*: refactor transaction documents (pingcap#2198)
Browse files Browse the repository at this point in the history
* Refactor transaction documents

* update transaction-related content

* wording

* update the content and address comments

* address comments

* address comment

* update other versions

* incorporate changes from another PR

Co-authored-by: anotherrachel <wangyajing@pingcap.com>
  • Loading branch information
dcalvin and anotherrachel authored Feb 20, 2020
1 parent a4eae84 commit f310595
Show file tree
Hide file tree
Showing 53 changed files with 1,035 additions and 1,638 deletions.
5 changes: 2 additions & 3 deletions dev/TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -235,9 +235,9 @@
- [基于角色的访问控制](/dev/reference/security/role-based-access-control.md)
- [TiDB 证书鉴权使用指南](/dev/reference/security/cert-based-authentication.md)
+ 事务
- [事务语句](/dev/reference/transactions/overview.md)
- [事务模型](/dev/reference/transactions/transaction-model.md)
- [事务概览](/dev/reference/transactions/overview.md)
- [隔离级别](/dev/reference/transactions/transaction-isolation.md)
- [乐观事务](/dev/reference/transactions/transaction-optimistic.md)
- [悲观事务](/dev/reference/transactions/transaction-pessimistic.md)
+ 系统数据库
- [`mysql`](/dev/reference/system-databases/mysql.md)
Expand Down Expand Up @@ -271,7 +271,6 @@
- [Grafana 监控最佳实践](/dev/reference/best-practices/grafana-monitor.md)
- [PD 调度策略最佳实践](/dev/reference/best-practices/pd-scheduling.md)
- [海量 Region 集群调优最佳实践](/dev/reference/best-practices/massive-regions.md)
- [乐观锁事务最佳实践](/dev/reference/best-practices/optimistic-transaction.md)
+ [TiSpark 使用指南](/dev/reference/tispark.md)
+ TiDB Binlog
- [概述](/dev/reference/tidb-binlog/overview.md)
Expand Down
25 changes: 1 addition & 24 deletions dev/glossary.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 术语表
summary: 学习 TiDB 相关术语。
summary: 了解 TiDB 相关术语。
category: glossary
---

Expand All @@ -13,29 +13,16 @@ category: glossary
ACID 是指数据库管理系统在写入或更新资料的过程中,为保证[事务](#事务)是正确可靠的,所必须具备的四个特性:原子性 (atomicity)、一致性 (consistency)、隔离性(isolation)以及持久性(durability)。

* 原子性 (atomicity) 指一个事务中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。TiDB 通过 Primary Key 所在 [Region](#regionpeerraft-group) 的原子性来保证分布式事务的原子性。

* 一致性 (consistency) 指在事务开始之前和结束以后,数据库的完整性没有被破坏。TiDB 在写入数据之前,会校验数据的一致性,校验通过才会写入内存并返回成功。

* 隔离性 (isolation) 指数据库允许多个并发事务同时对其数据进行读写和修改的能力。隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致,主要用于处理并发场景。TiDB 目前只支持一种隔离级别,即可重复读。

* 持久性 (durability) 指事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。在 TiDB 中,事务一旦提交成功,数据全部持久化存储到 TiKV,此时即使 TiDB 服务器宕机也不会出现数据丢失。

## B

### 悲观事务

悲观事务假定并发事务会发生冲突,所以每一条 SQL 语句执行后都会检测冲突,只有在确保事务一定能够执行成功后,才开始提交。另有[乐观事务](#乐观事务)

## L

### Leader/Follower/Learner

它们分别对应 [Peer](#regionpeerraft-group) 的三种角色。其中 Leader 负责响应客户端的读写请求;Follower 被动地从 Leader 同步数据,当 Leader 失效时会进行选举产生新的 Leader;Learner 是一种特殊的角色,它只参与同步 raft log 而不参与投票,在目前的实现中只短暂存在于添加副本的中间步骤。

### 乐观事务

乐观事务假定不会发生并发冲突,只有在事务最终提交时才会检测冲突。另有[悲观事务](#悲观事务)

## O

### Operator
Expand Down Expand Up @@ -86,16 +73,6 @@ Scheduler(调度器)是 PD 中生成调度的组件。PD 中每个调度器
- `hot-region-scheduler`:保持不同节点的读写热点 Region 均衡。
- `evict-leader-{store-id}`:驱逐某个节点的所有 Leader。(常用于滚动升级)

### 事务

事务指一系列有限的数据库操作序列。TiDB 中的事务具备 [ACID](#ACID) 四个特性。

### Store

PD 中的 Store 指的是集群中的存储节点,也就是 tikv-server 实例。Store 与 TiKV 实例是严格一一对应的,即使在同一主机甚至同一块磁盘部署多个 TiKV 实例,这些实例也对会对应不同的 Store。

## X

### 显式事务/隐式事务

由事务控制语句定义开始和结束的事务为显式事务。无需定义开始的事务为隐式事务。
267 changes: 0 additions & 267 deletions dev/reference/best-practices/optimistic-transaction.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ set @@global.tidb_distsql_scan_concurrency = 10;

默认值:10

这个变量用来设置最多可重试次数,即在一个事务执行中遇到可重试的错误(例如事务冲突、事务提交过慢或表结构变更)时,这个事务可以被重新执行,这个变量值表明最多可重试的次数
这个变量用来设置最大重试次数。一个事务执行中遇到可重试的错误(例如事务冲突、事务提交过慢或表结构变更)时,会根据该变量的设置进行重试。注意当 `tidb_retry_limit = 0` 时,也会禁用自动重试

### tidb_disable_txn_auto_retry

Expand All @@ -325,7 +325,7 @@ set @@global.tidb_distsql_scan_concurrency = 10;

这个变量不会影响自动提交的隐式事务和 TiDB 内部执行的事务,它们依旧会根据 `tidb_retry_limit` 的值来决定最大重试次数。

是否需要禁用自动重试,请参考[事务自动重试及带来的异常](/dev/reference/transactions/transaction-isolation.md#事务自动重试及带来的异常)
是否需要禁用自动重试,请参考[重试的局限性](/dev/reference/transactions/transaction-optimistic.md#重试的局限性)

### tidb_backoff_weight

Expand Down
2 changes: 1 addition & 1 deletion dev/reference/mysql-compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ TiDB 支持 MySQL 传输协议及其绝大多数的语法。这意味着您现

> **注意:**
>
> 本页内容仅涉及 MySQL 与 TiDB 的总体差异。关于[安全特性](/dev/reference/security/compatibility.md)[事务模型](/dev/reference/transactions/transaction-model.md)的兼容信息请查看各自具体页面。
> 本页内容仅涉及 MySQL 与 TiDB 的总体差异。关于[安全特性](/dev/reference/security/compatibility.md)[悲观事务模型](/dev/reference/transactions/transaction-pessimistic.md#和-mysql-innodb-的差异)的兼容信息请查看各自具体页面。
## 不支持的特性

Expand Down
2 changes: 1 addition & 1 deletion dev/reference/sql/statements/load-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,4 @@ LOAD DATA LOCAL INFILE '/mnt/evo970/data-sets/bikeshare-data/2017Q4-capitalbikes
## 另请参阅

* [INSERT](/dev/reference/sql/statements/insert.md)
* [Transaction Model](/dev/reference/transactions/transaction-model.md)
* [乐观事务模型](/dev/reference/transactions/transaction-optimistic.md)
Loading

0 comments on commit f310595

Please sign in to comment.