1

主に 2 つの情報グループを含むエンティティ アカウントがあります。

Account {
    a1 // Group 1 rarely change
    a2
    a3
    a4
    ...
    b1 // Group 2 change frequently
    b2
    b3
    b4
    ...
}

最初のグループはあまり頻繁に更新されない一般的な情報ですが、グループ 2 は頻繁に変更されます。

グループ 2 を別のエンティティに抽出し、キーをアカウントに保存する必要があるのではないかと考えているので、グループ 2 を更新するときは、グループ 2 のデータを put() するだけで済みます。

私の懸念は、サーバーに対するほとんどすべての操作で、グループ 1 + 2 の両方からのデータが必要になることです。Account を 2 つに分割すると、両方のデータを取得するために 2 つの get() を実行する必要があります。

読み取り形式のデータ ストアは、書き込みよりもはるかに安価であることを知っています。ただし、エンティティを分割しても、put() の呼び出しは減りません。この場合、put() と get() のどちらにパフォーマンスを集中させるべきかわかりません。

ありがとう

4

1 に答える 1

1

If the data in group 1 doesn't change, indexes don't get updated, so there's no monetary cost involved with updating them, while there is a cost to doing the second fetch.

You always need all the data so it doesn't make sense for you to split them.

The benefit you would get from splitting would be in performance. Fetching/putting a small entity takes less time than a big entity. So, for example, if Group 1 was really big (as in total size in bytes) and you didn't need the data, you could improve your performance by only fetching/putting an entity with Group 2. This doesn't sound like your scenario.

If say group 1 was 500KB, I'd consider splitting it. Although if you have to fetch group 1 all the time anyways, that nullifies the benefit.

于 2013-08-16T15:35:25.490 に答える