Sessions in Java App Engine
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
AppScale |
New
|
High
|
NicNeo |
Bug Description
Recap: the problem is that after user stores some data in httpSession
object, they can't retrieve it.
How this works for Google Appengine? As documented here:
http://
appengine uses datastore and memcache to store the data in
httpSession, and there are doing some magic behind the scene so that
the data is consistent globally.(consider there are many app servers
running in Google's data centers).
In our case, we have multiple app servers running(by default 3), and
we are using the dev version of appengine with Jetty as back-end web
container, the default way of handling session in Jetty is that it
creates a map to store data locally, not writing it to datastore. As a
result, we can't retrieve the data that we stored on appserver1
through appserver2.
So the missing piece is the component that writing/getting session
data from datastore. The solution can be 1) we use another distributed
session management system 2) we re-factor the Jetty container that
embedded in dev version of appsever, so that it writes/reads from
datastore Either of them may require some R&D work.
Changed in appscale: | |
assignee: | nobody → NicNeo (nicneo925) |
importance: | Undecided → High |