Skip to content

Commit e8d27a9

Browse files
AI Translate 02-upgrade to Simplified-Chinese (#2465)
* [INIT] Start translation to Simplified-Chinese * 🌐 Translate 10-compatibility.md to Simplified-Chinese * 🌐 Translate 10-compatibility.md to Simplified-Chinese --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent e74a10a commit e8d27a9

File tree

3 files changed

+270
-294
lines changed

3 files changed

+270
-294
lines changed

.translation-init

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Translation initialization: 2025-06-26T00:45:56.276983
1+
Translation initialization: 2025-06-27T06:30:03.404187

docs/cn/guides/10-deploy/02-upgrade/10-compatibility.md

Lines changed: 88 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22
title: 兼容性
33
sidebar_label: 兼容性
44
description:
5-
调查和管理兼容性
5+
检查和管理兼容性
66
---
77

8-
本指南将介绍如何调查和管理兼容性
9-
- databend-query 和 databend-meta 之间的兼容性。
10-
- 不同版本的 databend-meta 之间的兼容性。
8+
本指南将介绍如何检查和管理以下组件之间的兼容性
9+
- databend-query 和 databend-meta 之间
10+
- 不同版本的 databend-meta 之间
1111

1212
## databend-query 和 databend-meta 之间的兼容性
1313

1414
### 识别版本
1515

16-
- 找出 databend-query 的构建版本及其兼容的 databend-meta 版本:
16+
- 查询 databend-query 的构建版本及其兼容的 databend-meta 版本:
1717

1818
```shell
1919
databend-query --cmd ver
@@ -23,9 +23,9 @@ description:
2323
min-compatible-metasrv-version: 0.7.59
2424
```
2525

26-
这意味着此版本的 databend-query(`0.7.61-nightly`可以与至少 `0.7.59` 版本的 databend-meta 通信,包括该版本
26+
这意味着此构建版本的 databend-query(`0.7.61-nightly`可与版本至少为 `0.7.59`(含)的 databend-meta 通信。
2727

28-
- 找出 databend-meta 的构建版本及其兼容的 databend-query 版本:
28+
- 查询 databend-meta 的构建版本及其兼容的 databend-query 版本:
2929

3030
```shell
3131
databend-meta --cmd ver
@@ -35,49 +35,45 @@ description:
3535
min-compatible-client-version: 0.7.57
3636
```
3737

38-
这意味着此版本的 databend-meta(`0.7.61-nightly`可以与至少 `0.7.57` 版本的 databend-query 通信,包括该版本
38+
这意味着此构建版本的 databend-meta(`0.7.61-nightly`可与版本至少为 `0.7.57`(含)的 databend-query 通信。
3939

4040
### 维护兼容性
4141

42-
必须使用兼容版本的 databend-query 和 databend-meta 部署 Databend 集群
43-
当且仅当以下语句成立时,databend-query 和 databend-meta 才兼容
42+
Databend 集群必须部署兼容版本的 databend-query 和 databend-meta。
43+
当且仅当以下条件成立时,两者兼容
4444

4545
```
4646
databend-query.version >= databend-meta.min-compatible-client-version
47-
databend-bend.version >= databend-query.min-compatible-metasrv-version
47+
databend-meta.version >= databend-query.min-compatible-metasrv-version
4848
```
4949

5050
:::caution
5151

52-
如果部署了不兼容的版本,当 databend-query 尝试连接到 databend-meta 时,将发生 `InvalidArgument` 错误,
53-
可以在 databend-query 日志中找到。
54-
然后 databend-query 将停止工作。
52+
若部署不兼容版本,当 databend-query 尝试连接 databend-meta 时将出现 `InvalidArgument` 错误(可在 databend-query 日志中查看),
53+
随后 databend-query 将停止工作。
5554

5655
:::
5756

5857
#### 兼容性验证协议
5958

60-
当 meta-client(databend-query) databend-meta 之间建立连接时,将在 `handshake` RPC 中检查兼容性。
59+
当 meta-client(databend-query) databend-meta 建立连接时,会在 `handshake` RPC 中检查兼容性。
6160

62-
客户端 `C`(databend-query)和服务器 `S`(databend-meta)维护两个语义版本:
61+
客户端 `C`(databend-query)和服务器 `S`(databend-meta)各自维护两个语义版本:
62+
- `C` 维护自身版本(`C.ver`)和兼容的最低 `S` 版本(`C.min_srv_ver`
63+
- `S` 维护自身版本(`S.ver`)和兼容的最低 `C` 版本(`S.min_cli_ver`
6364

64-
- `C` 维护其自身的 semver(`C.ver`)和最小兼容的 `S` semver(`C.min_srv_ver`)。
65-
- `S` 维护其自身的 semver(`S.ver`)和最小兼容的 `S` semver(`S.min_cli_ver`)。
65+
握手流程:
66+
1. `C` 发送 `C.ver``S`
67+
2. `S` 收到请求后断言 `C.ver >= S.min_cli_ver`
68+
3. `S` 回复握手响应并返回 `S.ver`
69+
4. `C` 收到响应后断言 `S.ver >= C.min_srv_ver`
6670

67-
握手时:
71+
两项断言均成立时握手成功。
6872

69-
- `C` 将其版本 `C.ver` 发送到 `S`
70-
-`S` 收到握手请求时,`S` 断言 `C.ver >= S.min_cli_ver`
71-
- 然后 `S` 使用其 `S.ver` 回复握手回复。
72-
-`C` 收到回复时,`C` 断言 `S.ver >= C.min_srv_ver`
73-
74-
如果这两个断言都成立,则握手成功。
75-
76-
例如:
77-
- `S: (ver=3, min_cli_ver=1)``C: (ver=3, min_srv_ver=2)` 兼容。
78-
- `S: (ver=4, min_cli_ver=4)``C: (ver=3, min_srv_ver=2)` ****兼容。
79-
因为虽然 `S.ver(4) >= C.min_srv_ver(3)` 成立,
80-
`C.ver(3) >= S.min_cli_ver(4)` 不成立。
73+
示例:
74+
- `S: (ver=3, min_cli_ver=1)` 兼容 `C: (ver=3, min_srv_ver=2)`
75+
- `S: (ver=4, min_cli_ver=4)` ****兼容 `C: (ver=3, min_srv_ver=2)`
76+
(因 `C.ver(3) >= S.min_cli_ver(4)` 不成立)
8177

8278
```text
8379
C.ver: 1 3 4
@@ -93,7 +89,7 @@ S.ver: 2 3 4
9389

9490
#### 兼容性状态
9591

96-
以下是最新的 query-meta 兼容性的说明
92+
最新 query-meta 兼容性图示
9793

9894
| `Meta\Query` | [0.9.41, 1.1.34) | [1.1.34, 1.2.287) | [1.2.287, 1.2.361) | [1.2.361, +∞) |
9995
|:-------------------|:-----------------|:---------------|:-----------|:-----------|
@@ -106,85 +102,74 @@ S.ver: 2 3 4
106102
| [1.2.226, 1.2.258) |||||
107103
| [1.2.258, +∞) |||||
108104

109-
未包含在上述图表中的历史版本:
110-
111-
- Query `[0.7.59, 0.8.80)` 与 Meta `[0.8.30, 0.9.23)` 兼容。
112-
- Query `[0.8.80, 0.9.41)` 与 Meta `[0.8.35, 0.9.42)` 兼容。
113-
105+
历史版本补充:
106+
- Query `[0.7.59, 0.8.80)` 兼容 Meta `[0.8.30, 0.9.23)`
107+
- Query `[0.8.80, 0.9.41)` 兼容 Meta `[0.8.35, 0.9.42)`
114108

115109
<img src="/img/deploy/compatibility.excalidraw.png"/>
116110

117-
# databend-query 之间的兼容性
111+
# databend-query 版本兼容性
118112

119113
## 版本兼容性矩阵
120114

121-
| Query version | Backward compatible with | Key Changes |
115+
| Query 版本 | 向后兼容版本 | 主要变更 |
122116
|:-------------------|:--------------------------|:------------|
123-
| [-∞, 1.2.307) | [-∞, 1.2.311) | Original format |
124-
| [1.2.307, 1.2.311) | [-∞, 1.2.311) | Added Role info with PB/JSON support |
125-
| [1.2.311, 1.2.709) | [1.2.307, +∞) | Role info serialized to PB only |
126-
| [1.2.709, +∞) | [1.2.709, +∞) | **Important**: Fuse storage path changed |
117+
| [-∞, 1.2.307) | [-∞, 1.2.311) | 原始格式 |
118+
| [1.2.307, 1.2.311) | [-∞, 1.2.311) | 新增 Role 信息(支持 PB/JSON) |
119+
| [1.2.311, 1.2.709) | [1.2.307, +∞) | Role 信息仅序列化为 PB |
120+
| [1.2.709, +∞) | [1.2.709, +∞) | **重要**:Fuse 存储路径变更 |
121+
122+
## 重要变更与升级说明
127123

128-
## Important Changes & Upgrade Instructions
124+
### 版本 1.2.307
125+
- 支持通过 PB/JSON 反序列化 Role 信息
126+
- 仅支持将 Role 信息序列化为 JSON
127+
- **若使用早期版本,请优先升级至此版本**
129128

130-
### Version 1.2.307
131-
- Support deserialize Role info with PB and JSON
132-
- Only support serialize Role info to JSON
133-
- **Upgrade to this version first** if you're on an earlier version
129+
### 版本 1.2.311
130+
- 仅支持将 Role 信息序列化为 PB
131+
- **升级至 1.2.307 后需升级至此版本**
132+
- 升级路径示例:`1.2.306 → 1.2.307 → 1.2.311 → 1.2.312`
134133

135-
### Version 1.2.311
136-
- Only support serialize Role info to PB
137-
- **Upgrade to this version next** after reaching 1.2.307
138-
- Example upgrade path: `1.2.306 -> 1.2.307 -> 1.2.311 -> 1.2.312`
134+
### 版本 1.2.709
135+
- **重要变更**:Fuse 存储路径调整
136+
- ⚠️ 1.2.709 之前版本可能无法读取 1.2.709+ 版本的部分数据
137+
- ⚠️ **建议**:同一租户下所有节点需同时升级
138+
- 避免混用 1.2.709 前后版本节点,防止数据访问异常
139139

140-
### Version 1.2.709
141-
- **Important Change**: Fuse storage path modified
142-
- ⚠️ Versions before 1.2.709 may not be able to read some data from versions 1.2.709+
143-
- ⚠️ **Recommendation**: All nodes under the same tenant should be upgraded together
144-
- Avoid mixing nodes with versions before and after 1.2.709 to prevent potential data access issues
140+
### 版本 1.2.764
141+
- 若需为 `system_history` 表指定不同存储位置,租户内所有节点需升级至 1.2.764+
145142

146-
## databend-meta 之间的兼容性
143+
## databend-meta 版本兼容性
147144

148-
| Meta version | Backward compatible with |
145+
| Meta 版本 | 向后兼容版本 |
149146
|:--------------------|:-------------------------|
150147
| [0.9.41, 1.2.212) | [0.9.41, 1.2.212) |
151148
| [1.2.212, 1.2.479) | [0.9.41, 1.2.479) |
152149
| [1.2.479, 1.2.655) | [1.2.288, 1.2.655) |
153150
| [1.2.655, +∞) | [1.2.288, +∞) |
154151

155-
156152
![](@site/static/img/deploy/compat-meta-meta-1-2-655.svg)
157153

158-
- `1.2.53` 不兼容,允许滚动升级,无需传输快照。
159-
快照格式已更改,因此在滚动升级期间,
160-
它要求所有节点数据都是最新的,确保不需要使用快照进行复制。
161-
162-
- `1.2.163` 功能:gRPC API:添加了 `kv_read_v1()`。用于流式读取。
163-
164-
- `1.2.212` 2023-11-16 功能:raft API:`install_snapshot_v1()`。与旧版本兼容。
165-
支持滚动升级。
166-
在此版本中,databend-meta raft-server 引入了一个新的 API `install_snapshot_v1()`
167-
raft-client 将尝试使用这个新的 API 或原始的 `install_snapshot()`
168-
169-
- `1.2.479` 2024-05-21 从客户端和服务器中删除:`install_snapshot()`(v0)。
170-
`install_snapshot_v1()` 是安装快照的唯一 API,并且对于客户端来说是**必需的**
171-
172-
- `1.2.528` 2024-06-13 删除磁盘数据版本 `V001`。使用 `V002` 的第一个版本是 `1.2.53`,2023-08-08。
173-
因此,自 `1.2.528` 以来,最旧的兼容版本是 `1.2.53`
174-
因此,自此版本起,兼容性保持不变。
175-
176-
- `1.2.552` 2024-07-02 引入磁盘 `V003`,使用 `rotbl` 格式快照,
177-
`V002` 兼容。最旧的兼容版本是 `1.2.288``1.2.212~1.2.287` 已删除)。
178-
179-
- `1.2.655` 2024-11-11 引入磁盘 `V004`,使用基于 WAL 的 Raft 日志存储,
180-
`V002` 兼容。最旧的兼容版本是 `1.2.288``1.2.212~1.2.287` 已删除)。
181-
182-
183-
## databend-meta 磁盘数据的兼容性
184-
185-
Databend-meta 的磁盘数据随着时间的推移而演变,同时保持向后兼容性。
186-
187-
| DataVersion | Databend-version | Min Compatible with |
154+
- `1.2.53` 不兼容,允许无快照传输的滚动升级
155+
快照格式变更要求所有节点数据保持最新,确保无需快照复制
156+
- `1.2.163` 功能:新增流式读取 gRPC API `kv_read_v1()`
157+
- `1.2.212` (2023-11-16) 功能:新增 raft API `install_snapshot_v1`(兼容旧版本,支持滚动升级)
158+
raft-client 将自动选择新 API 或原始 `install_snapshot()`
159+
- `1.2.479` (2024-05-21) 移除:客户端/服务端的 `install_snapshot()`(v0)
160+
`install_snapshot_v1()` 成为唯一快照安装 API(**必需**
161+
- `1.2.528` (2024-06-13) 移除磁盘数据版本 `V001`
162+
首个使用 `V002` 的版本为 `1.2.53` (2023-08-08),故自此版本起最低兼容版本为 `1.2.53`
163+
- `1.2.552` (2024-07-02) 引入磁盘数据版本 `V003``rotbl` 格式快照,兼容 `V002`
164+
最低兼容版本为 `1.2.288`(已移除 `1.2.212~1.2.287`
165+
- `1.2.655` (2024-11-11) 引入磁盘数据版本 `V004`(基于 WAL 的 Raft 日志存储,兼容 `V002`
166+
最低兼容版本为 `1.2.288`(已移除 `1.2.212~1.2.287`
167+
168+
## databend-meta 磁盘数据兼容性
169+
170+
Databend-meta 磁盘数据随版本演进并保持向后兼容:
171+
172+
| 数据版本(DataVersion) | Databend 版本 | 最低兼容版本 |
188173
|:------------|:-----------------|:--------------------|
189174
| V004 | 1.2.655 | V002 |
190175
| V003 | 1.2.547 | V002 |
@@ -193,11 +178,11 @@ Databend-meta 的磁盘数据随着时间的推移而演变,同时保持向后
193178

194179
### 识别版本
195180

196-
启动时,Databend-meta 将显示磁盘数据版本
197-
198-
例如,运行 `databend-meta --single` 会产生:
181+
启动时显示磁盘数据版本
182+
```shell
183+
databend-meta --single
199184

200-
```
185+
# 输出:
201186
Databend Metasrv
202187

203188
Version: v1.1.33-nightly-...
@@ -207,20 +192,15 @@ On Disk Data:
207192
Dir: ./.databend/meta
208193
Version: version=V0, upgrading=None
209194
```
195+
- **工作数据版本(Working DataVersion)**:运行所用版本
196+
- **磁盘数据版本(On Disk Data Version)**:磁盘数据版本
210197

211-
- `Working DataVersion` 表示 Databend-meta 运行的版本。
212-
- `On Disk Data -- DataVersion` 表示磁盘数据的版本。
213-
214-
Working DataVersion 必须大于或等于磁盘 DataVersion;否则,它将 panic。
215-
216-
磁盘 DataVersion 必须与当前的 Databend-meta 版本兼容。
217-
如果不是,系统将提示用户降级 Databend-meta 并以 panic 退出。
198+
工作数据版本 ≥ 磁盘数据版本(否则 panic)。
199+
磁盘数据版本需与当前版本兼容(否则提示降级并退出)。
218200

219201
### 自动升级
220202

221-
`databend-meta` 启动时,如果磁盘数据与工作 DataVersion 兼容,则会升级磁盘数据。
222-
升级进度将打印到 `stderr` 和 INFO 级别的日志文件中,例如:
223-
203+
启动时若磁盘数据与工作版本兼容,将自动升级。升级进度输出至 `stderr` 和日志:
224204
```text
225205
Upgrade on-disk data
226206
From: V0(2023-04-21: compatible with openraft v07 and v08, using openraft::compat)
@@ -231,16 +211,11 @@ Upgraded 167 records
231211
Finished upgrading: version: V001, upgrading: None
232212
Write header: version: V001, upgrading: None
233213
```
234-
235-
如果 `databend-meta` 在升级完成之前崩溃,
236-
它将清除部分升级的数据,并在再次启动时恢复升级。
214+
若升级过程中崩溃,重启时将清除部分升级数据并继续。
237215

238216
### 备份数据兼容性
239217

240-
- 导出的备份数据**只能使用**相同版本的 `databend-metactl` 导入。
241-
242-
- 备份的第一行是版本,例如:
218+
- 导出备份**仅限**同版本 `databend-metactl` 导入
219+
- 备份首行为版本标识:
243220
`["header",{"DataHeader":{"key":"header","value":{"version":"V100","upgrading":null}}}]`
244-
245-
- 导入时**不会自动升级**
246-
只有在启动 `databend-meta` 时才会自动升级。
221+
- 导入时**不触发**自动升级(仅 `databend-meta` 启动时执行)

0 commit comments

Comments
 (0)