[google-appengine] Re: Where can I find commercial successfully websites created using GAE?
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
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
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?
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
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?
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?
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
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
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
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
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
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
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
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
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)
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
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
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
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!
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.