[google-appengine] Re: Where can I find commercial successfully websites created using GAE?

2011-01-28 Thread Tomas Alaeus
I'm sorry for continuing this offtopic fest, but I just can't stand
it...

I assume you never go to the toilet during ad-breaks on TV, or never
ever have switched radio channel when ads start. Comon, there are so
many irritating, annoying ads on most websites. You probably make more
ad-money from to the people who have adblock since they most certainly
have a higher chance of recommending it to others and spreading the
word.

I'm not against advertisement on web pages, just the annoying ads, and
I want to be able to control what my browser shows me.

On 28 Jan, 22:13, Brandon Wirtz drak...@digerat.com wrote:
 Now Off topic:

 Technically if you visit a site that's TOS requires you to at least view the
 ads, and you block them you are violating Copyright and committing theft of
 service.

 I didn't put such a clause in my TOS... but one could, and some have.

 As to if you make money even if ads don’t get clicked... Most my ads are
 Adsense and are CPC, but some are CPM, and those I get paid just by being
 viewed.



 -Original Message-
 From: google-appengine@googlegroups.com

 [mailto:google-appengine@googlegroups.com] On Behalf Of Darien Caldwell
 Sent: Friday, January 28, 2011 12:24 PM
 To: Google App Engine
 Subject: [google-appengine] Re: Where can I find commercial successfully
 websites created using GAE?

 On Jan 27, 11:40 am, Brandon Wirtz drak...@digerat.com wrote:
  Ah, so you are one of those people who read websites, but don't want
  the people who make the content to make any money.  I bet you listen
  to NPR and play CD's when they go to pledge breaks..

 I don't have any ad blocking software installed, but I have never, ever,
 ever, clicked on a website ad. Do you still make money then? If he's
 removing from his sight something he has no intent of ever clicking on
 anyway, I don't see you have right to complain.

 I wasn't going to comment on the fact your site looks like a click mill, but
 after that response, I don't feel bad about saying it now.
 Exactly the kind of site I would never use.

 --
 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-appengine@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.com.
 For more options, visit this group 
 athttp://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 post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Request for Experimental App Feedback

2010-12-23 Thread Tomas Alaeus
I see the :( enable ads for Wiki-Hop and the ads at the same time.
Probably because the ad itself is transparent (Google Ads). I'm using
Opera 11.00 beta build .

Otherwise, interesting site. :)

On 23 Dec, 05:45, Erik erik.e.wil...@gmail.com wrote:
 Hello everyone,

 Over the past few months I have been getting my feet wet with Google
 App Engine, and have created a site called Wiki-Hop (http://www.wiki-
 hop.org/).  Wiki-Hop is a search engine for finding connections
 between people in Wikipedia, similar to the idea of six degrees of
 Kevin Bacon.  Some example searches are:

 http://www.wiki-hop.org/#!/Larry_Page//Kevin_Bacon
  andhttp://www.wiki-hop.org/#!/Sergey_Brin//Jimmy_Wales

 For more information about wiki-hop please 
 visithttp://blog.wiki-hop.org/2010/12/six-degrees.html.

 Currently I am looking for feedback regarding the site, good and bad.
 This is the 'grand opening', so any feedback you can provide about
 usability will go a long ways.

 Many thanks and happy holidays!
  -Erik

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Instance scaling with problems

2010-12-16 Thread Tomas Alaeus
Due to lack of information about when App Engine starts new instances,
how it affect performance and side effects of scaling up I have here
made a short summary from my own experiences so others won't have to
find it out the hard way.

I still don't have any long experience with App Engine, but I see it
as a very promision product. The problems I see with it are mostly
associated with how the scaling of instances works. Mainly because NO
information exists on how it works. Not even the support (by mail)
seem to know how it works.

I've tried to split this post into three parts for readability. Sorry
for the wall of text.

__

First some basic facts on the non-billing (free) and billing enabled
versions.

The free version can start at most 30 instances, and the billing
enabled one have no hard limit. However, it got a soft limit which
starts at 30 and is incremented by 10 when needed. When the
application reaches its soft cap of instances and stays there for
about 10-15 minutes, and it still lacks performance, then the soft cap
is incremented by 10. If it still needs more it will be incremented by
10 after a few minutes, and so on.

