40,000 page views per day is not a lot - if *every single one* of
those wrote to an entity, you're still under the free 50k datastore
operations. And even if every one of those page views wrote to
*three* entities, an extra 100k writes will cost you all of $0.10.
If you exceed the $9/mo minimum spend on 40k page views per day, you
are doing something wrong. If I had to guess, your schema is probably
*way* too normalized and you're probably not using memcache
effectively.
Jeff
> --
> 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/-/cmUxJ1LeSZYJ.
> 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.
>
It sounds like you have a fundamental architectural issue in that your
cache invalidation is too heavy-handed. I would look for ways to
invalidate smaller parts of the cache, or put it on a schedule
(presumably you don't need *realtime* updates of the page content). I
sympathize that GAE's old pricing model led you to an cost-inefficient
architecture, but I'm not sure you're going to do better on AWS -
pulling thousands of items per second out of a clunky EBS-backed MySQL
might be a problem at the bottom end of the budget.
Suerte,
Jeff
> --
> 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/-/0dfGjryGNWwJ.
--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
It doesn't work this way, but you're right that I'm probably
undercounting. GAE writes once for the entity and then once for each
index - not for each property. You get as many properties as you want
(up to the 1MB entity size limit) "free" as long as they are
unindexed.
Still, each indexed property is two additional writes (one asc, one
desc) and must be factored in to the plan.
On the other hand, only a small percentage of the OP's 40k page views
are likely writes, and "overage" is ten cents per 100k writes. This
is not his/her problem.
Jeff
Good luck with that. If you cannot do #4 on your own then I don't
believe you will be able to hire someone else who can. Especially not
in this market.
My philosophy:
1) Understand the architecture of the platform you're working with
2) Bootstrap a viable product that can generate revenue
3) Iterate the business as fast as you can. Every day should be spent
developing new features, not trying to make the old features scale.
> That's not all bad, but I think it's making us slow. Partly because
> we' accustomed to develop "normal" apps (use SQL with all its bells
> and whistles, use Spring for Java, freedom of framework/stack, etc).
> What do you guys think?
There is an acclimatization period to working with GAE. It's much
shorter than the acclimatization period required to work with
Spring/Hibernate/SQL, except that perhaps you've already gone through
the later. After you work with GAE for long enough, most
architectural issues become pretty obvious. I find that I am now
*much* faster developing GAE apps than J2EE apps, and I never find
myself scratching my head wondering why some query isn't performing
the way I expect.
Jeff
I worked with a Ruby team that spent more time fighting over which DataBase
technology and when gems they were going to use than they did doing the
coding.
Give people choices and they will just waste time making decisions.
As a 1 man shop, write for what ever you want. If you have a team, GAE
means you write code within the limits of the platform, and you get things
done fast with need for fewer meetings.
--
In this case, Joe is doomed.
Given teams with equivalent expertise, the GAE team will be
significantly more productive. There are exceptions to this - some
problem domains (sophisticated geo, analytics) are more difficult to
do without specialized storage systems - but in the general case, GAE
development is faster. I'll be deploying code while Joe will be
working on getting his database configured properly.
Of course, if you're sandbagging the GAE team with coming up to speed
from scratch, then sure it will probably take longer. But this is an
argument for never learning new technology - expertise gets you into a
local maxima of efficiency, and only by climbing other (sometimes
tortuous) learning curves do we learn that the "old way" actually
sucked. The GAE curve is worth it.
Jeff