Just so I’m clear.
You used a frame work built for another platform. Wedged it in to this platform. It is inefficient because it thinks it needs to re-validate sessions faster than a page would load, which creates a boat load of unnecessary requests.
You acknowledge all of that.
And then you still complain about GAE’s service and support?
It would appear that the failing of GAE is that they don’t put huge disclaimers at the top of every documentation page saying “If you just copy and paste code from old Python and Java applications your shit will break so don’t frakking do it.” Then when people complain in the forums we could say RTFM and be done with it.
Brandon Wirtz |
| |||
| ||||
--
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-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.
> Our application is new and 100% build and optimized for GAE.
I realize English may not be your primary language, but you did read the article your wrote right?
“Optimized for GAE” and “Uses Sessions” are not the same. Also, if you check stack overflow there are about 1000 posts telling you “DON’T DO IT MAN”
Spring MVC adds about 6 seconds to your cold start time. On a good day, on a bad day it adds 12-15 seconds. Spring JDO ads about this much again. This causes you cascading errors when your app gets over run, and GAE has a slow day at the same time, as your Spin up can be 30 seconds without much effort and you are already looking at 85MB of instance memory being use before you have done anything.
Spring should only be used if you are going to run F2 instances. Warm-Up, and 2 or more idle instances at all times.
Are you doing those things?
What is the recommended equivalent implementation for apps with high scalability needs (available in Java and NOT using a GAE API directly)?
For example, if you're storing the authentication state of a user in
the session, store it as a signed cookie instead. Easy.
If you have some kind of per-user server-side state you are
maintaining, stash it in memcache (if it is not essential) or the
datastore (if it is). This is what the session does, except that with
sessions you don't have granular control. You end up struggling with
the performance profile because the behavior of sessions in a cluster
is poorly defined - some people need super transactional robust
behavior, others don't care if the data expires randomly.
Jeff
On Mon, Apr 16, 2012 at 3:27 PM, andrew <andrew.m...@bcntouch.com> wrote:
> As an ignorant, can I genuinely ask:
>
> What is the recommended equivalent implementation for apps with high scalability needs (available in Java and NOT using a GAE API directly)?
>
> --
> 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/-/OxttnQjWGMEJ.
There isn't a straight-up answer to that. The question to ask is:
Why do you think you need a server-side session? Depending on the
answer, there are various solutions.For example, if you're storing the authentication state of a user in
the session, store it as a signed cookie instead. Easy.If you have some kind of per-user server-side state you are
maintaining, stash it in memcache (if it is not essential) or the
datastore (if it is). This is what the session does, except that with
sessions you don't have granular control. You end up struggling with
the performance profile because the behavior of sessions in a cluster
is poorly defined - some people need super transactional robust
behavior, others don't care if the data expires randomly.Jeff
On Mon, Apr 16, 2012 at 3:27 PM, andrew <andrew.m...@bcntouch.com> wrote:
> As an ignorant, can I genuinely ask:
>
> What is the recommended equivalent implementation for apps with high scalability needs (available in Java and NOT using a GAE API directly)?
>
> --
> 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/-/OxttnQjWGMEJ.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to google-appengine+unsubscribe@googlegroups.com.
Sorry if you already tried it, but we recently released asynchronous
session described at:
https://developers.google.com/appengine/docs/java/config/appconfig#Enabling_Sessions
Doesn't following setting help with your case?
<async-session-persistence enabled="true" />
I basically agree with Jeff though. Besides that, we can expect that
modern clients does likely have a better local storage, so it could be
another option.
-- Takashi
>> > 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.
>> >
>
> --
> 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/-/k849D6UBAjQJ.
>
> 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.
--
Takashi Matsuo | Developer Advocate | tma...@google.com | 03-6384-9224