1

根据 QLDB 文档,QLDB 提供视图(投影),如用户、提交视图来查询其中的数据。这些视图是从索引存储中提供的吗?如果是这样,当前和历史部分将成为索引存储的一部分。那么,为什么需要将历史记录存储在索引存储(更昂贵的存储)中,因为阅读历史应该可以从日志存储中获得(所有数据都以准确和有序的条目方式存储)?

4

1 回答 1

1

QLDB 日志包含您的所有交易。它按块地址排序,因此第一个事务写入块 1,然后下一个写入块 2,依此类推。

要查找文档的历史记录,需要查看每笔交易并确定具有该 id 的文档是否被 block-N 修改。QLDB 日志将包含数百万笔交易,因此出于性能和成本原因,不希望扫描数百万个区块。

索引正是解决扫描的方法,所以这就是我们这样做的原因。有一些明显的替代方案,例如:

  1. 与其将文档保存在索引存储中,不如仅保留块地址
  2. 仅在索引存储中保留文档的最后 N 个修订
  3. 在索引存储中仅保留一年的历史记录

如果您有这些或其他要求,我们很乐意听到它们。当前的历史保留策略基于客户在 QLDB 预览期间的要求。其他政策将是成本与性能的权衡。

于 2020-01-02T20:11:10.843 回答