From 0c3599135c65bd8260c4931084df5aba50543c54 Mon Sep 17 00:00:00 2001 From: gccgdb1234 Date: Thu, 13 Oct 2022 13:14:11 +0800 Subject: [PATCH] doc: fix errors in architecture for 3.0 --- docs/en/21-tdinternal/write_follower.webp | Bin 0 -> 22972 bytes docs/en/21-tdinternal/write_leader.webp | Bin 0 -> 27982 bytes docs/zh/21-tdinternal/01-arch.md | 12 ++++++------ 3 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 docs/en/21-tdinternal/write_follower.webp create mode 100644 docs/en/21-tdinternal/write_leader.webp diff --git a/docs/en/21-tdinternal/write_follower.webp b/docs/en/21-tdinternal/write_follower.webp new file mode 100644 index 0000000000000000000000000000000000000000..1ca537cd60506a7e7ef0f9442bdcd9d8035fae4d GIT binary patch literal 22972 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 X_C!yb{Sc1A9VJg(ch=jZ@B#k=f<|X% literal 0 HcmV?d00001 diff --git a/docs/en/21-tdinternal/write_leader.webp b/docs/en/21-tdinternal/write_leader.webp new file mode 100644 index 0000000000000000000000000000000000000000..1771961b97766aaa43bc47f1311c441c94511477 GIT binary patch literal 27982 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 Da%>qb literal 0 HcmV?d00001 diff --git a/docs/zh/21-tdinternal/01-arch.md b/docs/zh/21-tdinternal/01-arch.md index b128b9d438..782e4bcdd8 100644 --- a/docs/zh/21-tdinternal/01-arch.md +++ b/docs/zh/21-tdinternal/01-arch.md @@ -137,7 +137,7 @@ Leader Vnode 遵循下面的写入流程:
图 3 TDengine Leader 写入流程
1. leader vnode 收到应用的数据插入请求,验证 OK,进入下一步; -2. vnode 将该请求的原始数据包写入数据库日志文件 WAL。如果 walLevel 设置为 2,而且 fsync 设置为 0,TDengine 还将 WAL 数据立即落盘,以保证即使宕机,也能从数据库日志文件中恢复数据,避免数据的丢失; +2. vnode 将该请求的原始数据包写入数据库日志文件 WAL。如果 `wal_level` 设置为 2,而且 `wal_fsync_period` 设置为 0,TDengine 还将 WAL 数据立即落盘,以保证即使宕机,也能从数据库日志文件中恢复数据,避免数据的丢失; 3. 如果有多个副本,vnode 将把数据包转发给同一虚拟节点组内的 follower vnodes,该转发包带有数据的版本号(version); 4. 写入内存,并将记录加入到 skip list。但如果未达成一致,会触发回滚操作; 5. leader vnode 返回确认信息给应用,表示写入成功; @@ -152,7 +152,7 @@ Leader Vnode 遵循下面的写入流程:
图 4 TDengine Follower 写入流程
1. follower vnode 收到 leader vnode 转发了的数据插入请求。 -2. vnode 将把该请求的原始数据包写入数据库日志文件 WAL。如果 walLevel 设置为 2,而且 fsync 设置为 0,TDengine 还将 WAL 数据立即落盘,以保证即使宕机,也能从数据库日志文件中恢复数据,避免数据的丢失。 +2. vnode 将把该请求的原始数据包写入数据库日志文件 WAL。如果 `wal_level` 设置为 2,而且 `wal_fsync_period` 设置为 0,TDengine 还将 WAL 数据立即落盘,以保证即使宕机,也能从数据库日志文件中恢复数据,避免数据的丢失。 3. 写入内存,更新内存中的 skip list。 与 leader vnode 相比,follower vnode 不存在转发环节,也不存在回复确认环节,少了两步。但写内存与 WAL 是完全一样的。 @@ -165,7 +165,7 @@ Vnode 会保持一个数据版本号(version),对内存数据进行持久 ### 同步复制 -对于数据一致性要求更高的场景,异步数据复制提供的最终一致性无法满足要求。因此 TDengine 提供同步复制的机制供用户选择。在创建数据库时,除指定副本数 replica 之外,用户还需要指定新的参数 strict。如果 strict 等于 1,它表示每次 leader 转发给副本时,需要等待半数以上副本达成一致后,才能通知应用,数据在 follower 已经写入成功。如果在一定的时间内,得不到半数以上副本的确认,leader vnode 将返回错误给应用。 +对于数据一致性要求更高的场景,异步数据复制提供的最终一致性无法满足要求。因此 TDengine 提供同步复制的机制供用户选择。在创建数据库时,除指定副本数 `replica` 之外,用户还需要指定新的参数 `strict`。如果 `strict` 等于 1,它表示每次 leader 转发给副本时,需要等待半数以上副本达成一致后,才能通知应用,数据在 follower 已经写入成功。如果在一定的时间内,得不到半数以上副本的确认,leader vnode 将返回错误给应用。 采用同步复制,系统的性能会有所下降,而且 latency 会增加。因为元数据要强一致,mnode 之间的数据同步缺省就是采用的同步复制。 @@ -183,11 +183,11 @@ TDengine 通过查询函数向用户提供毫秒级的数据获取能力。直 TDengine 采用数据驱动的方式让缓存中的数据写入硬盘进行持久化存储。当 vnode 中缓存的数据达到一定规模时,为了不阻塞后续数据的写入,TDengine 也会拉起落盘线程将缓存的数据写入持久化存储。TDengine 在数据落盘时会打开新的数据库日志文件,在落盘成功后则会删除老的数据库日志文件,避免日志文件无限制地增长。 -为充分利用时序数据特点,TDengine 将一个 vnode 保存在持久化存储的数据切分成多个文件,每个文件只保存固定天数的数据,这个天数由系统配置参数 days 决定。切分成多个文件后,给定查询的起止日期,无需任何索引,就可以立即定位需要打开哪些数据文件,大大加快读取速度。 +为充分利用时序数据特点,TDengine 将一个 vnode 保存在持久化存储的数据切分成多个文件,每个文件只保存固定天数的数据,这个天数由系统配置参数 `duration` 决定。切分成多个文件后,给定查询的起止日期,无需任何索引,就可以立即定位需要打开哪些数据文件,大大加快读取速度。 -对于采集的数据,一般有保留时长,这个时长由系统配置参数 keep 决定。超过这个设置天数的数据文件,将被系统自动删除,释放存储空间。 +对于采集的数据,一般有保留时长,这个时长由系统配置参数 `keep` 决定。超过这个设置天数的数据文件,将被系统自动删除,释放存储空间。 -给定 days 与 keep 两个参数,一个典型工作状态的 vnode 中总的数据文件数为:向上取整 `(keep/days)+1` 个。总的数据文件个数不宜过大,也不宜过小。10 到 100 以内合适。基于这个原则,可以设置合理的 days。目前的版本,参数 keep 可以修改,但对于参数 days,一旦设置后,不可修改。 +给定 `duration` 与 `keep` 两个参数,一个典型工作状态的 vnode 中总的数据文件数为:向上取整 `(keep/duration)+1` 个。总的数据文件个数不宜过大,也不宜过小。10 到 100 以内合适。基于这个原则,可以设置合理的 `duration`。目前的版本,参数 `keep` 可以修改,但对于参数 `duration`,一旦设置后,不可修改。 在每个数据文件里,一张表的数据是一块一块存储的。一张表可以有一到多个数据文件块。在一个文件块里,数据是列式存储的,占用的是一片连续的存储空间,这样大大提高读取速度。文件块的大小由系统参数 maxRows (每块最大记录条数)决定,缺省值为 4096。这个值不宜过大,也不宜过小。过大,定位具体时间段的数据的搜索时间会变长,影响读取速度;过小,数据块的索引太大,压缩效率偏低,也影响读取速度。 -- GitLab