This all looks fine (although it isn't mentioned anywhere, which lead
me to bad decisions). What is worse is some sort of minimum number of
instances, which I will refer to as min instances, which App Engine
will try to start up before activly forwarding the requests to hot
instances.

After a lot of testing, my results say that min instances starts on 1,
and is incremented by 1 for every soft cap increment. That is, this
value will be about a tenth of the soft cap.

__

What is the effect of this min instances more exactly?

If it is set to 4 then if there is/are: 0 instance started: An
instance starts, user feel a cold start 1 instance started: 25% of
user getting an hot instance, 75% of instance startup. 2 instances
started: 50/50% of getting an hot or cold instance. 3 instances
started: 75% of getting an hot... 4+ instances started: Now it behaves
as everyone believes.

Apart from being strange and not documented, there are some mayor
issues with this:

* It is not reverted! Even if the application is idle for a week, the
min instances are not lowered.

* Warmup requests is not triggered for the first min instances
instance startups.

* Always on starts only exactly 3 instance, if you sometime earlier
have boosted your min instance past 3 then users will still notice
cold starts, even if your application have been idle for the past
hours!

__

My story:

I didn't know about the soft cap, and hit the roof pretty quickly with
my stress tests. I aborted the tests then and asked support why it
didn't start more instances. They just said I should have the test run
longer. And so I did. I increased the soft cap to 100 instances or
something and felt that the service would handle anything that was
thrown at it.

Now when my application have gone live the first users will more or
less all be handeled by cold starts. It is always hard to predict the
number of users, but in the worst case the first users will get scared
away because of the performance issues and also warn other users about
it.

If by any means a Google employee knows about this issue, and knows
how to revert the min instances (without interrupting the service)
then please notify me!

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Username Already Exists For Application ID?

2010-12-13 Thread Tomas Alaeus
This issue have been posted about earlier. If I remember correctly it
is an issue with the dots in your username. When checking for
availability it will only check for perfect matches, that is, no other
app or Google user with that id. The problem is with Gmail who
reserves ids which are very similar (registering iden.tity on Gmail
will reserve identity, 1dentity, iden.t1ty, etc). In your case, your
Gmail username would be user.name and thus username will be
reserved for you aswell.

Sadly, this reservation will block everyone (including yourself) from
using that identifier for an App Engine application.

On 13 Dec, 06:31, Will Merydith will.meryd...@gmail.com wrote:
 I went to create an Application with my Google username
 (usern...@gmail.com).

 It says the name is available, but then when I click to submit I get
 the message:
 Already Exists
 This application ID or version is already in use.

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: memcache time

2010-12-12 Thread Tomas Alaeus
1. The time you specify when putting memcache entities is the maximum
lifetime. There is no guarantee that the memcache will hold its
contents for any period of time, they can be evicted immediately or
after a month, you have no way of knowing that.

2. Not that I know of. Part of the memcache can be flushed, or all of
it, at a time. So I don't think there is an easy way to implement it
either. Besides, since the memcache is stored in volatile memory the
flush can be triggered by a machine shutting down. In that case it
would be hard to know immediately which entities were removed.

You should always make the code work even if the memcache always
return null. Easiest is to populate the memcache when a request
fetches a null entity, so it always have something to fall back on.

On 12 Dec, 14:24, Sharma Anil sharmaanil1...@gmail.com wrote:
 I have implemented the following on GAE.

 1.   Fetch all entities in a Kind and identify the last updated
 entity.
 2.   Set the memcache with a key and a property from the entity from
 step one with specifying 6 hours longevity
 3.   Log the information and status
 4.   Define a cron job handle to do all steps 1, 2 and 3, in every 4
 hours

 Result:       Works fine most of the time.
 Problem:    Memcache entry does not exist for the duration set for
 it.

 Question:   1.   Is there any way to ensure Memcache key-value pair
 for a defined time ?
                  2.   Is there anyway to get a message from GAE on
 forced Memcache flush out ?

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: AlwaysOn and WarmUpRequests working poorly?

