9

何らかの理由で、既存のエンティティを作成することは、新しいエンティティを作成することと同じくらい費用がかかるという印象を受けました。そのため、私のコードの多くは、エンティティをより小さなエンティティに分割する方法に焦点を当てています。プロパティを変更すると、書き込みコストが少なくなります。ただし、ドキュメントを見ると、既存のエンティティのプットには次のコストがかかると記載されています。

変更されたインデックス付きプロパティ値ごとに1つの書き込み+4つの書き込み+変更された複合インデックス値ごとに2つの書き込み

コードの構造全体を変更する前に、詳細を理解していることを確認したいと思います。インデックスを「変更済み」と正確に見なすものは何ですか?4つのインデックス付き文字列プロパティがあり、複合インデックスがないとします。これを新しいエンティティとして配置するには、10回の書き込みが必要になります(2 + 2(indexed properties))。これらの文字列プロパティの1つを変更して、元に戻したとします。そのコストは5書き込みだけ(1 + 4 per modified index)でしょうか?私は何かが足りないのですか?考慮すべきことはありますか?

そして、4つのインデックス付きプロパティと1つのインデックスなしプロパティがあり、インデックスなしプロパティのみを変更した場合はどうなりますか?これは、再書き込みに1回の書き込みしかかかりません。

4

2 に答える 2

3

あなたのすべての仮定は正しいです。書き込みの目的がわかっている場合に役立ちます。1回の書き込みはエンティティ自体に対するものです。作成時のインデックス付きプロパティごとの2回の書き込みは、各プロパティの昇順および降順の単一プロパティインデックス用であり、更新時のインデックス付きプロパティごとの4回の書き込みは、古い値を削除し、新しい値をそれらの昇順および降順のインデックスに挿入します。

于 2012-08-26T22:36:08.310 に答える
1

3つのインデックス付きプロパティ(そのうちの1つはリスト)と4つのインデックスなしプロパティを持つモデルを更新する実験を実行しました。

mapreduce実行を使用して、インデックス付けされていないプロパティの1つを更新し、エンティティをPut()しました。

計算を正しく行った場合、インデックス付きのプロパティが3つある(更新されていない)にもかかわらず、エンティティごとに1回の書き込み操作しかかからないことを確認しました。

(mapreduceを使用して以来、私の計算は少し厄介だったかもしれません。mapreduce自体が大量のデータストア書き込みを発行します。mapreduce書き込みの数を推定するために別の実験を行ったので、それを説明しました)。

于 2012-08-25T20:37:23.127 に答える