一致性级别 " 读后新写入 " 与 " 可用 " 之间有何区别?
适用场景
NetApp 存储网格
问题解答
警告 建议不要对ONTAP FabricPool 使用存储分段一致性"可用"、因为它可能会导致发生原因 用户数据不一致。 |
对于 11.5.0.3 之前的版本:
可用(机头操作的最终一致性)与读后新写入一致性级别相同,但仅为机头操作提供最终一致性。如果存储节点不可用,则与读后新写入相比,可为机头操作提供更高的可用性。与 Amazon S3 一致性保证不同,仅适用于机头操作。
对于 11.5.0.3 之后的版本:
注意:从 11.5.0.3 开始,如果存储分段一致性设置为 " 可用 " ,则不存在的 GET 匹配结果将返回 404
行为与读后新写入一致性级别相同,但可为 head 和 get 操作提供最终一致性。如果存储节点不可用,则与读后写操作相比,可为机头和 GET 操作提供更高的可用性。与 Amazon S3 对机头和 GET 操作的一致性保证不同。
追加信息
从 11.5 开始,客户可以通过指标检测一个或多个应用程序是否正在执行不存在的读取。如果此指标表示频繁使用不存在的读取(例如,每隔几分钟一次),则这很好地表明,它们应从 " 读后写入 " 更改为 " 可用 " ,以便可以承受一个节点发生故障。这假定应用程序不需要写入后读一致性。要确定执行不存在读取的确切存储分段或租户,需要进一步进行日志分析或与应用程序所有者进行讨论,因为该指标不包含存储分段 / 租户信息。
storagegrid_s3_requests_total{operation=~"get_object|head_object",code="404"}