2010-12-09 Thread Tomas Alaeus
I have a similar issue. After having tested my app with thousands of
users it now fails (performance wise) when serving just a few users.
Even if I just have 1 QPS incoming, it will boot up 10 instances and
all of the loading requests are user facing (note that 1 instance
would be more than enough to handle the traffic). When all those
instances are busy it will boot up new ones, and it will use the
warmup requests only sometimes for that.

It seems to me that the algorithm App Engine uses to determine how
many instances are needed for the current traffic is somewhat
flawed...

On 9 Dec, 18:44, Sergio Lopes slo...@gmail.com wrote:
 That's right, I use GAEJ. In Java, the instance concept and the
 startup momento are all well defined. My problem here is that the
 loading_requests rarely are /_ah/warmup requests. Most loading
 requests are user requests, even with AlwaysOn enabled. It doesn't
 seem right...

 On Dec 9, 3:17 pm, Stephen Johnson onepagewo...@gmail.com wrote:



  My assumption would be and this is for Java (not a python person) that if
  you have an empty handler at the very least you would get the JVM up and
  running and some of the basic libraries that are required. Then, depending
  on what you do in the warmup request and/or your web.xml would load
  additional libraries. For example, if you use the load-on-startup with a
  integer = 0 then the servlet would be loaded when the request handler is
  called regardless of whether or not it is used. Also, if a datastore or
  memcache request were made in the handler that those additional libraries
  would be loaded. I haven't implemented one yet but my intention is to use it
  to load as much of these additional libraries as possible.

  On Thu, Dec 9, 2010 at 9:45 AM, Darien Caldwell
  darien.caldw...@gmail.comwrote:

   It sounds wrong.

   But it brings me back to a question i've been wondering to myself for
   awhile now: what constitutes an Instance, exactly? Is it the bulk of
   all the code uploaded, or just whatever modules were las used?

   For instance, I have several separate sections to my app, and
   depending on which URL a request is received on, different code paths
   are executed, each loading different modules. If I have a warm
   instance, exactly what is being kept warm? All of the modules for all
   of the URLs, or what exactly?

   How does the system decided what to keep warm?

   --
   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-appeng...@googlegroups.com.
   To unsubscribe from this group, send email to
   google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib
e...@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 post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: How to handle user page URLs if usernames are not unique?

2010-12-09 Thread Tomas Alaeus
The usernames are still unique, but the slugs used for URLs (and on
other places where uniqueness is a must) are unique.

But yeah, most people consider usernames unique. If your usernames
aren't unique you might want to call them something else, like display
name as Robert said.

You also could assign every user an id. If you save the data as
entities in the datastore (which you probably do) without any
explicitly defined Key, then you could fetch the entity id and use
that one. That id will definitely be unique.

On 9 Dec, 02:11, Tim Hoffman zutes...@gmail.com wrote:
 Well then usernames are unique ;-) ross, ross1

 T

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Do I have to implement /_ah/warmup

2010-12-05 Thread Tomas Alaeus
Worth noting is that the documentation is wrong. The XML-tag to use to
disable warmup requests in Java is warmup-requests-enabled and _not_
warming-requests-enabled.

Maybe you can fix it Nick? :)

On 6 Dec, 07:28, Nick Johnson (Google) nick.john...@google.com
wrote:
 The purpose of warmup requests is to give your app the opportunity to load
 all the libraries it needs and do any other initialization work required,
 before it serves user-facing requests. If you have a catchall handler, then
 serving a 404 is probably doing that, but having a do-nothing handler is
 probably a better idea, and ensures the request hits the whole app pipeline.

 -Nick Johnson





 On Sun, Dec 5, 2010 at 5:02 PM, Will vocalster@gmail.com wrote:
  Hmm, thanks.

  I can live with the log, as long as doing nothing serves the purpose. I
  prefer less code unless it's absolutely necessary.

  Best,

  Will

  On Sun, Dec 5, 2010 at 10:25 AM, 风笑雪 kea...@gmail.com wrote:

  You'd better implement it if you don't want to see it logged as an
  error in your dashboard.

  However, the implementation can be empty:

  class WarmupHandler(RequestHandler):
         def get(self):
                 pass # or log it by: logging.info('Warmup Request')

  --
  keakon

  --
  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-appeng...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscrib...@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 post to this group, send email to google-appeng...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscrib...@googlegroups.com
  .
  For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.

 --
 Nick Johnson, Developer Programs Engineer, App Engine
 Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number:
 368047

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Request hangs when deleting lots of objects

