2
0
Fork 0
mirror of https://github.com/Vonng/ddia.git synced 2026-06-21 08:56:57 +08:00

修改 第四章 Field tags and schema evolution 移除字段翻译的问题

原文是 :Removing a field is just like adding a field, with backward and forward compatibility concerns reversed.
This commit is contained in:
vdong 2023-09-04 11:54:14 +08:00 committed by GitHub
parent 0794d095df
commit 13dffa1c08
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

2
ch4.md
View file

@ -177,7 +177,7 @@ Thrift CompactProtocol 编码在语义上等同于 BinaryProtocol但是如 [
向后兼容性呢?只要每个字段都有一个唯一的标签号码,新的代码总是可以读取旧的数据,因为标签号码仍然具有相同的含义。唯一的细节是,如果你添加一个新的字段,你不能设置为必需。如果你要添加一个字段并将其设置为必需,那么如果新代码读取旧代码写入的数据,则该检查将失败,因为旧代码不会写入你添加的新字段。因此,为了保持向后兼容性,在模式的初始部署之后 **添加的每个字段必须是可选的或具有默认值**
删除一个字段就像添加一个字段,只是这回要考虑的是向前兼容性。这意味着你只能删除可选的字段(必需字段永远不能删除),而且你不能再次使用相同的标签号码(因为你可能仍然有数据写在包含旧标签号码的地方,而该字段必须被新代码忽略)。
删除一个字段就像添加一个字段,只是向后和向前兼容性的关注点被颠倒了。这意味着你只能删除可选的字段(必需字段永远不能删除),而且你不能再次使用相同的标签号码(因为你可能仍然有数据写在包含旧标签号码的地方,而该字段必须被新代码忽略)。
#### 数据类型和模式演变