This sounds like a very good fit for GAE.
It won't fit into the free quota (just to rebuild the download once an
hour will be hundreds of thousands of read ops per day) but you may
fit into the $9/mo minimum tier depending on how much user activity
you have.
Definitely use ndb over the old db interface.
Create a cron that starts a task that iterates through the dataset,
adding it to a blob in the blobstore using the files api. The reason
to start a task from cron is that the task will retry if for some
strange reason there is an error.
There will be a hard limit of 1MB per document stored in the
datastore. You mention "typically" 500-700 words but if there are
large outliers you may have problems. One solution is to pre-zip the
content, another is to overflow the data into multiple entities.
Sounds like the blob will be in the 10s of megabytes. I believe GAE
charges for bandwidth based on the pre-gzip-encoding size of requests.
If you have a lot of downloads, you may wish to zip it on write and
deliver a zipfile download to your users, which should dramatically
reduce bandwidth costs.
The one 'gotcha' you may run into is that SSL on appengine costs $100/mo.
Jeff
On Thu, Aug 16, 2012 at 11:53 PM, Jordan Bakke <
jordan...@gmail.com> wrote:
> I'm writing a very limited-purpose web application that stores about 10-20k
> user-submitted articles (typically 500-700 words). At any time, any user
> should be able to perform searches on tags and keywords, edit any part of
> any article (metadata, text, or tags), or download a copy of the entire
> database that is recent up-to-the-hour. (It can be from a cache as long as
> it is updated hourly.) Activity tends to happen in a few unpredictable
> spikes over a day (wherein many users download the entire database
> simultaneously requiring 100% availability and fast downloads) and
> itermittent weeks of low activity. This usage pattern is set in stone.
>
> Is GAE a wise choice for this application? It appeals to me for its low cost
> (hopefully free), elasticity of scale, and professional management of most
> of the stack. I like the idea of an app engine as an alternative to a host.
> However, the excessive limitations and quotas on all manner of datastore
> usage concern me, as does the trade-off between strong and eventual
> consistency imposed by the datastore's distributed architecture.
>
> Is there a way to fit this application into GAE? Should I use the ndb API
> instead of the plain datastore API? Or are the requirements so
> data-intensive that GAE is more expensive than hosts like Webfaction?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
>
https://groups.google.com/d/msg/google-appengine/-/NZQnuJubU-sJ.
> To post to this group, send email to
google-a...@googlegroups.com.
> To unsubscribe from this group, send email to
>
google-appengi...@googlegroups.com.
> For more options, visit this group at
>
http://groups.google.com/group/google-appengine?hl=en.