2010-12-03 Thread Tomas Alaeus
I want to purge old entities from the datastore. How I do this at the
moment is having a cron job run a script every 30 seconds. The script
removes entries using deletePersistentAll() via a JDO query object.

Query query = pm.newQuery(Game.class, lastUpdateTime  ageLimit);
query.declareParameters(long ageLimit);
long numRemovedGames = query.deletePersistentAll(ageLimit);

The datastore contains about 2000 or so objects that should be
removed. However, when I run this the request is killed with a
DeadlineExceededException and no objects are removed. The same issue
will happen again, again and again every time the cron job runs since
no objects are removed.

If I try to use setRange() to limit the number of objects being
removed, it will throw another exception saying I'm not allowed to do
that.

Is the only solution to actually get the objects, and then remove them
one by one?

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Policy for instance startup

2010-12-03 Thread Tomas Alaeus
I hoped that Warmup Requests could be used to remedy the situation (at
least from a users perspective). Unfortunally, it does not help
anything.

Warmup requests seems to be inactive (or not react) when there are
less than 10 instances active for my live app. The warm up requests
starts to work when 10 instances are started.

It seems to me that my app-id have been marked permanently as a
heavy application, which isn't true yet.

On 26 Nov, 09:32, Tomas Alaeus tala...@gmail.com wrote:
 This problem doesn't seem to happen on the staging server (doesn't
 have billing enabled), but I maybe haven't stressed it enough. Another
 application I have for testing purposes seem to be affected by it too,
 and it doesn't have billing enabled either. That application seems to
 want at least 4 instances before serving hot instances to incoming
 requests.

 This is actually quite bad for everyone. If the load is low the user
 experience will be worse, we have to pay more and Googles servers will
 have to boot up/down instances for no reason. Can any Googler confirm
 this behavior?

 On 24 Nov, 22:18, nickmilon nickmi...@gmail.com wrote:



  While waiting from a Googler to give us some light on this may be you
  do your stress tests in the staging server ? (just an other version
  will do as staging server)
  Also I remember people from App Engine team stating here that the best
  performance comes when load comes in a natural matter.

  Still IMHO that there must be some more transparency into those
  parameters within which our appls have to operate. - It helps both us
  and the platform.

  Regards
  Nick

  On Nov 24, 9:21 am, Tomas Alaeus tala...@gmail.com wrote:

   Probably. With some more thinking I got to this conclusion:

   At first, an application can utilize up to 30 instances. After having
   used all those instances for a few minutes, and it still isn't enough,
   GAE will increase the maximum number of available instances to 40, and
   then to 50 etc. Every time it increases the number of instances it
   will probably also adjust how and when it boots up new instances.

   For my production app it probably tries to keep at least 10 instances
   running since it thinks a huge amount of users can use the site at any
   given time. The staging haven't had any rush of users, and therefore
   thinks it is safe with just 1 instance running.

   I would still like to hear something from a Googler. If this is how it
   works then it means that stress testing the application (with a lot
   more pressure than it will normally get) may lead to worse (!)
   performance permanently.

   On 24 Nov, 00:01, nickmilon nickmi...@gmail.com wrote:

Not been a Googler can't help much with this.
Having said that, I suspect there is a kind of build in algorithm that
does some kind of application profiling taking into acount QPS,
response times, and other parameters which adjusts instance life time,
number of instances to start etc..
This could possibly explain the difference in behaviour between your
staging and production appls.

happy coding;-)

On Nov 23, 11:58 am, Tomas Alaeus tala...@gmail.com wrote:

 I'm curious when exactly instances are started. I have two
 applications running on GAE, one of them have billing enabled. The one
 with billing enabled have been stress tested and have at most started
 100 simultaneous instances. The other is just for testing and staging
 purposes and have never handeled much traffic.

 What I experience is that the staging server never starts more
 instances than needed. If a single person views pages it will never
 load more than a single instance. The other one however seems to start
 about 5 instances before anyone can get hot responses, and it will
 continue to start up to about 10 before realizing that ~1 QPS isn't
 that much traffic (the requests finish in about 100ms each).

 So, why does GAE boot up lots of instances even though 1 instance can
 serve the incoming traffic without a problem (the requests doesn't
 even overlap, so no waiting is needed)?

 I realize that this isn't a very big issue, since when it gets lots of
 traffic it will indeed need all the instances. I'm just curious why it
 happens.

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Request hangs when deleting lots of objects

