古いデータストア プロパティには、ストレージごとに 2 つのデータストア書き込み操作(DWO) があり、インデックスの作成方法によってはさらにいくつかの操作があることを覚えているようです。
古いデータストアでは、インデックスを作成する必要のないすべてのものを JSON 文字列に保存し、それを TextProperty として保存して、複数回の書き込みを節約することがよくありました。
すべてをデータストアから直接 JSON に保存して操作することに慣れてきたので、新しいアプリのために NDB に切り替えるときは、自然に NDB JsonProperty を使用しました。
いつものように、クォータ制限を初めてチェックしたとき (典型的な無料クォータ制限のユーザー エクスペリエンスですか?) 最適化について偏執的になり、すべてのデータストア書き込み (完全に JsonProperties のみのモデルで構成されている) がクロックアップしていることに気付きました。多くの DWO 割り当て。
すぐに疑問に思いました: JsonProperty の構造に応じて、GAE DataStore は複数の書き込みを行いますか? それとも、「ブロブ」ストアに必要な数の DWO で、プロパティ ブロブ全体をデータストアに格納するだけですか?
私は後者だと思い、ドキュメントでそのように読んだことを思い出しましたが、クォータの大量消費 (典型的な無料クォータ制限ユーザーのパラノイア?) を考えると、JsonProperty を使用することは、古いデータストアを使用して JSON を保存するほど効率的ではないのではないかと思いました。 TextProperty としての文字列 -- これは確かに構造化されていない blob です。
これが決定的に解決できればいいのですが、アプリだけに焦点を当てるという「appengine の約束」に戻ることができます。:)