I have read somewhere that all properties (lists or otherwise) are stored in an Entity including the property name. An Entity is a Bag of properties rather than a Set of Lists. Therefore your two approaches would take the same amount of storage for the Entity and your two queries would essentially be the exactly same. Also, every property generates one implicit index entry so that should also be the same. I would keep the fields separate as they are logically distinct.

On 2 Feb 2010, at 17:18, Raphael André Bauer wrote:

On Thu, Jan 28, 2010 at 11:14 AM, Max <thebb...@gmail.com> wrote:
Bump!

In my opinion, the 2nd one performs better but use more storage.
Because the first one fan out (n + m) copies whereas the second one
fans out (n * m) copies.

This is just MY THEORY. Please correct me if I am wrong.

thanks Max :)

does anybody have a pointer to a specification where I could look up
the exact time and space consumption of both querys on GAE?


Thanks,

Raphael

Thanks a lot,

Max

On 1月28日, 上午1時06分, Raphael André Bauer <raphael.andre.ba...@gmail.com>
wrote:
Hi everybody,

Suppose you have to entities. Entity1 has one list, Entity2 has two lists:

Entity1
List<String> tags_and_timestamps

Entity2
List<String> tags
List<String> timestamps

(I hope the peseudocode is ok - the questions is a general datastore
question and not dependent on JPA/JDO or low-level api).

Then I want to merge join my entities based on two properties: a
timestamp and on a tag.

Entity1 is a stupid entity simply storing everyhting in one list.
So I merge join on one list:
tags_and_timestamps == timestamp AND tags_and_timestamps == tag

Entity2 is separates both values, so I merge join on:
timestamps == timestamp AND tags == tag

The question is now: What is more efficient on the GAE datastore?
Separating the values into different lists or storing everything in
one list?

Thanks a lot,

Raphael

--
You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en .



--
You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en .


--
You received this message because you are subscribed to the Google Groups "Google 
App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to