2010-12-03 Thread Tomas Alaeus
Typo... The cron job runs every 30 minutes. It timeouts no matter if
it is the cron job that timeouts (10 minutes) or from the user (30
seconds). The strange thing is that both timeouts utilize the same
amount of CPU. That brings the question, does the cron job stay idle
for the rest of the 9 and a half minutes? :)

On 3 Dec, 13:14, Tomas Alaeus tala...@gmail.com wrote:
 I want to purge old entities from the datastore. How I do this at the
 moment is having a cron job run a script every 30 seconds. The script
 removes entries using deletePersistentAll() via a JDO query object.

 Query query = pm.newQuery(Game.class, lastUpdateTime  ageLimit);
 query.declareParameters(long ageLimit);
 long numRemovedGames = query.deletePersistentAll(ageLimit);

 The datastore contains about 2000 or so objects that should be
 removed. However, when I run this the request is killed with a
 DeadlineExceededException and no objects are removed. The same issue
 will happen again, again and again every time the cron job runs since
 no objects are removed.

 If I try to use setRange() to limit the number of objects being
 removed, it will throw another exception saying I'm not allowed to do
 that.

 Is the only solution to actually get the objects, and then remove them
 one by one?

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Policy for instance startup

2010-11-26 Thread Tomas Alaeus
This problem doesn't seem to happen on the staging server (doesn't
have billing enabled), but I maybe haven't stressed it enough. Another
application I have for testing purposes seem to be affected by it too,
and it doesn't have billing enabled either. That application seems to
want at least 4 instances before serving hot instances to incoming
requests.

This is actually quite bad for everyone. If the load is low the user
experience will be worse, we have to pay more and Googles servers will
have to boot up/down instances for no reason. Can any Googler confirm
this behavior?

On 24 Nov, 22:18, nickmilon nickmi...@gmail.com wrote:
 While waiting from a Googler to give us some light on this may be you
 do your stress tests in the staging server ? (just an other version
 will do as staging server)
 Also I remember people from App Engine team stating here that the best
 performance comes when load comes in a natural matter.

 Still IMHO that there must be some more transparency into those
 parameters within which our appls have to operate. - It helps both us
 and the platform.

 Regards
 Nick

 On Nov 24, 9:21 am, Tomas Alaeus tala...@gmail.com wrote:



  Probably. With some more thinking I got to this conclusion:

  At first, an application can utilize up to 30 instances. After having
  used all those instances for a few minutes, and it still isn't enough,
  GAE will increase the maximum number of available instances to 40, and
  then to 50 etc. Every time it increases the number of instances it
  will probably also adjust how and when it boots up new instances.

  For my production app it probably tries to keep at least 10 instances
  running since it thinks a huge amount of users can use the site at any
  given time. The staging haven't had any rush of users, and therefore
  thinks it is safe with just 1 instance running.

  I would still like to hear something from a Googler. If this is how it
  works then it means that stress testing the application (with a lot
  more pressure than it will normally get) may lead to worse (!)
  performance permanently.

  On 24 Nov, 00:01, nickmilon nickmi...@gmail.com wrote:

   Not been a Googler can't help much with this.
   Having said that, I suspect there is a kind of build in algorithm that
   does some kind of application profiling taking into acount QPS,
   response times, and other parameters which adjusts instance life time,
   number of instances to start etc..
   This could possibly explain the difference in behaviour between your
   staging and production appls.

   happy coding;-)

   On Nov 23, 11:58 am, Tomas Alaeus tala...@gmail.com wrote:

I'm curious when exactly instances are started. I have two
applications running on GAE, one of them have billing enabled. The one
with billing enabled have been stress tested and have at most started
100 simultaneous instances. The other is just for testing and staging
purposes and have never handeled much traffic.

