Ahhh...that sounds about right! Would make sense for duplicate list property entries to be ignored when the index is being created. Would neatly explain the difference..
Thanks! :) On Mar 12, 8:49 pm, Ryan Lamansky <spam...@kardax.com> wrote: > Speculating, I think it's because writing a lot of different values > requires the list's "simple index" to be updated in many different > places, as opposed to a single place with the duplicate values. > > -Ryan > > On Mar 12, 2:27 pm, peterk <peter.ke...@gmail.com> wrote: > > > I've been experimenting with some approaches to various things, and > > ran into this variation in performance that's kind of puzzling me. > > > Here I'm creating and saving an item with 3 properties - two reference > > properties, and a list property of keys. > > > I was just using dummy data initially, and set the list of keys to be > > the same key over and over, and then put the item. The total cost for > > this was around 800 ms-cpu. > > > But then, as soon I started using a 'real' list of keys, where the > > keys were all different, the cpu cost doubles. > > > I tried to isolate what was causing the extra cost, and as far as I > > can see, it's purely down just to the fact that the list property in > > one instance is made up of a list of the same keys, and in the second > > instance is made up of a list of different keys. > > > To illustrate the point I used this code: > > > itemA = A.all().get() # get one itemA > > itemB = B.all().get() # get one itemB > > query = B.all().fetch(36) # get 36 itemBs > > itemB_keys = [itemB.key() for itemB in query #construct list of itemB > > keys > > > itemC = C(a = itemA, b = itemB) # create itemC, the item we'll be > > putting > > > for key in itemB_keys: > > itemC.itemB_keys.append(key) # add keys to itemC's list of itemB > > keys > > > db.put(itemC) > > > If I just change the for loop to add the same key the same number of > > times rather than a different key each time, and leave everything else > > *exactly* the same, suddenly the cpu cost halves. > > > Why would the make-up of the list property have such an impact on > > performance? Are list property puts somehow optimised if the list is > > made up of the same key or entity over and over, vs different ones? > > > Thanks for any insight.. --~--~---------~--~----~------------~-------~--~----~ 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-appengine@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 -~----------~----~----~----~------~----~------~--~---