Mat, It's like you have a blog and you store every word in a single Entity. Think how quickly your quotas would fill up in a few page views.
I'm considering storing multiple tweets or even the entire stream in a single Entity. This perfectly suits for the main purpose of the site as the focus is streams rather than single tweets. You're right about the RDBMS remark, as I fear for example, it would be harder to add features like 'showing all tweets in January' with this multiple tweets approach. On 9 Ocak, 01:54, Matthew Jaggard <[email protected]> wrote: > You're thinking far too much like an RDBMS user. Imagine for a moment that > querying a database is like picking up polystyrene balls. SQL Server or > whatever is like a vacuum cleaner, the datastore is like a pair of hands. > Picking up a million polystyrene balls with your hands is perfectly > possible but hopelessly inefficient. Picking up a really big piece of > polystyrene however is trivial, size being almost irrelevant. Equally, SQL > Server/vacuum cleaner will collect tiny parts from various places with ease. > > So, in your case, I'd definitely combine multiple tweets, I might even put > all of the tweets for a user in the same entity as his other details - > login, etc. See objectify and its load groups for how to do this but > keeping logical separation in Java objects. > > Mat. > On 8 Jan 2012 23:25, "Amy Unruh" <[email protected]> wrote: > > > > > > > > > Serdar, > > > If you are frequently pulling in and storing many users' Twitter streams, > > this might well require you to enable billing for your app eventually. > > However, during initial development and testing, you can probably reduce > > costs enough to avoid that (e.g., try turning down cron frequency). See > > also the documentation regarding billable resources (e.g. > >http://code.google.com/appengine/docs/billing.html#Billable_Resource_...). > >For example, if not all properties in your entities need to be indexed, > > you can reduce your write costs by setting some to unindexed. > > > As you comment, you ought to be able to greatly reduce the number of reads > > by using memcache. You can use appstats ( > >http://code.google.com/appengine/docs/python/tools/appstats.html) to get > > more detail on where your reads and writes are occurring. > > > On Sun, Jan 8, 2012 at 10:09 PM, Serdar <[email protected]> wrote: > > >> My app archives and displays tweets in a simple layout, which lets > >> people easily browse older tweets of Twitter users. > > >> This is what happens in a typical user page: > > >> - Get 100 more tweets via Twitter API and save to the datastore. Each > >> tweet is stored in a single Entity. > > >> - Get 1000 (will be 200 in the real case) tweets from the datastore > >> and display. > > >> These datastore reads and writes fill the limits very very quickly. > >> Even a single user (that's me testing) fills the quotas in minutes, > >> checking one or two Twitter user's tweets. > > >> I'll use memcache for the reads and that'll help but I don't see my > >> app could serve more than 10 users a day. > > >> An idea is to save, say, 100 tweets in a single Entity but that just > >> sounds not right in terms of data structure. > > >> How would you store and display tweets (more than 100 a page) in your > >> application? (A typical visitor would like to browse some thousands of > >> tweets.) > > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "Google App Engine for Java" 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-java?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google App Engine for Java" 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-java?hl=en. -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" 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-java?hl=en.