What I experience is that the staging server never starts more
instances than needed. If a single person views pages it will never
load more than a single instance. The other one however seems to start
about 5 instances before anyone can get hot responses, and it will
continue to start up to about 10 before realizing that ~1 QPS isn't
that much traffic (the requests finish in about 100ms each).

So, why does GAE boot up lots of instances even though 1 instance can
serve the incoming traffic without a problem (the requests doesn't
even overlap, so no waiting is needed)?

I realize that this isn't a very big issue, since when it gets lots of
traffic it will indeed need all the instances. I'm just curious why it
happens.

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Policy for instance startup

2010-11-23 Thread Tomas Alaeus
I'm curious when exactly instances are started. I have two
applications running on GAE, one of them have billing enabled. The one
with billing enabled have been stress tested and have at most started
100 simultaneous instances. The other is just for testing and staging
purposes and have never handeled much traffic.

What I experience is that the staging server never starts more
instances than needed. If a single person views pages it will never
load more than a single instance. The other one however seems to start
about 5 instances before anyone can get hot responses, and it will
continue to start up to about 10 before realizing that ~1 QPS isn't
that much traffic (the requests finish in about 100ms each).

So, why does GAE boot up lots of instances even though 1 instance can
serve the incoming traffic without a problem (the requests doesn't
even overlap, so no waiting is needed)?

I realize that this isn't a very big issue, since when it gets lots of
traffic it will indeed need all the instances. I'm just curious why it
happens.

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Policy for instance startup

2010-11-23 Thread Tomas Alaeus
Probably. With some more thinking I got to this conclusion:

At first, an application can utilize up to 30 instances. After having
used all those instances for a few minutes, and it still isn't enough,
GAE will increase the maximum number of available instances to 40, and
then to 50 etc. Every time it increases the number of instances it
will probably also adjust how and when it boots up new instances.

For my production app it probably tries to keep at least 10 instances
running since it thinks a huge amount of users can use the site at any
given time. The staging haven't had any rush of users, and therefore
thinks it is safe with just 1 instance running.

I would still like to hear something from a Googler. If this is how it
works then it means that stress testing the application (with a lot
more pressure than it will normally get) may lead to worse (!)
performance permanently.

On 24 Nov, 00:01, nickmilon nickmi...@gmail.com wrote:
 Not been a Googler can't help much with this.
 Having said that, I suspect there is a kind of build in algorithm that
 does some kind of application profiling taking into acount QPS,
 response times, and other parameters which adjusts instance life time,
 number of instances to start etc..
 This could possibly explain the difference in behaviour between your
 staging and production appls.

 happy coding;-)

 On Nov 23, 11:58 am, Tomas Alaeus tala...@gmail.com wrote:



  I'm curious when exactly instances are started. I have two
  applications running on GAE, one of them have billing enabled. The one
  with billing enabled have been stress tested and have at most started
  100 simultaneous instances. The other is just for testing and staging
  purposes and have never handeled much traffic.

  What I experience is that the staging server never starts more
  instances than needed. If a single person views pages it will never
  load more than a single instance. The other one however seems to start
  about 5 instances before anyone can get hot responses, and it will
  continue to start up to about 10 before realizing that ~1 QPS isn't
  that much traffic (the requests finish in about 100ms each).

  So, why does GAE boot up lots of instances even though 1 instance can
  serve the incoming traffic without a problem (the requests doesn't
  even overlap, so no waiting is needed)?

  I realize that this isn't a very big issue, since when it gets lots of
  traffic it will indeed need all the instances. I'm just curious why it
  happens.

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Unable to deploy due to 500 server error

2010-11-21 Thread Tomas Alaeus
I have similar issues. Admin console gave (works now) 500-errors, and
I can't deploy.

On 21 Nov, 12:14, Steve unetright.thebas...@xoxy.net wrote:
 This is happening again to me.  Was the deploy failing fix reverted?

 --Steve

 On Nov 18, 5:38 pm, Ikai Lan (Google) ikai.l+gro...@google.com
 wrote:



  I wish I could take credit for this, but you have the other members of our
  excellent production team to thank. Here are some more details:

 http://groups.google.com/group/google-appengine-downtime-notify/brows...

  --
  Ikai Lan
  Developer Programs Engineer, Google App Engine
  Blogger:http://googleappengine.blogspot.com
  Reddit:http://www.reddit.com/r/appengine
  Twitter:http://twitter.com/app_engine

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: There a limit of reqs/sec? (160reqs/sec)

