还有一件事使分层存储更加出色:当您将数据保存在低成本对象存储层中时,无论您是否在服务中运行高可用性副本读取副本,您只需为这些数据支付一次费用。我们称之为分层存储的节省倍增效应。

同样适用于分支,例如,您可以使用分支来运行测试或创建开发环境。当创建一个(或多个)分支时,您将不会为与主分支共享的低成本存储中的数据付费。

如果您决定对不在主分支中的更多数据进行分层,您将需要付费将其存储在低成本层中,但通过将这些数据从分支的高性能层移动到更便宜的对象存储层,您仍然可以节省大量成本。

一旦您将数据分层到低成本对象存储层,我们会在您数据库的目录中保留对该数据的引用。

创建副本或分支主服务器只会复制目录中为所有分层数据保留的引用和元数据。

在计费方面,我们只对分层数据计数和计费一次,而不是对可能存在的每个数据引用进行计数和计费。

从分支中删除或取消分层块不会从引用同一块的任何其他服务器中删除它。

您可以有一个、多个或 0 个服务器引用同一数据块

  • 这意味着从分支中删除数据不会影响其他服务器(包括主服务器);它只是删除对该数据的引用,从该分支的角度来看,这在所有意图和目的上都等同于删除该数据
  • 主服务器和其他服务器不受影响,因为它们仍然在目录中保留着它们的引用和元数据
  • 如果至少有一个服务器引用对象存储层上的任何内容,我们永远不会删除它:只有当引用降至 0 时,数据才会被永久删除(或我们内部称之为硬删除操作)

如上所述,分层块仅计费一次,因此从与其他服务器共享的分支中删除或取消分层块不会影响计费,因为它从未计入计费。

删除或取消分层仅在该分支上分层的块按预期工作,并在以下部分中更详细地介绍。

提醒一下,分层数据是不可变的 - 不存在更新数据这样的事情。

您可以取消分层或删除块,在这种情况下,上一节中描述的内容涵盖了会发生什么。

您可以分层新数据,此时分支会以与所有分支类似的方式偏离主分支。

新分层的数据不与父服务器或同级服务器共享,这是为该服务器分层的新数据,为了计费目的,我们将其计为新对象。

如果您决定对不在主分支中的更多数据进行分层,您将需要付费将其存储在低成本层中,但通过将这些数据从分支的高性能层移动到更便宜的对象存储层,您仍然可以节省大量成本。

与其他类型的存储层类似,这种类型的偏差不会发生在副本上,因为它们必须与主服务器完全相同,这就是为什么我们在讨论删除块或分层其他数据时没有提及副本。

如上所述,如果至少有一个服务器引用对象存储层上的任何内容,我们永远不会删除它。只有当引用降至 0 时,数据才会被永久删除(或我们内部称之为硬删除操作)。

除此之外,我们将硬删除数据延迟 14 天,以便在发生恢复或 PITR 的情况下,所有分层数据都可用。在这种恢复情况下,新的引用被添加到已删除的分层块,因此它们不再是硬删除的候选对象。

一旦软删除数据后 14 天过去,即分层数据的引用次数降至 0,我们就会硬删除分层数据。

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页