I looked into python multi-threading / multi-processing a bit more, 
especially with your tip that it requires python 2.7.

The python multiprocessing module was introduced in python 2.6
http://docs.python.org/library/multiprocessing.html
http://www.ibm.com/developerworks/aix/library/au-multiprocessing/index.html
so this is probably what will be used for python appengine to get 
concurrency above 1 request / instance.
This solution copies and spawns processes which are heavier than threads.
I'm assuming that most of the concurrency will be achieved because processes 
are datastore bound: 
they are just waiting around for the datastore to return a result.

Given this type of solution (or whatever solution is used), some important 
questions are:

   - How many concurrent requests can a single instance handle (for python)? 
    If the process is waiting for the datastore, is the number of processes 
   (and thus concurrency) dependent mainly on the number of processes that can 
   fit in memory?
   - Will heavy python frameworks (like django) have a lower concurrency 
   ability because they use more memory?  If so, what will their concurrent 
   requests / instance be (for the simplest django app, then we can add in our 
   own app's memory usage)?
   - For those considering switching to java, what is the estimated 
   concurrent requests / instance for java apps?  Java uses threads instead of 
   processes.



-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to