2010-11-05 Thread Tomas Alaeus
I'm getting conflicted responses here... The documentation says 45,200
QPM max, which translates to a sustained 500 QPS, it also says max 30
instances (or maybe that was just someone who figured it out and
posted on a forum). Now you say there is no QPS cap, and the support
said that there isn't a cap on instances on billing accounts. The
latter doesn't seem to affect my account, since it never grows past 30
instances.

Which values and facts are the correct ones?

On 19 Okt, 16:38, Nick Johnson (Google) nick.john...@google.com
wrote:
 Hi Sahid,

 What you're seeing in your graph there is the transition between historical
 data, which is stored at a lower time resolution, and newer data. The QPS
 isn't capped, it was just roughly flat for that time period.

 -Nick Johnson





 On Mon, Oct 18, 2010 at 9:21 AM, sahid sahid.ferdja...@gmail.com wrote:
  Hello all,

  Just a question,
  this morning i has checked my chart of reqs/sec and I suspect the
  number is blocked at 160reqs/sec

  Just i would like know if it not a problem maybe i'm paranoïde :)

  For informations:
   - The reqs/sec:http://goo.gl/upVZ
   - The errors/sec:http://goo.gl/F43k

  Thanks,
  Sahid

  --
  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-appeng...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscrib...@googlegroups.com
  .
  For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.

 --
 Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. ::
 Registered in Dublin, Ireland, Registration Number: 368047
 Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number:
 368047

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Channel API outside browsers

2010-11-03 Thread Tomas Alaeus
I must admit, I haven't looked at the javascript in the SDK, no.
Didn't really think about it. In either case, it would be really nice
if official APIs for other languages were released as well. Maybe not
so likely to happen though.

On 3 Nov, 05:37, Robert Kluin robert.kl...@gmail.com wrote:
 Are the data-exchanges overly complicated?

 I have used XMPP for an app, I was hoping the channel API would let me 
 simplify.

 Robert



 On Wed, Nov 3, 2010 at 00:29, Peter Petrov onest...@gmail.com wrote:
  Forget about emulating it outside of a browser. Your best bet is using a
  separate mechanism for sending messages to non-browser clients - for example
  make a HTTP postback, or send a XMPP message.

  On Wed, Nov 3, 2010 at 6:20 AM, Robert Kluin robert.kl...@gmail.com wrote:

  Have you look at the communications at all?  I the javascript file is
  included in the SDK.  It is a little heavy, but you could probably
  use firebug (or chrome/safari dev console) to figure out what is going
  on.

 http://code.google.com/p/googleappengine/source/browse/trunk/python/g...

  Robert

  On Tue, Nov 2, 2010 at 08:41, Tomas Alaeus tala...@gmail.com wrote:
   I for one thought directly of games when I heard that the Channel API
   were coming to AppEngine. However, all discussions and articles only
   mentions a Javascript client running in a web browser. Will it come
   ports to other languages as well? Maybe the actual communication is so
   simple that it is trivial to do oneself (considering that the API is
   somewhat similar to websockets if I understood it correctly)?

   Thanks, Tomas

   --
   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-appeng...@googlegroups.com.
   To unsubscribe from this group, send email to
   google-appengine+unsubscr...@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 post to this group, send email to google-appeng...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine+unsubscr...@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 post to this group, send email to google-appeng...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine+unsubscr...@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 post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Channel API outside browsers

2010-11-03 Thread Tomas Alaeus
Yes, there exist other solutions to this already. But those require
(at least to my knowledge) either a server outside AppEngine or the
use of another service. To have everything inside the AppEngine
environment would be really nice for a lot of reasons.

