I was wondering about implementing my own sessions (more for an exercise than anything else) for a GAE app I\'m working ... at first I was thinking of using the datastore to
UPDATE - 21 Mar 2011
At the time of this answer app-engine-patch is discontinued and gaeutilities offer worst features than gae-sessions.
I suggest checking out (and contributing to) these three implementations of appengine sessions before rolling out your own:
Your options look fine but choosing between them probably depends on the size of the session data in your application.
If you use web2py (version 1.46 or latter) sessions are on by default on GAE. This achieved by the following three lines of web2py code at the top of the scaffoling model:
from gluon.contrib.gql import *
db=GQLDB()
session.connect(request,response,db=db)
Here is a sample action that counts:
def index():
session.c=session.c+1 if session.c else 1
return dict(counter=session.c)