3天后也迁移到HRD

时间:2012-04-09 02:30:47

标签: google-app-engine

我正在将我的应用程序迁移到HRD,现在大约需要3天。 我也尝试暂停和恢复。它仍处于“复制”阶段。 我可以看到数据存储区读取操作的变化正在上升并开始计费。

我还提交了一个问题 http://code.google.com/p/googleappengine/issues/entry?template=Production%20issue

我尚未收到有关该问题的回复。 我要等多久?

-Aswath

1 个答案:

答案 0 :(得分:0)

迁移我的应用程序时遇到了类似的问题。最后我发现我有几个实体使用超过允许数量的索引(我认为它是5000)。截至2011年11月,App Engine未执行5000 index entry / entity limit。这是固定的,并且超出限制的所有现有实体密钥都被归为旧行为。迁移到HRD将更改您的密钥,因此如果超出限制,您将不得不减少实体数量。

我通过删除可能的索引来修复我的迁移,因为如果两个单独的查询,App Engine开始使用zig zag merge来合并结果。例如索引:

- kind: Product
  properties:
  - name: name
  - name: tags
  - name: tags
  - name: tags

可以更改为:

- kind: Product
  properties:
  - name: name
  - name: tags

我建议修复迁移的其他解决方案是:

  • 不平衡的命名空间。如果使用5000个名称空间,但99%的实体位于1个名称空间中,则该工具按名称空间进行分片,大多数实体将由单个工作程序实例进行服务。如果您将新实体写入此命名空间的速度比单个工作程序将它们复制到新应用程序的速度快,则迁移将永久运行

  • 比迁移工具更快地编写实体可以映射键。这是一种典型的情况,如果您每秒服务数百或数千个查询(我们称之为QPS)并且正在以该速率写入新实体,则映射器无法跟上。映射器负责将实体分片为桶,以便可以并行复制