2012-02-21 9 views
1

同じエンティティグループに属するエンティティに対して複数の「put」操作を実行する要求があります。appengineデータストア複数の "puts"トランザクションパフォーマンス

トランザクションに参加することは重要ではありませんが、パフォーマンス上の影響が何であるか不思議でした。コミット時に変更セットが1つしか書かれていないため、パフォーマンスが向上する可能性はありますか?

それ以上のことは、トランザクション内の単一のエンティティに複数の「put」操作がある場合です。最後に1つの "put"操作とは異なることはありますか?

答えて

1

いくつかの背景情報は、App Engineのデータストアは、Googleのメガストアデータベースに基づいており、あなたが休暇にしているとき、あなたはここでそれをよく読んですることができます:http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//pubs/archive/36971.pdf

超簡単な概要は、データストアがときのパフォーマンス上の利点を得ることですエンティティは、異なるサーバー上で並列に格納または読み取られます。エンティティグループ内でトランザクションセマンティクスを取得するには、すべてのトランザクションが同じサーバー上で連続して実行されます。したがって、彼らはより遅く実行されます。

私はGoogleの従業員ではないため、質問の最後の部分についてはわかりません。基本的には、複数のputを単一のputにまとめるトランザクションの最適化があるかどうかを確認しています。私はそのような最適化の言及を見たことがない、私はそれが存在するとは思わない。それぞれのput操作は本質的にエンティティ全体を書き込むため、単一のエンティティに対する複数のput操作は、最後に1つのput操作よりもはるかに悪いと思われます。

新しいndb APIには、このための最適化がいくつかあります。

関連する問題