> 1. What is the shape of your data?
> i.e. how big are your entities and what do they contain?
class USER_INVENTORY(db.Model):
TUSER_ID = db.IntegerProperty()
ITEM_TYPE = db.StringProperty()
ITEM_ID = db.IntegerProperty()
SUFFIX_ID = db.IntegerProperty()
HAVE_INVENTORY = db.IntegerProperty()
SELL_INVENTORY = db.IntegerProperty()
SELL_RESERVED = db.IntegerProperty()
SELL_AVAILABLE = db.IntegerProperty()
SELL_PRICE = db.FloatProperty()
SELL_IDEAL_INVENTORY = db.IntegerProperty()
BUY_INVENTORY = db.IntegerProperty()
BUY_RESERVED = db.IntegerProperty()
BUY_AVAILABLE = db.IntegerProperty()
BUY_PRICE = db.FloatProperty()
SHIPPING_VALUE = db.FloatProperty()
SELL_RANKING = db.IntegerProperty()
VERSION = db.IntegerProperty()
CATEGORY_ID = db.IntegerProperty() #
L0_CATEGORY_ID = db.IntegerProperty()
L1_CATEGORY_ID = db.IntegerProperty()
L2_CATEGORY_ID = db.IntegerProperty()
L3_CATEGORY_ID = db.IntegerProperty()
L4_CATEGORY_ID = db.IntegerProperty()
L5_CATEGORY_ID = db.IntegerProperty()
L6_CATEGORY_ID = db.IntegerProperty()
L7_CATEGORY_ID = db.IntegerProperty()
L8_CATEGORY_ID = db.IntegerProperty()
L9_CATEGORY_ID = db.IntegerProperty()
INVENTORY_TYPE = db.StringProperty() # G-Global C-Custom A-Auction
P-Pointer
INVENTORY_NAME = db.StringProperty()
ITEM_NUMBER = db.StringProperty()
ITEM_NAME = db.StringProperty()
SUFFIX_NAME = db.StringProperty()
ATTR_Set = db.StringProperty()
ATTR_Game = db.StringProperty()
ATTR_Rarity = db.StringProperty()
ATTR_Language = db.StringProperty()
ATTR_Style = db.StringProperty()
ATTR_Condition = db.StringProperty()
ATTR_Edition = db.StringProperty()
This is really the minimum you need to describe an inventory object.
If the number of properties is
the problem can I some how just return a subset of the properties I
need in the query?
> 2. How are you using entity groups? Is all your data in a single
> entity group (shared ancestor)?
Not at all.
> 3. Also try to experiment with permutations of your index and query to
> try to isolate the bottleneck. i.e. if you just fetch(500) on "SELECT
> * FROM USER_INVENTORY", does it still take as long? (and if so, then
> rephrase the question to eliminate the index aspects)
Changing to SELECT * FROM USER_INVENTORY doesn't help
it's the loop where the entities are being fetched. Is there some way
to
not return all the properties? Can I just get the keys that match the
query?
I remember some one in the goolge io videos saying not to sort or
filter
in memory. So I was trying to stick with making indexes do the work.
After looking at this setup I think sorting in memory with memcached
objects might be the only way to get anything done. That's rewriting
a database in python and using bigtable as nothing but a file store.
Also I can't see logs anymore:
HTTP response was too large: 1808121. The limit is: 1048576.
Clear logs please.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---