odedahay / geomodel

Automatically exported from code.google.com/p/geomodel
0 stars 0 forks source link

Investigate whether one location_geocells property is actually slower than many location_geocell_N properties #4

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Originally, geocells were stored on each entity in one StringListProperty. 
This was changed in favor of a large number of location_geocell_N 
properties (where N=1, 2, ..., 13). 13 is currently MAX_GEOCELL_RESOLUTION.

Although this probably improves query-time performance slightly, are the 
performance gains worth the hassle of introducing 13 internal properties on 
each entity, as well as requiring developers to have 13 new indexes in 
index.yaml for each new type of query?

Original issue reported on code.google.com by api.roman.public@gmail.com on 27 Apr 2009 at 6:51

GoogleCodeExporter commented 8 years ago
Also, investigate whether or not having 13 separate indexes negatively affect 
disk
usage (i.e. is the overhead per index very large?)

Original comment by api.roman.public@gmail.com on 15 Jul 2009 at 5:55

GoogleCodeExporter commented 8 years ago

Original comment by api.roman.public@gmail.com on 15 Jul 2009 at 6:58

GoogleCodeExporter commented 8 years ago
A positive step for switching back to a single StringListProperty is #6 in this 
blog
post:

http://googleappengine.blogspot.com/2009/06/10-things-you-probably-didnt-know-ab
out.html

But beware of exploding indexes for an index on a single StringListProperty:

http://code.google.com/appengine/docs/python/datastore/queriesandindexes.html#Bi
g_Entities_and_Exploding_Indexes

Original comment by api.roman.public@gmail.com on 1 Aug 2009 at 9:27

GoogleCodeExporter commented 8 years ago
Also there doesn't seem to be adverse storage consequences for having 13 
indexes:

http://code.google.com/appengine/articles/index_building.html

Though it's still a pain in the ass to maintain 13 indexes per query in 
index.yaml.

Original comment by api.roman.public@gmail.com on 1 Aug 2009 at 6:11

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
Asked in StackOverflow: http://stackoverflow.com/questions/1220794

Original comment by api.roman.public@gmail.com on 3 Aug 2009 at 5:38

GoogleCodeExporter commented 8 years ago
Also asked here:
http://groups.google.com/group/google-appengine/browse_thread/thread/cfa43fcfd59
93ca4

But it looks like switching to a single StringListProperty is a good idea.

Next commit will use a single StringListProperty. Also need to document a 
migration
path for existing users.

Original comment by api.roman.public@gmail.com on 3 Aug 2009 at 6:39

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
Migration docs here:
http://code.google.com/p/geomodel/wiki/PreRevision8Migration

Original comment by api.roman.public@gmail.com on 4 Aug 2009 at 6:12