4

過去数週間、データストア管理ツールを使用してデータ ストアの完全なバックアップを行うことに繰り返し失敗しました。この問題は、実行中の割り当てエラーに関係していると考えたため、アプリケーションを無料アプリから有料アプリに切り替えましたが、まだ問題があります。

ブロブストアへのバックアップを試行するたびに、プロセスが終了しないという問題が発生します。保留中のバックアップ リストにバックアップが表示されますが、実際には完了しません。現在、合計 43MB のデータしかないため、データ転送の問題とは見なされません。デフォルトのタスク キューを見ると、2 つの保留中のタスクがあることがわかります。1 つは /_ah/mapreduce/controller_callback への呼び出しで、もう 1 つは /_ah/mapreduce/worker_callback への呼び出しです。

worker_callback は再試行回数を増やします。唯一のエラーの手がかりは、前回の実行タブにあり、最後の HTTP 応答コードが 500 であることを示しています。エラー メッセージはなく、エラー ログには何も表示されず、試行を繰り返すだけです。そしてもう一度。

バックアップの問題を特定の名前空間の特定のエンティティの種類に絞り込むことができましたが、そのエンティティの種類が失敗し、他のエンティティは失敗しない理由を理解できません。主な違いは、エンティティの種類に多数のエンティティが埋め込まれていることですが、アプリ エンジンがそれらのエンティティを読み書きできる場合、バックアップに問題があるように見える理由を理解できません。エラーが発生した特定の名前空間には、セットアップした他の名前空間と比較して、そのエンティティの種類に対して最大のデータが格納されています。

worker_callback で発生しているエラーを確認できれば、バックアップが失敗する理由や、バックアップを妨げているデータの何が問題なのかを突き止めることができると考えています。バックアップに関するより詳細な情報を提供するために、設定/構成ファイルを介してセットアップ/有効にする必要があるものはありますか? または、この問題を調査/修正する方法を見つけるために調査すべき他の手段はありますか?

Java SDK と Objectify V3 を使用してデータ ストアを操作していることに言及する必要があります。また、Blobstore にデータをバックアップしています。

ありがとうございました。

4

2 に答える 2

3

アプリ エンジン チームの助けを借りて、問題の原因を突き止め、問題を回避することができました。他の誰かがこの問題に遭遇した場合に備えて、詳細を提供したいと思います。

問題 8363から、アプリ エンジン チームは、ログから、エンティティの種類に多数のプロパティがあるためにマップの削減が失敗したことを確認できることを示しました。失敗の原因となった特定のエンティティの種類には、map reduce がスキーマを書き出そうとしたときにエラーを生成していた多数の変数プロパティがありました。彼らは、バックアップが正常に機能するように、バックアップ内のこのようなエンティティを無視することが最終的な解決策であると指摘しました。

この問題を回避してバックアップを機能させるために私たちが行ったことは、Objectify にデータを保存する方法を変更することでした。HashMap() クラス メンバー フィールドで @embedded キーワードを使用したため、多数のプロパティが作成されていました。embedded キーワードはクラスを個々のコンポーネントに分割するため、多数のプロパティが生成されていました。メンバー フィールドを @serialized に切り替えてから、変換プロセスを実行して、新しい serialized プロパティを使用できるようにしました。これにより、バックアップ/復元が再び機能しました。

objectify の Web サイトで、埋め込みとシリアル化の違いについて詳しく読むことができます。

于 2012-10-31T17:13:33.597 に答える
0

snielson さん、こちらの公開課題トラッカーで課題を公開していただけませんか。この特定のシナリオをさらにデバッグできるように、忘れずにアプリケーション ID を追加してください。

ありがとう!

于 2012-10-25T20:42:40.260 に答える