在多租户应用程序中优化GAE / J备份和还原

时间:2014-01-17 09:48:09

标签: java google-app-engine namespaces google-cloud-storage

我有一个多租户GAE / J应用程序,并已实施基于cron的夜间备份到Google云端存储。备份似乎简单而便宜,15GB的总数据主要包括索引。

然而,在运行测试 - 恢复后,我有几个观察结果,我正在寻找建议。

  1. 我的备份/恢复策略只涉及从一个命名空间进行恢复,但GAE不允许在恢复期间指定命名空间(尽管它用于备份)。
  2. 我不得不将我的所有数据恢复到我为此目的创建的中间应用程序。
  3. 该计划涉及在任何名称空间遭受数据丢失的情况下对缺失的实体进行二次备份。
  4. 最后将该特定数据集还原到我的实时应用程序。
  5. 以上是有效的,但它是:

    1. 昂贵:我支付的恢复费用主要包含不需要的名称空间。
    2. 耗时
    3. 解决方法是分别指定每个命名空间的备份,以便我可以根据需要单独访问它们。但我真的不喜欢在某个地方维护命名空间列表的想法。

      我读过有关GAEBAR的内容,但了解它并不适用于Java应用程序。

      我很想知道是否有其他人在这方面有任何实际经验/建议?

      (当然,如果Google支持从多名称空间云备份中恢复单个NS,那么最好的解决方案)

1 个答案:

答案 0 :(得分:0)

  

我的备份/恢复策略只涉及从一个恢复   命名空间,但GAE不允许在期间指定命名空间   恢复(尽管它用于备份)。

这是因为命名空间是在实体的密钥中编码的。如果只提供某个名称空间中的对象,则只会更新这些实体。

  

但我真的不喜欢必须维护我的清单   命名空间。

您可以查询此类“命名空间”,它会显示一个命名空间列表

SELECT * FROM __namespace__