On 3 Nov, 14:15, Peter Petrov onest...@gmail.com wrote:
 It will let you simplify _when_ you run inside a web browser. That's what
 the Channel API is designed for. For pushing data to other types of clients
 (automated services, bots, etc.) there already exist good solutions - XMPP,
 PubSubHubbub, plain HTTP POSTs.

 When you run in a browser, the complexity is hidden in the Channel API
 javascript. Only a simplistic interface similar to WebSockets is exposed to
 you as developer. But the complexity hidden underneath in the Channel API
 client library is pretty big:

 - first, there is HTTP long-polling used to emulate a persistent connection
 - second, an undocumented protocol is used to frame the separate messages;
 it's probably ProtocolBuffers-based
 - third, an invisible Iframe together with a Closure XPC channel is used to
 bypass the same-origin javascript policy

 The last one is not necessary if you create an out-of-browser client. But
 the first two are complex enough (primarily the first one). Considering that
 you have other (good) options, it would be quite crazy to go down that road.



 On Wed, Nov 3, 2010 at 6:37 AM, Robert Kluin robert.kl...@gmail.com wrote:
  Are the data-exchanges overly complicated?

  I have used XMPP for an app, I was hoping the channel API would let me
  simplify.

  Robert

  On Wed, Nov 3, 2010 at 00:29, Peter Petrov onest...@gmail.com wrote:
   Forget about emulating it outside of a browser. Your best bet is using a
   separate mechanism for sending messages to non-browser clients - for
  example
   make a HTTP postback, or send a XMPP message.

   On Wed, Nov 3, 2010 at 6:20 AM, Robert Kluin robert.kl...@gmail.com
  wrote:

   Have you look at the communications at all?  I the javascript file is
   included in the SDK.  It is a little heavy, but you could probably
   use firebug (or chrome/safari dev console) to figure out what is going
   on.

 http://code.google.com/p/googleappengine/source/browse/trunk/python/g...

   Robert

   On Tue, Nov 2, 2010 at 08:41, Tomas Alaeus tala...@gmail.com wrote:
I for one thought directly of games when I heard that the Channel API
were coming to AppEngine. However, all discussions and articles only
mentions a Javascript client running in a web browser. Will it come
ports to other languages as well? Maybe the actual communication is so
simple that it is trivial to do oneself (considering that the API is
somewhat similar to websockets if I understood it correctly)?

Thanks, Tomas

--
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to
google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscrib...@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 post to this group, send email to google-appeng...@googlegroups.com.
   To unsubscribe from this group, send email to
   google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscrib...@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 post to this group, send email to google-appeng...@googlegroups.com.
   To unsubscribe from this group, send email to
   google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscrib...@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 post to this group, send email to google-appeng...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscrib...@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 post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Channel API outside browsers

2010-11-02 Thread Tomas Alaeus
I for one thought directly of games when I heard that the Channel API
were coming to AppEngine. However, all discussions and articles only
mentions a Javascript client running in a web browser. Will it come
ports to other languages as well? Maybe the actual communication is so
simple that it is trivial to do oneself (considering that the API is
somewhat similar to websockets if I understood it correctly)?

Thanks, Tomas

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: DB lmitations: how to use multiple criteria on many columns? URGENT!

2010-09-20 Thread Tomas Alaeus
I'm assuming that rooms and floor are integers, that is, you want the
entries which have rooms=3 and 4, and floor = 1 and 2. With this
assumption you one can construct a query which only have one
inequality:

SELECT * FROM house WHERE cost  5 AND cost  15 AND rooms IN
(3, 4) AND floor IN (1, 2)

Worth noting is that this query is actually executed as 4 queries (one
for each combination of IN-parameters). Apart from the additional
performance, AppEngine limits the number of subqueries like this to
25 (if I remember correctly). So you can't scale this to any number of
rooms/floors if you need to.

On 19 Sep, 08:11, GAE-framework.googlecode.com
anton.danilche...@gmail.com wrote:
 Hillo GAE developers!

 I have a serious situation with datastore. I need select data from
 model with multiple criteria. I have a House model, where exists
 fields: cost, rooms, floor. I need filter all houses, where cost 
 5 and  15, and also rooms  = 3 and  5, and also floor = 1
 and  3.

 How can I select this dataset? As I see, the Datastore says that I can
 use filter criteria with , , =, = and != only on one column. But I
 reallly need use this rules on multiple columns.

 Please, help me!!!
 How to implement my task with Datastore limitations?

 Thank you. I really need your help.

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.