Actually further to my reply above, I found this old post recommending 
using Cloud Storage instead: 
https://groups.google.com/d/msg/google-appengine/ziMU2sXQg7c/5uat0Lxly2sJ
- is this a good idea? Seems like it at first glance for the reasons 
mentioned (esp caching in memcache anyway). And adapting the example 
session handler in the PHP docs should be easy I think: 
http://php.net/manual/en/class.sessionhandlerinterface.php

This would also be cheap given storage pricing and no data transfer costs 
either way (in the same region).

Can anyone see any drawbacks here? I'm assuming latency would be low enough 
to be feasible...? What about if there are a large number of users using my 
simultaneously - is there a limit to the number of simultaneous streams 
to/from Cloud storage via the "gs://" file interface?

I don't fully understand how cache would work here though (behind the 
scenes via the gs:// interface - for a read, how is it known whether a 
session file needs to be read from the cache or not, and if it's in the 
cache, what happens if an updated session file was previously written to 
Cloud Storage by the session handler?

Thanks!
Alex


On Tuesday, January 26, 2016 at 1:23:51 AM UTC, Adam (Cloud Platform 
Support) wrote:
>
> I don't have a code sample, but you would need to create a custom session 
> handler with session_set_save_handler() 
> <http://php.net/manual/en/function.session-set-save-handler.php> as per 
> the suggestion provided in this post 
> <http://stackoverflow.com/questions/20272634/storing-session-data-in-database-and-memcache>
>  on 
> Stack Overflow.
>
> On Monday, January 25, 2016 at 3:36:59 PM UTC-5, Alex Kerr wrote:
>>
>> Hi,
>> I'm using standard PHP session stuff for my web app, which means session 
>> data is stored in App Engine's shared memcache. Google's docs state that 
>> this can get flushed so any logged in user sessions would fail. How exactly 
>> do I add use of Datastore (or Cloud Storage?) into this process so that 
>> memcache is still used unless it gets flushed in which case Datastore is 
>> referred to? Is there a way to do this that minimises Datastore reads & 
>> writes and thus minimises cost and latency? I'm ideally after code (or even 
>> pseudocode) or even better a drop-in library or class :)
>>
>> Or, is a flush of the shared memcache so unlikely that it doesn't really 
>> matter?
>>
>> Many thanks.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/ddf274ce-548c-4822-825e-86ac26bc78f0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to