Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <blockquote> <p>Nowadays, the code is very slow. It has only few Models with many properties in each.</p> </blockquote> <p><strong>Getting/Putting big objects</strong></p> <p>Since the datastore API can only put or get an object (as opposed to individual fields), each time you fetch an object for the datastore it fetches all its fields regardless if you are going to use them all at that point or not. This effect will be stronger when we write the object back to the datastore, it has to write everything even when you alter a single field in the object. (writes cost more than reads)</p> <p><strong>Before I say anything further: the proliferation of models should follow your pattern of reads and writes.</strong></p> <p>To be practical and give an example, say I am modeling the posts on a blog, where each would have a <code>title</code>, a <code>date</code> and a <code>body</code> (which we will rightfully assume as being much bigger than the other fields). In the <em>straightforward</em> object modeling, I'd have those three fields in a single class <code>BlogPost</code>, but I am penalized for the whole object each time I just want to read the <code>titles</code> (say to simply display a list of posts and construct links to the posts), or just to update the <code>dates</code>. </p> <pre><code>class BlogPost { String title; String body; long date; } </code></pre> <p>So what one can do is create a class <code>Body</code> that would hold <code>body</code>, and keep a reference (a key) to it inside <code>BlogPost</code>.</p> <pre><code>class BlogPost { String title; Key&lt;Body&gt; body; long date; } class Body { String body; } </code></pre> <p><strong>Lightweight makes for efficient cross-side serialization</strong></p> <p>This also makes the <code>BlogPost</code> class more lightweight if I decide to serialize it and send it over the wire, e.g to send it to the web browser (to be used in JavaScript), with GWT for example.</p> <blockquote> <p>Does increasing the number of models on Google App Engine affects performance?</p> </blockquote> <p>Answer from Nick Johnson:</p> <blockquote> <p>No, adding additional models will not impact performance.</p> </blockquote>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload