知识卡片

分级软删除构筑三层防线

普通读书笔记卡 · 1630.b

内容

大规模误删除的最常见根源是应用程序删除逻辑本身有 Bug,防护应分层设计,各防不同角色的失误: 面向用户的回收站防用户手滑或账号被盗;应用层软删除(删除后立即对普通代码不可见,保留一段 时间供后台恢复)防内部开发者写错逻辑;面向第三方的”懒删除”(存储层在应用层确认删除后仍延迟 保留)防外部调用方误用。软删除应做成 API 默认行为而非可选项,否则新人写离线批处理时容易 意外跳过。

参考来源

- 位置:《SRE:Google运维解密》第26章《数据完整性:读写一致》"第一层:软删除"一节(源文件:_epub-src/OEBPS/Text/0009_0017.xhtml) - 结论依据:原文总结"应用中实现一个回收站机制,作为用户错误的主要防护手段……软删除机制是针对开发者错误的主要防范手段,以及用户错误的次要防范手段……在面向开发者的服务中,懒删除机制是针对内部开发者错误的主要防范手段,是针对外部开发者错误的次要防范手段",并指出最严重的删除案例常源于不熟悉代码的开发者。 - 原始内容:Google同时发现最严重的数据删除案例经常是由于某个不熟悉现有代码的开发者实现新的删除逻辑时造成的……最好能够使得不熟悉现有代码的开发者无法(或者非常困难)绕过软删除逻辑。一个有效方法是让云计算API提供内置的软删除和恢复删除API。