[google-appengine] Re: Datastore Optimisation
I haven't... I shall give that a go. On 9 Sep, 21:07, Robert Kluin robert.kl...@gmail.com wrote: So have you removed the DateTimeProperty or changed it to a StringProperty to see if the performance improved? Robert On Thu, Sep 9, 2010 at 13:32, Christopher Staite christophersta...@googlemail.com wrote: I've removed the ReferenceProperty (it wasn't really needed anyway) I'm now just storing the id as an IntegerProperty. This hasn't speed things up at all. I've managed to optimise it even further by looking at every call I make, but these are still taking forever. I think it's because I have the DateTimeProperty's in there. I am using AppStats at the moment, that's how I know it's these calls that are causing the issue. Thanks, Chris. On 9 Sep, 07:27, Fredrik Bonander carl.fredrik.bonan...@gmail.com wrote: It's little off topic, but a good thing to know is that the db.ReferanceProperty doesn't behave like in same fashion one migth think (at least I didn't). Accessing the ReferanceProperty will make a new call against the datastore. A good you can do if you want look in to what's eating the CPU quota is to use appstats. http://googleappengine.blogspot.com/2010/03/easy-performance-profilin... ..fredrik Sent from my iPad On 8 sep 2010, at 19.46, Eli Jones eli.jo...@gmail.com wrote: One way to find out would be to just do a test.. create a model called PotMemberDeux and make pot = db.StringProperty() in that one.. then test how long those puts take by assigning pot=p and use the same put code. I'd guess that both of the puts referencing the same pot=p could be what is slowing it down.. granted, I don't use ReferenceProperty at all... so, what do I know.. On Wed, Sep 8, 2010 at 9:24 AM, Christopher Staite christophersta...@googlemail.com wrote: Hi guys, I've been trying write my first real application for the app engine. After multiple re-writes I've finally got the hang of things. I think that I've got something efficient and correct. However, it's still not performing particularly quickly and I'd like to speed it up a little more. The main issue is that most calls have to place two entries into the datastore: class PotMember(db.Model): pot = db.ReferenceProperty(Pot) member_id = db.IntegerProperty() count = db.IntegerProperty() second_pot = db.BooleanProperty() purchase_time = db.DateTimeProperty(auto_now_add=True) process_time = db.DateTimeProperty(auto_now=True) newMembers = [] newMembers.append(PotMember(pot=p, member_id=member_id, count=count, second_pot=False)) newMembers.append(PotMember(pot=p, member_id=member_id, count=second_count, second_pot=True)) db.put(newMembers) This operation takes ~300-400ms, which is enough for App Engine to complain that my application is executing too slowly and needs to be optimised. What exactly is taking so long to place these entries? Most other put() operations take ~10ms to complete. Is it the use of the DateTimeProperty or the use of the ReferenceProperty that is slowing this call down? Any help would be appreciated. Many Thanks, Chris. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Datastore Optimisation
Your numbers sounds reasonable and I don't think it worst it to optimize anymore. -- Alex On Sep 8, 2:24 pm, Christopher Staite christophersta...@googlemail.com wrote: Hi guys, I've been trying write my first real application for the app engine. After multiple re-writes I've finally got the hang of things. I think that I've got something efficient and correct. However, it's still not performing particularly quickly and I'd like to speed it up a little more. The main issue is that most calls have to place two entries into the datastore: class PotMember(db.Model): pot = db.ReferenceProperty(Pot) member_id = db.IntegerProperty() count = db.IntegerProperty() second_pot = db.BooleanProperty() purchase_time = db.DateTimeProperty(auto_now_add=True) process_time = db.DateTimeProperty(auto_now=True) newMembers = [] newMembers.append(PotMember(pot=p, member_id=member_id, count=count, second_pot=False)) newMembers.append(PotMember(pot=p, member_id=member_id, count=second_count, second_pot=True)) db.put(newMembers) This operation takes ~300-400ms, which is enough for App Engine to complain that my application is executing too slowly and needs to be optimised. What exactly is taking so long to place these entries? Most other put() operations take ~10ms to complete. Is it the use of the DateTimeProperty or the use of the ReferenceProperty that is slowing this call down? Any help would be appreciated. Many Thanks, Chris. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Datastore Optimisation
I've removed the ReferenceProperty (it wasn't really needed anyway) I'm now just storing the id as an IntegerProperty. This hasn't speed things up at all. I've managed to optimise it even further by looking at every call I make, but these are still taking forever. I think it's because I have the DateTimeProperty's in there. I am using AppStats at the moment, that's how I know it's these calls that are causing the issue. Thanks, Chris. On 9 Sep, 07:27, Fredrik Bonander carl.fredrik.bonan...@gmail.com wrote: It's little off topic, but a good thing to know is that the db.ReferanceProperty doesn't behave like in same fashion one migth think (at least I didn't). Accessing the ReferanceProperty will make a new call against the datastore. A good you can do if you want look in to what's eating the CPU quota is to use appstats. http://googleappengine.blogspot.com/2010/03/easy-performance-profilin... ..fredrik Sent from my iPad On 8 sep 2010, at 19.46, Eli Jones eli.jo...@gmail.com wrote: One way to find out would be to just do a test.. create a model called PotMemberDeux and make pot = db.StringProperty() in that one.. then test how long those puts take by assigning pot=p and use the same put code. I'd guess that both of the puts referencing the same pot=p could be what is slowing it down.. granted, I don't use ReferenceProperty at all... so, what do I know.. On Wed, Sep 8, 2010 at 9:24 AM, Christopher Staite christophersta...@googlemail.com wrote: Hi guys, I've been trying write my first real application for the app engine. After multiple re-writes I've finally got the hang of things. I think that I've got something efficient and correct. However, it's still not performing particularly quickly and I'd like to speed it up a little more. The main issue is that most calls have to place two entries into the datastore: class PotMember(db.Model): pot = db.ReferenceProperty(Pot) member_id = db.IntegerProperty() count = db.IntegerProperty() second_pot = db.BooleanProperty() purchase_time = db.DateTimeProperty(auto_now_add=True) process_time = db.DateTimeProperty(auto_now=True) newMembers = [] newMembers.append(PotMember(pot=p, member_id=member_id, count=count, second_pot=False)) newMembers.append(PotMember(pot=p, member_id=member_id, count=second_count, second_pot=True)) db.put(newMembers) This operation takes ~300-400ms, which is enough for App Engine to complain that my application is executing too slowly and needs to be optimised. What exactly is taking so long to place these entries? Most other put() operations take ~10ms to complete. Is it the use of the DateTimeProperty or the use of the ReferenceProperty that is slowing this call down? Any help would be appreciated. Many Thanks, Chris. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Datastore Optimisation
So have you removed the DateTimeProperty or changed it to a StringProperty to see if the performance improved? Robert On Thu, Sep 9, 2010 at 13:32, Christopher Staite christophersta...@googlemail.com wrote: I've removed the ReferenceProperty (it wasn't really needed anyway) I'm now just storing the id as an IntegerProperty. This hasn't speed things up at all. I've managed to optimise it even further by looking at every call I make, but these are still taking forever. I think it's because I have the DateTimeProperty's in there. I am using AppStats at the moment, that's how I know it's these calls that are causing the issue. Thanks, Chris. On 9 Sep, 07:27, Fredrik Bonander carl.fredrik.bonan...@gmail.com wrote: It's little off topic, but a good thing to know is that the db.ReferanceProperty doesn't behave like in same fashion one migth think (at least I didn't). Accessing the ReferanceProperty will make a new call against the datastore. A good you can do if you want look in to what's eating the CPU quota is to use appstats. http://googleappengine.blogspot.com/2010/03/easy-performance-profilin... ..fredrik Sent from my iPad On 8 sep 2010, at 19.46, Eli Jones eli.jo...@gmail.com wrote: One way to find out would be to just do a test.. create a model called PotMemberDeux and make pot = db.StringProperty() in that one.. then test how long those puts take by assigning pot=p and use the same put code. I'd guess that both of the puts referencing the same pot=p could be what is slowing it down.. granted, I don't use ReferenceProperty at all... so, what do I know.. On Wed, Sep 8, 2010 at 9:24 AM, Christopher Staite christophersta...@googlemail.com wrote: Hi guys, I've been trying write my first real application for the app engine. After multiple re-writes I've finally got the hang of things. I think that I've got something efficient and correct. However, it's still not performing particularly quickly and I'd like to speed it up a little more. The main issue is that most calls have to place two entries into the datastore: class PotMember(db.Model): pot = db.ReferenceProperty(Pot) member_id = db.IntegerProperty() count = db.IntegerProperty() second_pot = db.BooleanProperty() purchase_time = db.DateTimeProperty(auto_now_add=True) process_time = db.DateTimeProperty(auto_now=True) newMembers = [] newMembers.append(PotMember(pot=p, member_id=member_id, count=count, second_pot=False)) newMembers.append(PotMember(pot=p, member_id=member_id, count=second_count, second_pot=True)) db.put(newMembers) This operation takes ~300-400ms, which is enough for App Engine to complain that my application is executing too slowly and needs to be optimised. What exactly is taking so long to place these entries? Most other put() operations take ~10ms to complete. Is it the use of the DateTimeProperty or the use of the ReferenceProperty that is slowing this call down? Any help would be appreciated. Many Thanks, Chris. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.