[appengine-java] Design principles for a class with a lot of parameters

2011-12-14 Thread Miguel
I am designing the model of an app that needs a lot of values to be
stored and I am thinking about which is the best in terms of
retrieving-time:
- define an array with all of them inside
- define a property for each of them

My fear is that in the second case I will have a lot of column in
the datastore: which are the differences in terms of retrieving an
Entity with a lot of property or an entity with just 1 array?
I read a lot of documentation but it talks only about the difference
between the get and the query and not about the properties' number.

Thank you
Michele

-- 
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.



Re: [appengine-java] Design principles for a class with a lot of parameters

2011-12-14 Thread Ikai Lan (Google)
There are 2 main differences:

1. Indexes. You probably want to mark most of the items as unindexed to
lower the cost of a datastore write and datastore storage.
2. Possible serialization/deserialization time. Items are stored as
protocol buffers (http://code.google.com/p/protobuf/). I don't know off the
top of my head how this performs with large arrays versus individual
properties. My suspicion is that there shouldn't be a real world
difference, but I haven't verified this with my own testing, and I don't
know how many properties you have in mind.

The documentation talks about query speed vs. get by key because that's
where the bulk of the time will be spent (cross machine RPCs).

--
Ikai Lan
Developer Programs Engineer, Google App Engine
plus.ikailan.com | twitter.com/ikai



On Wed, Dec 14, 2011 at 8:19 AM, Miguel doctormig...@gmail.com wrote:

 I am designing the model of an app that needs a lot of values to be
 stored and I am thinking about which is the best in terms of
 retrieving-time:
 - define an array with all of them inside
 - define a property for each of them

 My fear is that in the second case I will have a lot of column in
 the datastore: which are the differences in terms of retrieving an
 Entity with a lot of property or an entity with just 1 array?
 I read a lot of documentation but it talks only about the difference
 between the get and the query and not about the properties' number.

 Thank you
 Michele

 --
 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.