[google-appengine] Re: Datastore Optimisation

2010-09-11 Thread Christopher Staite
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

2010-09-10 Thread Sharp-Developer.Net
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

2010-09-09 Thread Christopher Staite
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

2010-09-09 Thread Robert Kluin
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.