@@ -23,7 +23,7 @@ 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
2828- 要查找 databend-meta 的构建版本及其兼容的 databend-query 版本:
2929
@@ -35,7 +35,7 @@ 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
@@ -49,9 +49,8 @@ databend-bend.version >= databend-query.min-compatible-metasrv-version
4949
5050::: caution
5151
52- 如果部署了不兼容的版本,当 databend-query 尝试连接 databend-meta 时,将会发生 ` InvalidArgument ` 错误,
53- 该错误可以在 databend-query 日志中找到。
54- 然后 databend-query 将停止工作。
52+ 如果部署了不兼容的版本,当 databend-query 尝试连接 databend-meta 时,会发生 ` InvalidArgument ` 错误,
53+ 该错误可以在 databend-query 日志中找到。然后 databend-query 将停止工作。
5554
5655:::
5756
@@ -67,15 +66,16 @@ databend-bend.version >= databend-query.min-compatible-metasrv-version
6766当握手时:
6867
6968- ` C ` 发送其版本 ` C.ver ` 给 ` S ` ,
70- - 当 ` S ` 收到握手请求时 ,` S ` 断言 ` C.ver >= S.min_cli_ver ` 。
69+ - 当 ` S ` 接收到握手请求时 ,` S ` 断言 ` C.ver >= S.min_cli_ver ` 。
7170- 然后 ` S ` 回复握手响应,包含其 ` S.ver ` 。
72- - 当 ` C ` 收到响应时 ,` C ` 断言 ` S.ver >= C.min_srv_ver ` 。
71+ - 当 ` C ` 接收到响应时 ,` C ` 断言 ` S.ver >= C.min_srv_ver ` 。
7372
7473如果这两个断言都成立,则握手成功。
7574
7675例如:
7776- ` 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) ` 兼容。
77+ - ` S: (ver=4, min_cli_ver=4) ` 与 ` C: (ver=3, min_srv_ver=2) ` ** 不兼容** 。
78+
7979 因为虽然 ` S.ver(4) >= C.min_srv_ver(3) ` 成立,
8080 但 ` C.ver(3) >= S.min_cli_ver(4) ` 不成立。
8181
@@ -93,7 +93,8 @@ S.ver: 2 3 4
9393
9494#### 兼容性状态
9595
96- 以下是 query-meta 最新兼容性的说明:
96+ 以下是最新 query-meta 兼容性的说明:
97+
9798
9899| ` Meta\Query ` | [ 0.9.41, 1.1.34) | [ 1.1.34, 1.2.287) | [ 1.2.287, 1.2.361) | [ 1.2.361, +∞) |
99100| :-------------------| :-----------------| :---------------| :-----------| :-----------|
@@ -116,11 +117,12 @@ S.ver: 2 3 4
116117
117118## databend-query 之间的兼容性
118119
119- | Query 版本 | 向后兼容于 |
120- | :-------------------| :--------------------------|
121- | [ -∞, 1.2.307) | [ -∞, 1.2.311) |
122- | [ 1.2.307, 1.2.311) | [ -∞, 1.2.311) |
123- | [ 1.2.311, +∞) | [ 1.2.307, +∞) |
120+ | Query 版本 | 向后兼容 |
121+ | :----------------| :----------|
122+ | [ -∞, 1.2.307) | [ -∞, 1.2.311) |
123+ | [ 1.2.307, 1.2.311) | [ -∞, 1.2.311) |
124+ | [ 1.2.311, +∞) | [ 1.2.307, +∞) |
125+
124126
125127自 1.2.307 起,支持使用 pb 和 json 反序列化 Role 信息,但仅支持将 Role 信息序列化为 json。
126128
@@ -137,19 +139,20 @@ S.ver: 2 3 4
137139
138140## databend-meta 之间的兼容性
139141
140- | Meta 版本 | 向后兼容于 |
141- | :-------------------- | :---------------- ---------|
142- | [ 0.9.41, 1.2.212) | [ 0.9.41, 1.2.212) |
143- | [ 1.2.212, 1.2.479) | [ 0.9.41, 1.2.479) |
144- | [ 1.2.479, 1.2.655) | [ 1.2.288, 1.2.655) |
145- | [ 1.2.655, +∞) | [ 1.2.288, +∞) |
142+ | Meta 版本 | 向后兼容 |
143+ | :-----------------| : ---------|
144+ | [ 0.9.41, 1.2.212) | [ 0.9.41, 1.2.212) |
145+ | [ 1.2.212, 1.2.479) | [ 0.9.41, 1.2.479) |
146+ | [ 1.2.479, 1.2.655) | [ 1.2.288, 1.2.655) |
147+ | [ 1.2.655, +∞) | [ 1.2.288, +∞) |
146148
147149
148- ![ Image ] ( https://github.com/user-attachments/assets/f63d80ee-f646-4d6a-9bec-be607e47088d )
150+ ![ ] ( @site/static/img/deploy/compat-meta-meta-1-2-655.svg )
149151
150152- ` 1.2.53 ` 不兼容,允许在不传输快照的情况下进行滚动升级。
151153 快照格式已更改,因此在滚动升级期间,
152- 需要所有节点数据保持最新,确保无需通过快照进行复制。
154+ 需要所有节点数据都是最新的,确保不需要通过快照进行复制。
155+
153156
154157- ` 1.2.163 ` 功能:gRPC API:添加了 ` kv_read_v1() ` 。用于流式读取。
155158
@@ -159,7 +162,9 @@ S.ver: 2 3 4
159162 raft-client 将尝试使用此新 API 或原始的 ` install_snapshot() ` 。
160163
161164- ` 1.2.479 ` 2024-05-21 移除:` install_snapshot() ` (v0) 从客户端和服务器中移除。
162- ` install_snapshot_v1() ` 是安装快照的唯一 API,并且成为客户端的 ** 必需** 功能。
165+
166+ ` install_snapshot_v1() ` 是安装快照的唯一 API,并且成为客户端的** 必需** 。
167+
163168
164169- ` 1.2.528 ` 2024-06-13 移除磁盘数据版本 ` V001 ` 。第一个使用 ` V002 ` 的版本是 ` 1.2.53 ` ,2023-08-08。
165170 因此,自 ` 1.2.528 ` 起,最旧的兼容版本是 ` 1.2.53 ` 。
@@ -177,11 +182,11 @@ S.ver: 2 3 4
177182Databend-meta 的磁盘数据随着时间的推移而演变,同时保持向后兼容性。
178183
179184| 数据版本 | Databend 版本 | 最小兼容版本 |
180- | :------------ | :----------------- | :------- -------------|
181- | V004 | 1.2.655 | V002 |
182- | V003 | 1.2.547 | V002 |
183- | V002 | 1.2.53 | V001 |
184- | V001 | 1.1.40 | V0 |
185+ | :---------| :--------------| : -------------|
186+ | V004 | 1.2.655 | V002 |
187+ | V003 | 1.2.547 | V002 |
188+ | V002 | 1.2.53 | V001 |
189+ | V001 | 1.1.40 | V0 |
185190
186191### 识别版本
187192
@@ -210,8 +215,8 @@ Working DataVersion 必须大于或等于磁盘 DataVersion;否则,它将 pa
210215
211216### 自动升级
212217
213- 当 ` databend-meta ` 启动时,如果磁盘数据与 Working DataVersion 兼容,则会进行升级 。
214- 升级进度将打印到 ` stderr ` 并记录到日志文件中 ,例如:
218+ 当 ` databend-meta ` 启动时,如果磁盘数据与 Working DataVersion 兼容,则会升级磁盘数据 。
219+ 升级进度将打印到 ` stderr ` 并记录到 INFO 级别的日志文件中 ,例如:
215220
216221``` text
217222Upgrade on-disk data
@@ -225,14 +230,15 @@ Write header: version: V001, upgrading: None
225230```
226231
227232如果 ` databend-meta ` 在升级完成前崩溃,
228- 它将在启动时清除部分升级的数据并恢复升级。
233+ 它将在启动时清除部分升级的数据并继续升级。
234+
229235
230236### 备份数据兼容性
231237
232238- 导出的备份数据 ** 只能** 使用相同版本的 ` databend-metactl ` 导入。
233239
234240- 备份的第一行是版本,例如:
235241 ` ["header",{"DataHeader":{"key":"header","value":{"version":"V100","upgrading":null}}}] `
242+ - 导入时** 不会** 自动升级。
236243
237- - 导入时 ** 不会** 进行自动升级。
238244 自动升级仅在 ` databend-meta ` 启动时进行。
0 commit comments