[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-27 Thread Martynas Brijunas

Hi,

> Basically your understanding is correct. I conclude my experience
> about tuning against the high CPU quota here:

my own app gives the "high amount of CPU" error when it hits the root
of the app. I can think of this:

1. py files are probably getting compiled after the app is uploaded
2. a django template is rendered
3. memcache is queried and/or written to

Best regards,
Martin
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-27 Thread mitnickcbc

Hi Peter,

Basically your understanding is correct. I conclude my experience
about tuning against the high CPU quota here:
1. Don't care about the Admin Console warning too much. It said you
will exceed quota soon for your red requests, but it never happen. So
just look at your warning logs. I spent huge amount of time during the
last few days to figure out this...
2. Since you have the log, you know the request causing you issues and
you can put debug info there to help you figure out what the issue is.
Here are some of the cases I met that showing me the high CPU warning:
  1) Loading too much data. For example, I used to load 50 records and
it takes quite some time to process and render them to generate the
response. Then I break it into pages and everything is fine. Almost
all of my warnings are caused by this root cause.
  2) Memcache usage seems to be counted here. Generally you should not
meet much issue here. But if you put big objects like list to
memcache, it may cause problems.

The Admin Console warning is useful to help you figure out that which
request is doing heavy datastore operations or URL calls. So you may
want to tune your datastore operation and URL calls against this.

On Sep 27, 9:48 am, Peter Recore <[EMAIL PROTECTED]> wrote:
> mitnick,
>
> Can you explain more fully what the problem was, and how you were able
> to debug the problem once you knew to look at the logs vs the
> dashboard?  After all the back and forth on the high cpu quota issue,
> I am curious about the particulars.   Right now, this is how I
> understand it:
>
> Warnings in the logs are based solely on the CPU used in Non API calls
> - so if I had a request that did nothing but try to factor a really
> large prime, I would probably get a lot of these warnings, and they
> would also trigger dashboard warnings?
>
> Warnings in the dashboard include CPU used in API calls, so if I had a
> request that did nothing but complicated datastore calls, it would get
> a dashboard warning, but *not* a log warning?
>
> If that's the case, I am guessing you (mitnick) had a request that was
> using a lot of runtime CPU but not necessarily a lot of API time?
>
> On Sep 26, 8:55 pm, mitnickcbc <[EMAIL PROTECTED]> wrote:
>
> > > Request denials for high CPU are based on the runtime CPU usage (which
> > > does not include the CPU used in API calls). Since the runtime CPU
> > > cost are the ones present in the logs, it is more useful to rely on
> > > the log information when trying to determine how best to reduce CPU
> > > load for specific requests.
>
> > Thanks for the clarification! Now I'm able to find the bottleneck
> > and... it scales!
>
> > On Sep 27, 2:00 am, Jeff S <[EMAIL PROTECTED]> wrote:
>
> > > On Sep 26, 1:48 am, mitnickcbc <[EMAIL PROTECTED]> wrote:
>
> > > > Some update about my latest findings. And these are my guesses, please
> > > > do correct me if I'm wrong.
>
> > > > The quota denial for high amount CPU and the warning message "Many of
> > > > the requests to your application are taking a very long time. Please
> > > > optimize these requests." is calculated based on the number of warning
> > > > you get in your log saying that "This request used a high amount of
> > > > CPU, and was roughly 1.0 times over the average request CPU limit.
> > > > High CPU requests have a small quota, and if you exceed this quota,
> > > > your app will be temporarily disabled."
>
> > > > Please note, the average CPU usage and related warning are very
> > > > misleading. The mcycles value displayed in log is also very different
> > > > from the x.x times value showed in warning message. I used to think
> > > > that request using beyond 1800 mcycles CPU will be considered as a
> > > > high CPU request since it shows red in Average CPU column. But the
> > > > latest finding is that it's not the case. One kind of my requests use
> > > > about 6K-7K mcycles in average CPU, but I seldom see a high CPU
> > > > warning in log for them. Again, this mcycles value seems to mean
> > > > nothing and the algorithm used to calculate the x.x times high CPU
> > > > warning really matters!
>
> > > As you have noticed, there are differences in the CPU usage
> > > measurements presented in the logs and in the dashboard. This thread
> > > contains clarification which I've copied below:
>
> > >http://groups.google.com/group/google-appengine/browse_frm/thread/f21...
> > > "Concerning CPU accounting overall - The warning threshold for the
> > > logs
> > > and for the dashboard actually differ.  In the logs, warnings will
> > > only
> > > occur for high runtime CPU.  The warnings on the dashboard are
> > > triggered for
> > > high overall CPU, including CPU used in the runtime and per API, most
> > > notably being the datastore API."
>
> > > Request denials for high CPU are based on the runtime CPU usage (which
> > > does not include the CPU used in API calls). Since the runtime CPU
> > > cost are the ones present in the logs, it is more useful to rely on

[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-26 Thread Peter Recore

mitnick,

Can you explain more fully what the problem was, and how you were able
to debug the problem once you knew to look at the logs vs the
dashboard?  After all the back and forth on the high cpu quota issue,
I am curious about the particulars.   Right now, this is how I
understand it:

Warnings in the logs are based solely on the CPU used in Non API calls
- so if I had a request that did nothing but try to factor a really
large prime, I would probably get a lot of these warnings, and they
would also trigger dashboard warnings?

Warnings in the dashboard include CPU used in API calls, so if I had a
request that did nothing but complicated datastore calls, it would get
a dashboard warning, but *not* a log warning?

If that's the case, I am guessing you (mitnick) had a request that was
using a lot of runtime CPU but not necessarily a lot of API time?

On Sep 26, 8:55 pm, mitnickcbc <[EMAIL PROTECTED]> wrote:
> > Request denials for high CPU are based on the runtime CPU usage (which
> > does not include the CPU used in API calls). Since the runtime CPU
> > cost are the ones present in the logs, it is more useful to rely on
> > the log information when trying to determine how best to reduce CPU
> > load for specific requests.
>
> Thanks for the clarification! Now I'm able to find the bottleneck
> and... it scales!
>
> On Sep 27, 2:00 am, Jeff S <[EMAIL PROTECTED]> wrote:
>
> > On Sep 26, 1:48 am, mitnickcbc <[EMAIL PROTECTED]> wrote:
>
> > > Some update about my latest findings. And these are my guesses, please
> > > do correct me if I'm wrong.
>
> > > The quota denial for high amount CPU and the warning message "Many of
> > > the requests to your application are taking a very long time. Please
> > > optimize these requests." is calculated based on the number of warning
> > > you get in your log saying that "This request used a high amount of
> > > CPU, and was roughly 1.0 times over the average request CPU limit.
> > > High CPU requests have a small quota, and if you exceed this quota,
> > > your app will be temporarily disabled."
>
> > > Please note, the average CPU usage and related warning are very
> > > misleading. The mcycles value displayed in log is also very different
> > > from the x.x times value showed in warning message. I used to think
> > > that request using beyond 1800 mcycles CPU will be considered as a
> > > high CPU request since it shows red in Average CPU column. But the
> > > latest finding is that it's not the case. One kind of my requests use
> > > about 6K-7K mcycles in average CPU, but I seldom see a high CPU
> > > warning in log for them. Again, this mcycles value seems to mean
> > > nothing and the algorithm used to calculate the x.x times high CPU
> > > warning really matters!
>
> > As you have noticed, there are differences in the CPU usage
> > measurements presented in the logs and in the dashboard. This thread
> > contains clarification which I've copied below:
>
> >http://groups.google.com/group/google-appengine/browse_frm/thread/f21...
> > "Concerning CPU accounting overall - The warning threshold for the
> > logs
> > and for the dashboard actually differ.  In the logs, warnings will
> > only
> > occur for high runtime CPU.  The warnings on the dashboard are
> > triggered for
> > high overall CPU, including CPU used in the runtime and per API, most
> > notably being the datastore API."
>
> > Request denials for high CPU are based on the runtime CPU usage (which
> > does not include the CPU used in API calls). Since the runtime CPU
> > cost are the ones present in the logs, it is more useful to rely on
> > the log information when trying to determine how best to reduce CPU
> > load for specific requests.
>
> > Happy coding,
>
> > Jeff
>
> > > With this in mind, the focus is back to the warning message itself to
> > > figure out what's the algorithm. So there is an "average request CPU
> > > limit" in this message. This value seems to be quite big and only my
> > > requests that are doing some work which should be done by a background
> > > scheduler exceeds it. The question is, is this a fixed value? Or a
> > > dynamic value calculated based on all apps? Or a dynamic value
> > > calculated based on the app itself?
>
> > > And the number of such warnings has a fixed quota that doesn't scale
> > > with other quotas. If all my assumption is right here, the best option
> > > to solve this issue in my mind is to make the high CPU quota scale as
> > > other quotas.
>
> > > On Sep 26, 1:22 am, mitnickcbc <[EMAIL PROTECTED]> wrote:
>
> > > > Anyone has any idea how this warning message is calculated? "Many of
> > > > the requests to your application are taking a very long time. Please
> > > > optimize these requests."
>
> > > > It seems I meet quota denials every time this one shows up. I'm unable
> > > > to tune anymore if I don't know how it is calculated.
>
> > > > There are several possible algorithms for this in my mind and I need
> > > > to know which one is used to be able

[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-26 Thread mitnickcbc

> Request denials for high CPU are based on the runtime CPU usage (which
> does not include the CPU used in API calls). Since the runtime CPU
> cost are the ones present in the logs, it is more useful to rely on
> the log information when trying to determine how best to reduce CPU
> load for specific requests.

Thanks for the clarification! Now I'm able to find the bottleneck
and... it scales!

On Sep 27, 2:00 am, Jeff S <[EMAIL PROTECTED]> wrote:
> On Sep 26, 1:48 am, mitnickcbc <[EMAIL PROTECTED]> wrote:
>
>
>
> > Some update about my latest findings. And these are my guesses, please
> > do correct me if I'm wrong.
>
> > The quota denial for high amount CPU and the warning message "Many of
> > the requests to your application are taking a very long time. Please
> > optimize these requests." is calculated based on the number of warning
> > you get in your log saying that "This request used a high amount of
> > CPU, and was roughly 1.0 times over the average request CPU limit.
> > High CPU requests have a small quota, and if you exceed this quota,
> > your app will be temporarily disabled."
>
> > Please note, the average CPU usage and related warning are very
> > misleading. The mcycles value displayed in log is also very different
> > from the x.x times value showed in warning message. I used to think
> > that request using beyond 1800 mcycles CPU will be considered as a
> > high CPU request since it shows red in Average CPU column. But the
> > latest finding is that it's not the case. One kind of my requests use
> > about 6K-7K mcycles in average CPU, but I seldom see a high CPU
> > warning in log for them. Again, this mcycles value seems to mean
> > nothing and the algorithm used to calculate the x.x times high CPU
> > warning really matters!
>
> As you have noticed, there are differences in the CPU usage
> measurements presented in the logs and in the dashboard. This thread
> contains clarification which I've copied below:
>
> http://groups.google.com/group/google-appengine/browse_frm/thread/f21...
> "Concerning CPU accounting overall - The warning threshold for the
> logs
> and for the dashboard actually differ.  In the logs, warnings will
> only
> occur for high runtime CPU.  The warnings on the dashboard are
> triggered for
> high overall CPU, including CPU used in the runtime and per API, most
> notably being the datastore API."
>
> Request denials for high CPU are based on the runtime CPU usage (which
> does not include the CPU used in API calls). Since the runtime CPU
> cost are the ones present in the logs, it is more useful to rely on
> the log information when trying to determine how best to reduce CPU
> load for specific requests.
>
> Happy coding,
>
> Jeff
>
>
>
> > With this in mind, the focus is back to the warning message itself to
> > figure out what's the algorithm. So there is an "average request CPU
> > limit" in this message. This value seems to be quite big and only my
> > requests that are doing some work which should be done by a background
> > scheduler exceeds it. The question is, is this a fixed value? Or a
> > dynamic value calculated based on all apps? Or a dynamic value
> > calculated based on the app itself?
>
> > And the number of such warnings has a fixed quota that doesn't scale
> > with other quotas. If all my assumption is right here, the best option
> > to solve this issue in my mind is to make the high CPU quota scale as
> > other quotas.
>
> > On Sep 26, 1:22 am, mitnickcbc <[EMAIL PROTECTED]> wrote:
>
> > > Anyone has any idea how this warning message is calculated? "Many of
> > > the requests to your application are taking a very long time. Please
> > > optimize these requests."
>
> > > It seems I meet quota denials every time this one shows up. I'm unable
> > > to tune anymore if I don't know how it is calculated.
>
> > > There are several possible algorithms for this in my mind and I need
> > > to know which one is used to be able to move forward:
> > > 1. Based on the total number of high CPU requests in a certain period
> > > of time. And what's the CPU usage value to make a request counted in?
> > > 1200 mcycles? 1800, or anything else?
> > > 2. Based on total CPU consumed by these high CPU.
> > > 3. Based on response time.
>
> > > However, no matter how much I tuned, it's just about time for me to
> > > reach the load limit. Since 30% of my write requests will never
> > > possible to fit the current high CPU bar. It also seems that the high
> > > CPU quota is not increased with the other quota. So say assume 10% of
> > > your requests are high CPU ones, and GAE only allows 1 high CPU
> > > request per second, then you will not be able to scale beyond 10
> > > requests per second, no matter how much CPU quota you have.
>
> > > There are 3 solutions in my mind:
> > > 1. Raise the high CPU bar to fit real world needs like raising it to
> > > 10K mcycles.
> > > 2. Make the high amount CPU quota scalable and configurable instead of
> > > a fixed number. Such as 

[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-26 Thread Aramaki

Only one question, I wonder how much CPU of google is spent in
calculating high amount coutas. Pherahaps google should assign our
application that cpu time.
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-26 Thread Jeff S



On Sep 26, 1:48 am, mitnickcbc <[EMAIL PROTECTED]> wrote:
> Some update about my latest findings. And these are my guesses, please
> do correct me if I'm wrong.
>
> The quota denial for high amount CPU and the warning message "Many of
> the requests to your application are taking a very long time. Please
> optimize these requests." is calculated based on the number of warning
> you get in your log saying that "This request used a high amount of
> CPU, and was roughly 1.0 times over the average request CPU limit.
> High CPU requests have a small quota, and if you exceed this quota,
> your app will be temporarily disabled."
>
> Please note, the average CPU usage and related warning are very
> misleading. The mcycles value displayed in log is also very different
> from the x.x times value showed in warning message. I used to think
> that request using beyond 1800 mcycles CPU will be considered as a
> high CPU request since it shows red in Average CPU column. But the
> latest finding is that it's not the case. One kind of my requests use
> about 6K-7K mcycles in average CPU, but I seldom see a high CPU
> warning in log for them. Again, this mcycles value seems to mean
> nothing and the algorithm used to calculate the x.x times high CPU
> warning really matters!

As you have noticed, there are differences in the CPU usage
measurements presented in the logs and in the dashboard. This thread
contains clarification which I've copied below:

http://groups.google.com/group/google-appengine/browse_frm/thread/f210131b359b8fe6
"Concerning CPU accounting overall - The warning threshold for the
logs
and for the dashboard actually differ.  In the logs, warnings will
only
occur for high runtime CPU.  The warnings on the dashboard are
triggered for
high overall CPU, including CPU used in the runtime and per API, most
notably being the datastore API."

Request denials for high CPU are based on the runtime CPU usage (which
does not include the CPU used in API calls). Since the runtime CPU
cost are the ones present in the logs, it is more useful to rely on
the log information when trying to determine how best to reduce CPU
load for specific requests.

Happy coding,

Jeff

>
> With this in mind, the focus is back to the warning message itself to
> figure out what's the algorithm. So there is an "average request CPU
> limit" in this message. This value seems to be quite big and only my
> requests that are doing some work which should be done by a background
> scheduler exceeds it. The question is, is this a fixed value? Or a
> dynamic value calculated based on all apps? Or a dynamic value
> calculated based on the app itself?
>
> And the number of such warnings has a fixed quota that doesn't scale
> with other quotas. If all my assumption is right here, the best option
> to solve this issue in my mind is to make the high CPU quota scale as
> other quotas.
>
> On Sep 26, 1:22 am, mitnickcbc <[EMAIL PROTECTED]> wrote:
>
>
>
> > Anyone has any idea how this warning message is calculated? "Many of
> > the requests to your application are taking a very long time. Please
> > optimize these requests."
>
> > It seems I meet quota denials every time this one shows up. I'm unable
> > to tune anymore if I don't know how it is calculated.
>
> > There are several possible algorithms for this in my mind and I need
> > to know which one is used to be able to move forward:
> > 1. Based on the total number of high CPU requests in a certain period
> > of time. And what's the CPU usage value to make a request counted in?
> > 1200 mcycles? 1800, or anything else?
> > 2. Based on total CPU consumed by these high CPU.
> > 3. Based on response time.
>
> > However, no matter how much I tuned, it's just about time for me to
> > reach the load limit. Since 30% of my write requests will never
> > possible to fit the current high CPU bar. It also seems that the high
> > CPU quota is not increased with the other quota. So say assume 10% of
> > your requests are high CPU ones, and GAE only allows 1 high CPU
> > request per second, then you will not be able to scale beyond 10
> > requests per second, no matter how much CPU quota you have.
>
> > There are 3 solutions in my mind:
> > 1. Raise the high CPU bar to fit real world needs like raising it to
> > 10K mcycles.
> > 2. Make the high amount CPU quota scalable and configurable instead of
> > a fixed number. Such as making it 30% of normal CPU quota. However, I
> > would still suggest to not even fix the percentage since every
> > application is different. Better to make it configurable by developer
> > themselves.
> > 3. Make high amount CPU quota same as other quotas like CPU and
> > bandwidth. So developer can apply for it if they are running out of
> > it.
>
> > I'm not sure which one is more doable to GAE, but there must be some
> > solution to be happen otherwise it will not scale.
>
> > On Sep 21, 7:27 pm,mitnickcbc<[EMAIL PROTECTED]> wrote:
>
> > > I have filed a feature request for this issue, if

[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-26 Thread yaoye

Agree with you, man, CPU quota error is frequently for me, but just
some query action for less than 100 records, for a python environment,
we need more CPU power than static processing ability, so I think the
way of the limitation should be adjusted.

On Sep 21, 7:27 pm, mitnickcbc <[EMAIL PROTECTED]> wrote:
> I have filed a feature request for this issue, if you feel so please
> star it.
>
> http://code.google.com/p/googleappengine/issues/detail?id=720
>
> Here is the description:
>
> Well, I don't get the purpose for having a High Amount CPU Quota since
> there is already a general CPU Quota. And there are quite a lot of
> problems caused by this quota which restrict my application from
> affording more load. And my application is far away from a 5 million
> month PV app.
> 1. Requests can become a high amount CPU one very easily. A little
> complex request will consume more than 3K mcycles. And what do I mean
> a little
> complex? If you do more than 2 put, or you do a url fetch, or you do a
> query based on an order to select more than 50 model, or you do a put
> on a
> model more than 20 fields, it is that complex. In my case, 80% of the
> requests are that complex and I don't think it can be optimized
> anymore
> since I do need to do put and url fetch.
> 2. Bad visibility to this quota. There is no way we can know when we
> will run out of quota for this. All we got is the warning in admin
> console that
> says our requests are using high amount CPU quota and will soon run
> out of it.
> 3. Doesn't back to normal quickly. I'm using a script to continue
> fetching my data from production and do some offline process.
> Unfortunately I fetch
> too much in one call that I try to get 100 models at a time and which
> makes the request a high CPU one. Soon, I meet quota deny. Then I stop
> my script,
> but after 1.5 hours, I still see quota deny for requests from my
> users. The "Many of the requests to your application are taking a very
> long time.
> Please optimize these requests." warning keeps there even I have
> stopped the script for so long time.

--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-26 Thread mitnickcbc

Some update about my latest findings. And these are my guesses, please
do correct me if I'm wrong.

The quota denial for high amount CPU and the warning message "Many of
the requests to your application are taking a very long time. Please
optimize these requests." is calculated based on the number of warning
you get in your log saying that "This request used a high amount of
CPU, and was roughly 1.0 times over the average request CPU limit.
High CPU requests have a small quota, and if you exceed this quota,
your app will be temporarily disabled."

Please note, the average CPU usage and related warning are very
misleading. The mcycles value displayed in log is also very different
from the x.x times value showed in warning message. I used to think
that request using beyond 1800 mcycles CPU will be considered as a
high CPU request since it shows red in Average CPU column. But the
latest finding is that it's not the case. One kind of my requests use
about 6K-7K mcycles in average CPU, but I seldom see a high CPU
warning in log for them. Again, this mcycles value seems to mean
nothing and the algorithm used to calculate the x.x times high CPU
warning really matters!

With this in mind, the focus is back to the warning message itself to
figure out what's the algorithm. So there is an "average request CPU
limit" in this message. This value seems to be quite big and only my
requests that are doing some work which should be done by a background
scheduler exceeds it. The question is, is this a fixed value? Or a
dynamic value calculated based on all apps? Or a dynamic value
calculated based on the app itself?

And the number of such warnings has a fixed quota that doesn't scale
with other quotas. If all my assumption is right here, the best option
to solve this issue in my mind is to make the high CPU quota scale as
other quotas.


On Sep 26, 1:22 am, mitnickcbc <[EMAIL PROTECTED]> wrote:
> Anyone has any idea how this warning message is calculated? "Many of
> the requests to your application are taking a very long time. Please
> optimize these requests."
>
> It seems I meet quota denials every time this one shows up. I'm unable
> to tune anymore if I don't know how it is calculated.
>
> There are several possible algorithms for this in my mind and I need
> to know which one is used to be able to move forward:
> 1. Based on the total number of high CPU requests in a certain period
> of time. And what's the CPU usage value to make a request counted in?
> 1200 mcycles? 1800, or anything else?
> 2. Based on total CPU consumed by these high CPU.
> 3. Based on response time.
>
> However, no matter how much I tuned, it's just about time for me to
> reach the load limit. Since 30% of my write requests will never
> possible to fit the current high CPU bar. It also seems that the high
> CPU quota is not increased with the other quota. So say assume 10% of
> your requests are high CPU ones, and GAE only allows 1 high CPU
> request per second, then you will not be able to scale beyond 10
> requests per second, no matter how much CPU quota you have.
>
> There are 3 solutions in my mind:
> 1. Raise the high CPU bar to fit real world needs like raising it to
> 10K mcycles.
> 2. Make the high amount CPU quota scalable and configurable instead of
> a fixed number. Such as making it 30% of normal CPU quota. However, I
> would still suggest to not even fix the percentage since every
> application is different. Better to make it configurable by developer
> themselves.
> 3. Make high amount CPU quota same as other quotas like CPU and
> bandwidth. So developer can apply for it if they are running out of
> it.
>
> I'm not sure which one is more doable to GAE, but there must be some
> solution to be happen otherwise it will not scale.
>
> On Sep 21, 7:27 pm,mitnickcbc<[EMAIL PROTECTED]> wrote:
>
> > I have filed a feature request for this issue, if you feel so please
> > star it.
>
> >http://code.google.com/p/googleappengine/issues/detail?id=720
>
> > Here is the description:
>
> > Well, I don't get the purpose for having a High Amount CPU Quota since
> > there is already a general CPU Quota. And there are quite a lot of
> > problems caused by this quota which restrict my application from
> > affording more load. And my application is far away from a 5 million
> > month PV app.
> > 1. Requests can become a high amount CPU one very easily. A little
> > complex request will consume more than 3K mcycles. And what do I mean
> > a little
> > complex? If you do more than 2 put, or you do a url fetch, or you do a
> > query based on an order to select more than 50 model, or you do a put
> > on a
> > model more than 20 fields, it is that complex. In my case, 80% of the
> > requests are that complex and I don't think it can be optimized
> > anymore
> > since I do need to do put and url fetch.
> > 2. Bad visibility to this quota. There is no way we can know when we
> > will run out of quota for this. All we got is the warning in admin
> > console th

[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-25 Thread mitnickcbc

Anyone has any idea how this warning message is calculated? "Many of
the requests to your application are taking a very long time. Please
optimize these requests."

It seems I meet quota denials every time this one shows up. I'm unable
to tune anymore if I don't know how it is calculated.

There are several possible algorithms for this in my mind and I need
to know which one is used to be able to move forward:
1. Based on the total number of high CPU requests in a certain period
of time. And what's the CPU usage value to make a request counted in?
1200 mcycles? 1800, or anything else?
2. Based on total CPU consumed by these high CPU.
3. Based on response time.

However, no matter how much I tuned, it's just about time for me to
reach the load limit. Since 30% of my write requests will never
possible to fit the current high CPU bar. It also seems that the high
CPU quota is not increased with the other quota. So say assume 10% of
your requests are high CPU ones, and GAE only allows 1 high CPU
request per second, then you will not be able to scale beyond 10
requests per second, no matter how much CPU quota you have.

There are 3 solutions in my mind:
1. Raise the high CPU bar to fit real world needs like raising it to
10K mcycles.
2. Make the high amount CPU quota scalable and configurable instead of
a fixed number. Such as making it 30% of normal CPU quota. However, I
would still suggest to not even fix the percentage since every
application is different. Better to make it configurable by developer
themselves.
3. Make high amount CPU quota same as other quotas like CPU and
bandwidth. So developer can apply for it if they are running out of
it.

I'm not sure which one is more doable to GAE, but there must be some
solution to be happen otherwise it will not scale.

On Sep 21, 7:27 pm, mitnickcbc <[EMAIL PROTECTED]> wrote:
> I have filed a feature request for this issue, if you feel so please
> star it.
>
> http://code.google.com/p/googleappengine/issues/detail?id=720
>
> Here is the description:
>
> Well, I don't get the purpose for having a High Amount CPU Quota since
> there is already a general CPU Quota. And there are quite a lot of
> problems caused by this quota which restrict my application from
> affording more load. And my application is far away from a 5 million
> month PV app.
> 1. Requests can become a high amount CPU one very easily. A little
> complex request will consume more than 3K mcycles. And what do I mean
> a little
> complex? If you do more than 2 put, or you do a url fetch, or you do a
> query based on an order to select more than 50 model, or you do a put
> on a
> model more than 20 fields, it is that complex. In my case, 80% of the
> requests are that complex and I don't think it can be optimized
> anymore
> since I do need to do put and url fetch.
> 2. Bad visibility to this quota. There is no way we can know when we
> will run out of quota for this. All we got is the warning in admin
> console that
> says our requests are using high amount CPU quota and will soon run
> out of it.
> 3. Doesn't back to normal quickly. I'm using a script to continue
> fetching my data from production and do some offline process.
> Unfortunately I fetch
> too much in one call that I try to get 100 models at a time and which
> makes the request a high CPU one. Soon, I meet quota deny. Then I stop
> my script,
> but after 1.5 hours, I still see quota deny for requests from my
> users. The "Many of the requests to your application are taking a very
> long time.
> Please optimize these requests." warning keeps there even I have
> stopped the script for so long time.
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-25 Thread Ethan Post
In another post someone was exceeding the 5 second timeout with urlfetch
trying to get an RSS feed for a Google Docs account. I am planning on using
the Google Charts API and I wonder if I won't hit the same issue. However,
this got me thinking that writing a service like the Charting API on GAE is
quite improbable given what we presently know about CPU thresholds, however
we have to presume that the charting API that google offers is scalable. I
know the service is new and I don't mind the limits since I haven't actually
been locked out yet and I assume things will get better. I would encourage
Google to look at the CPU profiles for services like the charting API when
thinking about what limits to set on GAE.

On Tue, Sep 23, 2008 at 7:45 PM, Michael Hart <[EMAIL PROTECTED]>wrote:

>
> Hi all,
>
> Having been through a number of shared hosting situations, I'm gonna
> have to say that I disagree with most of the complaints on this thread.
>
> I think one of the main things not to lose sight of is the fact that
> GAE is intended to be a scalable platform, not a generic hosting
> solution. If you want or need a dedicated amount of CPU or memory,
> then GAE, at least as it stands today, is probably not what you want.
> The limits that are imposed in GAE are there to ensure that your app
> will scale. There are many apps that don't need to scale, and I would
> suggest that it's probably going to be easier for these to be
> developed on a more traditional platform.
>

--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-24 Thread Aramaki


I agree 100%. The high Amount CPU Quota for applications  is to low
except if you code something trivial like a string manipulation it is
ok. But if you want to code a real end user application google app is
not a reliable platform at this point because it's not possible to
scale your needs.

suggestion: Less campfire and more REAL quotas.
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-24 Thread mitnickcbc

Thank you for digging into this issue, Michael.

There are 8 indexes on Account to support different kind of query. 3
options of order, 2 options of filter generates 6 indexes then plus 2
other ones. Only one field is list and it contains very few items and
almost never change. It's parent of another payment entity, and there
are very few number of this entity.

I do have a small test case which does 1 Account put, 1 small entity
put, 1 url call, and it costs 2600 mcycles.

Spliting Account is the thing I have not tested. And I'm not going to
do so since it is quite risky. I need to handle the data migration,
also may need to introduce duplicate fields. I also don't know even if
I put those efforts to make this happen, whether I will really get
much benefit out of it. But I may try this out in my new applications
to strictly limit the size of entity. Best practice from GAE or any
experienced expert is well welcomed here.

On Sep 24, 3:29 pm, Michael Hart <[EMAIL PROTECTED]> wrote:
> Just a couple of questions to clarify - how many indexes are there for  
> the Account entity and are all the fields single dimensional  
> properties, or are there lists in there too? And out of interest, is  
> it the parent of an entity group?
>
> I would agree that a single request that involves putting an entity  
> with 24 flat properties and simple indexes should not put you over  
> quota, and if this is what's happening, then perhaps it should be  
> looked at further (perhaps you could come up with a small test case).
>
> The only other question would be whether you can split the Account  
> into multiple entities so that fields that are updated frequently are  
> separated out and the entire entity doesn't need to be written each  
> time.
>
> On 24/09/2008, at 5:03 PM, mitnickcbc wrote:
>
>
>
> > Hi Michael,
>
> > Thanks for putting these thoughts and that eBay best practice article
> > is awesome! It really helps me understand more about distribution
> > system. It also convinced me that global transaction is not that
> > important. And I have refined my code according to this article, but I
> > didn't notice big improvements. And I have analyzed my request data
> > carefully and I'd like to share some findings.
>
> > I have one Account entity which has 24 fields and this one seems to be
> > the biggest issue. 30% of my requests have similar complexity. They do
> > 2 - 3 Account puts, 4 small entity (4 fields) puts, and 2 URL calls to
> > Facebook. All these requests are consuming 6K - 9K mcycles. By
> > comparing different URL calls, I notice this data:
>
> > 1 Account put uses about 1800 mcycles.
> > 3 small puts plus 1 url call uses about 2000 mcycles.
> > 1 small put uses about 600 mcycles (estimated).
>
> > Your average CPU turns into orange when beyond 1200 mcycles, and turns
> > into red when beyond around 2000 mcycles.
>
> > I don't know what you feel, but I think this "high amount" definition
> > is too low. If this is not too low, that's fine to warn us. But add
> > quota to this will kick out a lot of applications.
>
> > On Sep 24, 8:45 am, Michael Hart <[EMAIL PROTECTED]> wrote:
> >> Hi all,
>
> >> Having been through a number of shared hosting situations, I'm gonna
> >> have to say that I disagree with most of the complaints on this  
> >> thread.
>
> >> I think one of the main things not to lose sight of is the fact that
> >> GAE is intended to be a scalable platform, not a generic hosting
> >> solution. If you want or need a dedicated amount of CPU or memory,
> >> then GAE, at least as it stands today, is probably not what you want.
> >> The limits that are imposed in GAE are there to ensure that your app
> >> will scale. There are many apps that don't need to scale, and I would
> >> suggest that it's probably going to be easier for these to be
> >> developed on a more traditional platform.
>
> >> Global transactions don't scale (if eBay doesn't need them, than
> >> mostly likely neither will 
> >> youhttp://www.infoq.com/articles/ebay-scalability-best-practices)
> >> . Consistent CPU spikes don't scale. Long request times don't scale -
> >> at least, not particularly well. If each of your requests are taking,
> >> say 10 seconds to fetch a page from another URL and you get hammered
> >> with a few hundred requests a second, then I don't want my app on the
> >> same box as yours (and no doubt the site you're fetching from won't  
> >> be
> >> happy either). Now if Google introduce pricing that guarantees you a
> >> certain amount of memory or CPU or I/O on a box ala EC2, then that's
> >> fine, but until then (or if that doesn't happen), it's all about  
> >> being
> >> a good cloud citizen.
>
> >> Scalability isn't easy. It's made easier with tools like BigTable and
> >> Memcache, but you still have to use them correctly and they will
> >> impose certain limitations on the way you develop. If you develop an
> >> app from scratch on EC2 or whatever VPS/dedicated hosting solution  
> >> you
> >> like 

[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-24 Thread Michael Hart

Just a couple of questions to clarify - how many indexes are there for  
the Account entity and are all the fields single dimensional  
properties, or are there lists in there too? And out of interest, is  
it the parent of an entity group?

I would agree that a single request that involves putting an entity  
with 24 flat properties and simple indexes should not put you over  
quota, and if this is what's happening, then perhaps it should be  
looked at further (perhaps you could come up with a small test case).

The only other question would be whether you can split the Account  
into multiple entities so that fields that are updated frequently are  
separated out and the entire entity doesn't need to be written each  
time.

On 24/09/2008, at 5:03 PM, mitnickcbc wrote:

>
> Hi Michael,
>
> Thanks for putting these thoughts and that eBay best practice article
> is awesome! It really helps me understand more about distribution
> system. It also convinced me that global transaction is not that
> important. And I have refined my code according to this article, but I
> didn't notice big improvements. And I have analyzed my request data
> carefully and I'd like to share some findings.
>
> I have one Account entity which has 24 fields and this one seems to be
> the biggest issue. 30% of my requests have similar complexity. They do
> 2 - 3 Account puts, 4 small entity (4 fields) puts, and 2 URL calls to
> Facebook. All these requests are consuming 6K - 9K mcycles. By
> comparing different URL calls, I notice this data:
>
> 1 Account put uses about 1800 mcycles.
> 3 small puts plus 1 url call uses about 2000 mcycles.
> 1 small put uses about 600 mcycles (estimated).
>
> Your average CPU turns into orange when beyond 1200 mcycles, and turns
> into red when beyond around 2000 mcycles.
>
> I don't know what you feel, but I think this "high amount" definition
> is too low. If this is not too low, that's fine to warn us. But add
> quota to this will kick out a lot of applications.
>
>
> On Sep 24, 8:45 am, Michael Hart <[EMAIL PROTECTED]> wrote:
>> Hi all,
>>
>> Having been through a number of shared hosting situations, I'm gonna
>> have to say that I disagree with most of the complaints on this  
>> thread.
>>
>> I think one of the main things not to lose sight of is the fact that
>> GAE is intended to be a scalable platform, not a generic hosting
>> solution. If you want or need a dedicated amount of CPU or memory,
>> then GAE, at least as it stands today, is probably not what you want.
>> The limits that are imposed in GAE are there to ensure that your app
>> will scale. There are many apps that don't need to scale, and I would
>> suggest that it's probably going to be easier for these to be
>> developed on a more traditional platform.
>>
>> Global transactions don't scale (if eBay doesn't need them, than
>> mostly likely neither will 
>> youhttp://www.infoq.com/articles/ebay-scalability-best-practices)
>> . Consistent CPU spikes don't scale. Long request times don't scale -
>> at least, not particularly well. If each of your requests are taking,
>> say 10 seconds to fetch a page from another URL and you get hammered
>> with a few hundred requests a second, then I don't want my app on the
>> same box as yours (and no doubt the site you're fetching from won't  
>> be
>> happy either). Now if Google introduce pricing that guarantees you a
>> certain amount of memory or CPU or I/O on a box ala EC2, then that's
>> fine, but until then (or if that doesn't happen), it's all about  
>> being
>> a good cloud citizen.
>>
>> Scalability isn't easy. It's made easier with tools like BigTable and
>> Memcache, but you still have to use them correctly and they will
>> impose certain limitations on the way you develop. If you develop an
>> app from scratch on EC2 or whatever VPS/dedicated hosting solution  
>> you
>> like and you have the need to scale, then you'll need to start
>> thinking about these issues - issues that GAE force you to think  
>> about
>> upfront. Maybe Google should make it mandatory to read a Scalability
>> 101 paper before signing up - at least that way it's clear that this
>> platform is different to most standard platforms and thus reduce  
>> apple/
>> orange comparisons.
>>
>> Note that I'm not adverse to Google introducing something similar to
>> EC2 for processing services - you could purchase a particular slice
>> that your GAE app could communicate with using Protocol Buffers or
>> whatever - or maybe you could run a bunch of map-reduce tasks. But
>> these require dedicated resources and should be kept well away from
>> the GAE serving boxes. Similarly there could be an S3-like storage
>> solution, as well as a message bus ala SQS. For many large systems,
>> these facilities are essential - and in time, Google may introduce  
>> them.
>>
>> But until then, Amazon's services (or anyone else's) are fine. You
>> want storage? Go S3. You want to run background tasks? Go EC2 or some
>> other VPS host. 

[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-24 Thread mitnickcbc

Hi Michael,

Thanks for putting these thoughts and that eBay best practice article
is awesome! It really helps me understand more about distribution
system. It also convinced me that global transaction is not that
important. And I have refined my code according to this article, but I
didn't notice big improvements. And I have analyzed my request data
carefully and I'd like to share some findings.

I have one Account entity which has 24 fields and this one seems to be
the biggest issue. 30% of my requests have similar complexity. They do
2 - 3 Account puts, 4 small entity (4 fields) puts, and 2 URL calls to
Facebook. All these requests are consuming 6K - 9K mcycles. By
comparing different URL calls, I notice this data:

1 Account put uses about 1800 mcycles.
3 small puts plus 1 url call uses about 2000 mcycles.
1 small put uses about 600 mcycles (estimated).

Your average CPU turns into orange when beyond 1200 mcycles, and turns
into red when beyond around 2000 mcycles.

I don't know what you feel, but I think this "high amount" definition
is too low. If this is not too low, that's fine to warn us. But add
quota to this will kick out a lot of applications.


On Sep 24, 8:45 am, Michael Hart <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> Having been through a number of shared hosting situations, I'm gonna  
> have to say that I disagree with most of the complaints on this thread.
>
> I think one of the main things not to lose sight of is the fact that  
> GAE is intended to be a scalable platform, not a generic hosting  
> solution. If you want or need a dedicated amount of CPU or memory,  
> then GAE, at least as it stands today, is probably not what you want.  
> The limits that are imposed in GAE are there to ensure that your app  
> will scale. There are many apps that don't need to scale, and I would  
> suggest that it's probably going to be easier for these to be  
> developed on a more traditional platform.
>
> Global transactions don't scale (if eBay doesn't need them, than  
> mostly likely neither will 
> youhttp://www.infoq.com/articles/ebay-scalability-best-practices)
> . Consistent CPU spikes don't scale. Long request times don't scale -  
> at least, not particularly well. If each of your requests are taking,  
> say 10 seconds to fetch a page from another URL and you get hammered  
> with a few hundred requests a second, then I don't want my app on the  
> same box as yours (and no doubt the site you're fetching from won't be  
> happy either). Now if Google introduce pricing that guarantees you a  
> certain amount of memory or CPU or I/O on a box ala EC2, then that's  
> fine, but until then (or if that doesn't happen), it's all about being  
> a good cloud citizen.
>
> Scalability isn't easy. It's made easier with tools like BigTable and  
> Memcache, but you still have to use them correctly and they will  
> impose certain limitations on the way you develop. If you develop an  
> app from scratch on EC2 or whatever VPS/dedicated hosting solution you  
> like and you have the need to scale, then you'll need to start  
> thinking about these issues - issues that GAE force you to think about  
> upfront. Maybe Google should make it mandatory to read a Scalability  
> 101 paper before signing up - at least that way it's clear that this  
> platform is different to most standard platforms and thus reduce apple/
> orange comparisons.
>
> Note that I'm not adverse to Google introducing something similar to  
> EC2 for processing services - you could purchase a particular slice  
> that your GAE app could communicate with using Protocol Buffers or  
> whatever - or maybe you could run a bunch of map-reduce tasks. But  
> these require dedicated resources and should be kept well away from  
> the GAE serving boxes. Similarly there could be an S3-like storage  
> solution, as well as a message bus ala SQS. For many large systems,  
> these facilities are essential - and in time, Google may introduce them.
>
> But until then, Amazon's services (or anyone else's) are fine. You  
> want storage? Go S3. You want to run background tasks? Go EC2 or some  
> other VPS host. Your GAE app will talk to these services almost the  
> same as it would have to if they were hosted at Google anyway. Sure,  
> there'd be less latency and for some apps that may make all the  
> difference - but for most, the issues will lie elsewhere.
>
> So basically, push through the pain, rethink your designs, and you'll  
> come out with a well-engineered app that can scale like nobody's  
> business. (well, nobody's business but your own multi-million dollar  
> generating Web 3.5 Überapp that is)
>
> Cheers,
>
> Michael
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit th

[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-23 Thread Michael Hart

Hi all,

Having been through a number of shared hosting situations, I'm gonna  
have to say that I disagree with most of the complaints on this thread.

I think one of the main things not to lose sight of is the fact that  
GAE is intended to be a scalable platform, not a generic hosting  
solution. If you want or need a dedicated amount of CPU or memory,  
then GAE, at least as it stands today, is probably not what you want.  
The limits that are imposed in GAE are there to ensure that your app  
will scale. There are many apps that don't need to scale, and I would  
suggest that it's probably going to be easier for these to be  
developed on a more traditional platform.

Global transactions don't scale (if eBay doesn't need them, than  
mostly likely neither will you 
http://www.infoq.com/articles/ebay-scalability-best-practices) 
. Consistent CPU spikes don't scale. Long request times don't scale -  
at least, not particularly well. If each of your requests are taking,  
say 10 seconds to fetch a page from another URL and you get hammered  
with a few hundred requests a second, then I don't want my app on the  
same box as yours (and no doubt the site you're fetching from won't be  
happy either). Now if Google introduce pricing that guarantees you a  
certain amount of memory or CPU or I/O on a box ala EC2, then that's  
fine, but until then (or if that doesn't happen), it's all about being  
a good cloud citizen.

Scalability isn't easy. It's made easier with tools like BigTable and  
Memcache, but you still have to use them correctly and they will  
impose certain limitations on the way you develop. If you develop an  
app from scratch on EC2 or whatever VPS/dedicated hosting solution you  
like and you have the need to scale, then you'll need to start  
thinking about these issues - issues that GAE force you to think about  
upfront. Maybe Google should make it mandatory to read a Scalability  
101 paper before signing up - at least that way it's clear that this  
platform is different to most standard platforms and thus reduce apple/ 
orange comparisons.

Note that I'm not adverse to Google introducing something similar to  
EC2 for processing services - you could purchase a particular slice  
that your GAE app could communicate with using Protocol Buffers or  
whatever - or maybe you could run a bunch of map-reduce tasks. But  
these require dedicated resources and should be kept well away from  
the GAE serving boxes. Similarly there could be an S3-like storage  
solution, as well as a message bus ala SQS. For many large systems,  
these facilities are essential - and in time, Google may introduce them.

But until then, Amazon's services (or anyone else's) are fine. You  
want storage? Go S3. You want to run background tasks? Go EC2 or some  
other VPS host. Your GAE app will talk to these services almost the  
same as it would have to if they were hosted at Google anyway. Sure,  
there'd be less latency and for some apps that may make all the  
difference - but for most, the issues will lie elsewhere.

So basically, push through the pain, rethink your designs, and you'll  
come out with a well-engineered app that can scale like nobody's  
business. (well, nobody's business but your own multi-million dollar  
generating Web 3.5 Überapp that is)

Cheers,

Michael
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-23 Thread mitnickcbc

I apologize if people don't feel good by the tone in my posts. My
whole point is to let GAE folks know that where is the pain from me
with GAE and that can help them improve GAE better. I believe I'm one
the the eagerest developers here who want to see a great success for
GAE. To see unhappy comments earlier is to prevent more and worse tone
comments later after release.

GAE is in preview status. So I will never ask Google to be responsible
for any unreliability or unstability. They can ignore my comments and
requests and it's also fine I don't get any response from them. I take
my own bet and risk. I do the bet because I saw Google start using GAE
for their live product like Google Code Jam Site. Everyone has a
restriction in resource and budget, and GAE is the preference for me
even if it is in preview status.

Keep telling GAE that how happy I'm will not improve the platform.
Most people will not meet the issues mentioned in this thread if they
are just leveraging this platform. And most people will not do load
test here. And most people don't face real users using GAE. But I'm
sure the goal is to keep live product developers happy with GAE.

And I would like to reemphasize the point of this thread so people
don't lose focus: the unvisiable and unpredictable high amount CPU
quota is an issue. My suggestion is just remove it since there is
already a CPU quota.

Update: I didn't see quota deny for 36 hours even my load is getting
higher than before, which is great! For anyone has done anything for
me, I really appreciate your help!

On Sep 24, 2:42 am, "[EMAIL PROTECTED]"
<[EMAIL PROTECTED]> wrote:
> I think there are some things people need to keep in mind.
>
> GAE is currently in a preview release with no announced date for when
> it will be ready for production use. Google has committed to try to
> get it up by year end, based on things said at conferences. That's it.
> You really should not build anything that's "live" production right
> now on it.
>
> There is a big difference between criticism and constructive
> criticism, and there is more of the former in this thread. It may be
> true that the quotas are too strict, but bashing them for making them
> too strict is going to increase the change that they'll loosen them
> up. Personally, if I was working on releasing something to the scale
> of appengine to the public, my initial release would have strict
> quotas and then leave me in a position to loosen them in order to meet
> demand, rather than being too easy with the quotas and being forced to
> make them stricter in order to support load.
>
> As far as the memcache and whether developers will use it or not, I'd
> suggest that you should use the tools available to you. Maybe I come
> from different era of development and am jaded by over a decade of
> working a sysadmin for organizations with tight IT budgets. I have the
> belief that a developer should always optimize their code in order to
> have it run as cleanly and optimal as possible in order to cut
> hardware costs, rather than taking the shortest route to meet a
> deadline which in the long run increases operational costs when it
> scales beyond current hardware. Caching is always a good thing, rather
> than repeatedly doing the same computation over and over.
>
> Not to toot my own whistle, but if you don't have the time or
> inclination to write your own cache handler to take advantage of
> memcache, then take a look at the one I wrote 
> at:http://gaeutilities.appspot.com/cache
>
> It can be used like any other dictionary object and uses both memcache
> and the datastore to store your results for both reliability and
> performance. There's also several others out there as well, some using
> just memcache, and others just using the datastore.
>
> This is a preview release and you are not currently paying for the
> product. I think you should consider that when you consider the tone
> in which you write your messages. Hopefully the developers and
> decision makers realize that there is a vocal minority and there and
> many more of us happily developing on the platform and taking
> advantage of what it has to offer.
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-23 Thread [EMAIL PROTECTED]

I think there are some things people need to keep in mind.

GAE is currently in a preview release with no announced date for when
it will be ready for production use. Google has committed to try to
get it up by year end, based on things said at conferences. That's it.
You really should not build anything that's "live" production right
now on it.

There is a big difference between criticism and constructive
criticism, and there is more of the former in this thread. It may be
true that the quotas are too strict, but bashing them for making them
too strict is going to increase the change that they'll loosen them
up. Personally, if I was working on releasing something to the scale
of appengine to the public, my initial release would have strict
quotas and then leave me in a position to loosen them in order to meet
demand, rather than being too easy with the quotas and being forced to
make them stricter in order to support load.

As far as the memcache and whether developers will use it or not, I'd
suggest that you should use the tools available to you. Maybe I come
from different era of development and am jaded by over a decade of
working a sysadmin for organizations with tight IT budgets. I have the
belief that a developer should always optimize their code in order to
have it run as cleanly and optimal as possible in order to cut
hardware costs, rather than taking the shortest route to meet a
deadline which in the long run increases operational costs when it
scales beyond current hardware. Caching is always a good thing, rather
than repeatedly doing the same computation over and over.

Not to toot my own whistle, but if you don't have the time or
inclination to write your own cache handler to take advantage of
memcache, then take a look at the one I wrote at: 
http://gaeutilities.appspot.com/cache

It can be used like any other dictionary object and uses both memcache
and the datastore to store your results for both reliability and
performance. There's also several others out there as well, some using
just memcache, and others just using the datastore.

This is a preview release and you are not currently paying for the
product. I think you should consider that when you consider the tone
in which you write your messages. Hopefully the developers and
decision makers realize that there is a vocal minority and there and
many more of us happily developing on the platform and taking
advantage of what it has to offer.
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-23 Thread Ethan Post
One of the concerns is that very simple actions, a post to a small model
with a single put is throwing warnings. So the only think you can do is
reduce the amount of data in the post or break the post into multiple
smaller posts. You should end up using more cpu with the latter but that
might not throw any warnings.

On Tue, Sep 23, 2008 at 12:31 PM, Bill <[EMAIL PROTECTED]> wrote:

>
> > Imagine the potential consequences if any app could consume as much
> > resources as it sees fit at any time from that daily quota it has.
> > Peak load could (and would) go up unpredictably, and that would
> > potentially cause problems even to apps that are more optimized than
> > the CPU hogs. Remeber that this is a shared system, so these barriers
> > are necessary.
>
>

--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-23 Thread Bill

> Imagine the potential consequences if any app could consume as much
> resources as it sees fit at any time from that daily quota it has.
> Peak load could (and would) go up unpredictably, and that would
> potentially cause problems even to apps that are more optimized than
> the CPU hogs. Remeber that this is a shared system, so these barriers
> are necessary.

A main point of App Engine is to let any app potentially consume as
much resources as it needs at any time whether it's from a
slashdotting or a lower volume of high CPU requests.  I look at the
High Amount CPU quota warnings as an information service to help tune
your app.  After pay-as-you-go is released, these warnings should be
purely informational IMHO.  High CPU requests will cause slow
responses, which is a reason to tune those requests, but you shouldn't
get an error.

I'm hitting the High Amount CPU warnings on a site that's not even
close to daily quotas.  It's been helpful to see the flags for
specific URLs so I can tune them.  For example, I've got an AJAX
client that loads in JSON data for a specific "workshop" model.  My
current model can produce, in one request, the JSON for all
submissions in all meetings for that workshop, so it goes three models
deep in queries.  Now that I see the bottleneck, I'm making the data
transfer less chunky.  So my AJAX client will issue separate GETs for
the models, which is one way around High CPU requests -- make the
transactions more granular and use AJAX on the client-side to piece
together the supplied data.

--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-23 Thread Ethan Post
Hopefully the initial complaint is not lost in the emotion of some of the
posts. An application which performs 200 read requests per day per user,
with 1000 users at 20-50K per read would likely get a ton of warnings and
may even be shut down. The assumption being made by Google appears to be
with the intent of building everything so that it can scale to tens of
thousands of users/requests but some applications will just never be that
large.

My idea would be to increase the thresholds significantly for classes or
urls' that require user login. There is almost no chance an application
would get slashdotted if the costly requests required login. This would give
google time to see that there was significant interest growing in an
application that might have trouble scaling and notify the owner. I think
this would achieve a greater level of flexibility.

On Tue, Sep 23, 2008 at 9:33 AM, Wooble <[EMAIL PROTECTED]> wrote:

>
>
>
> On Sep 23, 12:15 am, gg <[EMAIL PROTECTED]> wrote:
> > Agreed. The problem at Google is very simple and has two components.
> > First, the engineers run the show and there is no rational voice at
> > Google to point out to them when they do something that does not meet
> > a real world demand (they make something stupid). And the second
> > component is they still have a lot of money to blow so they can get
> > away making things that do not meet market demand (writing stuff that
> > does not work and is stupid).
>
> If they're so stupid, you're free to start a competing service and
> steal all of their business.  That's how the free market works.
> >
>

--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-23 Thread Wooble



On Sep 23, 12:15 am, gg <[EMAIL PROTECTED]> wrote:
> Agreed. The problem at Google is very simple and has two components.
> First, the engineers run the show and there is no rational voice at
> Google to point out to them when they do something that does not meet
> a real world demand (they make something stupid). And the second
> component is they still have a lot of money to blow so they can get
> away making things that do not meet market demand (writing stuff that
> does not work and is stupid).

If they're so stupid, you're free to start a competing service and
steal all of their business.  That's how the free market works.
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-23 Thread beckie

Google should start charging for the service and let customers set
their own quotas.
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-23 Thread mitnickcbc

Thank you for addressing these questions. Please check my comments.

> I understand that this is bad for your business, but as stated by
> Google, this is a preview release off App Engine. Why would one run a
> production system on it?

The thing is I didn't have resources to maintain scalable servers on
AWS and with GAE available, it gives me the possibility to run
business. And GAE is so attractive regarding of features and it does
save me lots of effort. I didn't expect my application becomes a real
business so fast. I thought 5 million PV per month will take me
several months to reach it and actually I'm very far from this number
today. My application is not complex, and I initially just wanted to
test out the GAE platform. And since I have no idea whether my
application will become popular or not, free start with GAE is also
preferred. And it didn't make sense to not release it to face the real
users after everything is ready and works so well at first since it is
a new application. Since there are many rumors that GAE will be
released by end of this year, there is no point for me to build
totally another system by the meantime. Even if now I want to switch
to other platform, I need to build up a totally different system,
learn all the server and load balance configures. Not mention how to
get the data out of GAE. This really doesn't buy me anything.

> Imagine the potential consequences if any app could consume as much
> resources as it sees fit at any time from that daily quota it has.
> Peak load could (and would) go up unpredictably, and that would
> potentially cause problems even to apps that are more optimized than
> the CPU hogs. Remeber that this is a shared system, so these barriers
> are necessary.

I cannot comment much on this since I don't know the details about how
GAE is implemented and how much impact it would be if GAE remove the
high amount CPU quota. I would love to see some person from GAE Team
to tell me about the difficulties about removing this quota or the
reasons they keep it. And the high amount CPU is nothing related with
the peak load. We can use up to the daily quota if all our requests
are not high CPU consuming. So with or without high CPU quota, it is
the same unpredictably as you described. For the normal app be
affected by other CPU hogs, I think it depends on GAE request
dispatching algorithm. There should be some way to monitor how much
CPU each app consumed for each request and GAE can send less requests
to each machine hosting this app while hosting it on more machines. By
doing this way, each app consumes the same CPU on one machine. It also
costs the same since user quota and charge are based on CPU usage
instead of request number.
But if high amount CPU barrier is existing for preventing normal app
be affected by CPU hogs, maybe there is a design issue in GAE since
real-world applications do need to do high amount CPU computations.
Without removing this barrier, it's hard to meet the market needs.

> > Need Five: Don't expect developers will use memcache more than the
> > simplest pattern.
>
> Isn't that exactly what it's meant for?

It is supposed to. But I will never get my request out of the high CPU
category if I don't do complex algorithms with memcache. Simply cache
the query result is not enough. And I'm not going to do this algorithm
since it is error-prone.


On Sep 23, 6:41 pm, Jonk <[EMAIL PROTECTED]> wrote:
> On 23 syys, 12:08, mitnickcbc <[EMAIL PROTECTED]> wrote:
>
> Howdy.
>
> > Because I'm a full time developer working on GAE application and
> > running a serious LIVE business application on GAE, and my users
> > already started to pay money for this service!
>
> I understand that this is bad for your business, but as stated by
> Google, this is a preview release off App Engine. Why would one run a
> production system on it?
>
> > Need Four: High amount CPU Quota issue needs to be solved ASAP!
> > Suggestion from me is just remove it and let user uses the 100% normal
> > CPU Quota as the way they want.
>
> Imagine the potential consequences if any app could consume as much
> resources as it sees fit at any time from that daily quota it has.
> Peak load could (and would) go up unpredictably, and that would
> potentially cause problems even to apps that are more optimized than
> the CPU hogs. Remeber that this is a shared system, so these barriers
> are necessary.
>
> > Need Five: Don't expect developers will use memcache more than the
> > simplest pattern.
>
> Isn't that exactly what it's meant for?
>
>     j
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-23 Thread Jonk

On 23 syys, 12:08, mitnickcbc <[EMAIL PROTECTED]> wrote:

Howdy.

> Because I'm a full time developer working on GAE application and
> running a serious LIVE business application on GAE, and my users
> already started to pay money for this service!

I understand that this is bad for your business, but as stated by
Google, this is a preview release off App Engine. Why would one run a
production system on it?

> Need Four: High amount CPU Quota issue needs to be solved ASAP!
> Suggestion from me is just remove it and let user uses the 100% normal
> CPU Quota as the way they want.

Imagine the potential consequences if any app could consume as much
resources as it sees fit at any time from that daily quota it has.
Peak load could (and would) go up unpredictably, and that would
potentially cause problems even to apps that are more optimized than
the CPU hogs. Remeber that this is a shared system, so these barriers
are necessary.

> Need Five: Don't expect developers will use memcache more than the
> simplest pattern.

Isn't that exactly what it's meant for?


j


--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-23 Thread mitnickcbc

So I would like to list some of the needs that real-world business
developer expected from GAE. Why I have the right to say like this?
Because I'm a full time developer working on GAE application and
running a serious LIVE business application on GAE, and my users
already started to pay money for this service!

Story started when I first noticed GAE's quotations: Built on Google's
infrastructure, Easy scale, Easy Deploy and Free to start. Cool! It
looks great! That's all I needed! Then I started to learn Python, read
every article in GAE Docs and some samples, and started coding! Coding
with Python and web framework is fun, I really feel improvements in
productivity with GAE SDK and Python since I used to work on Java.

Soon I started coding, then I realize some functionality cannot be
implemented on GAE, like background scheduler and global transaction
for user to user trading. For background scheduler, I try to make a
workaround using user requests to update data (which causes quite big
overhead for CPU usage and lead to the biggest issue about CPU Quota I
will describe later). For user to user trading, I do the "add" work
first and "minus" work second to make sure user will not complain that
they spend money and get nothing! So who meet the transaction issue,
who is the lucky guy to get my free bonus... So here comes Need One
and Need Two:
Need One: Background scheduler support to be able to perform high CPU
tasks for long time.
Need Two: Global transaction support to be able to keep data
integrity.

Soon the coding finished, deployment is really easy! Within 10 minutes
I can get my application live! Then I did little marketing and some
users started to use my application and I am happy to see it works
smoothly. So far so good, everything is great. Every morning I felt
excited and got up early and cannot wait to check how much more users
have come. I also got some feature requests, and I can manage them
quickly since there is nearly no effort for deployment. Thanks GAE for
letting me have a such wonderful life!

After several days, my business logic is getting more complex due to
user requests. Then I started to notice increasing error rate for
datastore. Most errors are saying "operation took too long" or
"Timeout". This is caused by saving a 30 fields entity. The error rate
is still acceptable but I decided that I am not going to have entity
with more than 20 fields in future.
Need Three: We are expecting lower error rate on datastore for big
entities or at least suggest some best practice here.

Since this application is getting popular, the nightmare is coming.
Quota Deny! It's not from any known quota described by GAE like CPU,
URL Fetch, Datastore api call, bandwith, etc. It's called High amount
CPU Quota! And unfortunately, 80% of my requests are high CPU ones.
Every time my users are playing high on my application, the quota deny
put them down. No access for 10 minutes but just a 403 error page.
While the CPU usage on Admin Console is just showing 0% - 2% usage. I
will skip comments about high amount CPU here since this thread
already has a lot of inputs about this issue. It makes me hard to
sleep well since I'm very worried that how much quota denies I have
met during the night...
Need Four: High amount CPU Quota issue needs to be solved ASAP!
Suggestion from me is just remove it and let user uses the 100% normal
CPU Quota as the way they want.

And last weekend, I'm trying to reduce the amount of high CPU request
by using memcache. It helps some since I cached some URL fetch and
common queries. But 75-80% of my requests are still in high CPU
category. It is possible to write some complex algorithm to optimize
my requests further, but that will cause huge issues for readability
and very error-prone.
Need Five: Don't expect developers will use memcache more than the
simplest pattern.

Well, sounds like I have big problems, then why I have so much time to
write such a long post? Because I can do absolutely nothing when I met
quota denies during weekend except waiting to see a response about
quota increase!
Need Six: Give us some control over quota like quota configuration in
Admin Console!

Further thinking: Good visibility into all quotas are very important
to let us apply quota increase in time to keep our application
reliable and available. There is no doubt GAE can scale, and I also
believe it will start a new age of cloud computing. But without scale
easily and quickly (Currently mainly because of process instead of
technical), GAE has no advantage over other competitors.

Summarized here for the needs I mentioned, and please star the issues
you feel important:
Need One: Background scheduler support to be able to perform high CPU
tasks for long time.
http://code.google.com/p/googleappengine/issues/detail?id=6

Need Two: Global transaction support to be able to keep data
integrity.
http://code.google.com/p/googleappengine/issues/detail?id=313

Need Three: We are expecting lower error

[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-22 Thread gg



On Sep 21, 10:29 am, रवींदर ठाकुर (ravinder thakur)
<[EMAIL PROTECTED]> wrote:
> I think this is the biggest roadblock that will be preventing anyone
> to develop and deploy any real world apps based on appengine.The
> calculation of these warning limits is so unpredictable so how can one
> be supposed to optimize the queries for these limits ?

Agreed. The problem at Google is very simple and has two components.
First, the engineers run the show and there is no rational voice at
Google to point out to them when they do something that does not meet
a real world demand (they make something stupid). And the second
component is they still have a lot of money to blow so they can get
away making things that do not meet market demand (writing stuff that
does not work and is stupid).

These two problems are endemic at Google. And the only thing to cure
it is some red ink on the books.

An example of the problem as lined out above that comes to mind is
Google's Carrier Calculated Shipping API in Google Checkout which was
released exactly one year ago. Carrier Calculated Shipping as
described here:

http://googlecheckoutapi.blogspot.com/2007/09/carrier-calculated-shipping-is-here.html

" is to provide buyers with shipping rates for the major shipping
carriers." This allows merchants to provide shipping rates to buyers
when they provide information about the shipments for Google Checkout
Transactions.

It does provide rates. Rates that are 30% or more off the actual real
rates from UPS, FedEx or USPS.

It seems that the Google Engineers have designed an Algorithm to
compute the rates instead of using the published web services from the
carriers which give accurate results. I am sure the Algorithm required
many hours of time from the best of Google Engineers. And I am sure
the engineers are sure they have coded the best shipping cost
predictive algorithm known to man, with only a +/- 30% margin of
error!

Don't question the fact that a merchant may lose $ on every
transaction with low shipping costs or scare away customers with
overly high shipping cost. The Google Engineers are smarter than you!
They have designed the best Algorithm in the world to compute shipping
costs. +/- 30% is acceptable to them and no one in the world could do
better.

It is the same with Google App Engine. The Google engineers have
designed the ultimate computing platform. Who are we to question the
fact that it can not repeatedly return a reasonably sized result set
without displaying an "Over Quote" error page. You just do not know
how to use it!

There is a demand for free/low cost reliable scalable cloud computing
services. Even those that run only python web frameworks.

There is not a demand for a cloud computing service that can not
repeatedly return a reasonably sized result set without undo amounts
of caching or other machinations to get it to happen. Nor is there a
demand for a checkout system that returns wildly inaccurate shipping
quotes!

I am sure the Engineers will all be very puzzled when they try to
charge for Google App Engine and no one is willing to pay. Just
remember that they are smarter than you and their solution is the
best. Even if you would never pay for it.

For more info on the Joke that is Carrier Calculated Shipping checkot
the Google Checkout forum:

http://groups.google.com/group/google-checkout-api-troubleshooting/search?group=google-checkout-api-troubleshooting&q=carrier+calculated+shipping&qt_g=Search+this+category
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-22 Thread Ethan Post
Agree 100%. All I am doing is posting 10-20K every now and then, say every
15 minutes and I get warnings with every post, only 1 or 2 puts. I have
tested my app for a few days and all my daily quotas stay at near 0%.

On Sun, Sep 21, 2008 at 6:27 AM, mitnickcbc <[EMAIL PROTECTED]> wrote:

>
> I have filed a feature request for this issue, if you feel so please
> star it.
>
> http://code.google.com/p/googleappengine/issues/detail?id=720
>
> Here is the description:
>
> Well, I don't get the purpose for having a High Amount CPU Quota since
> there is already a general CPU Quota. And there are quite a lot of
> problems caused by this quota which restrict my application from
> affording more load. And my application is far away from a 5 million
> month PV app.
> 1. Requests can become a high amount CPU one very easily. A little
> complex request will consume more than 3K mcycles. And what do I mean
> a little
> complex? If you do more than 2 put, or you do a url fetch, or you do a
> query based on an order to select more than 50 model, or you do a put
> on a
> model more than 20 fields, it is that complex. In my case, 80% of the
> requests are that complex and I don't think it can be optimized
> anymore
> since I do need to do put and url fetch.
> 2. Bad visibility to this quota. There is no way we can know when we
> will run out of quota for this. All we got is the warning in admin
> console that
> says our requests are using high amount CPU quota and will soon run
> out of it.
> 3. Doesn't back to normal quickly. I'm using a script to continue
> fetching my data from production and do some offline process.
> Unfortunately I fetch
> too much in one call that I try to get 100 models at a time and which
> makes the request a high CPU one. Soon, I meet quota deny. Then I stop
> my script,
> but after 1.5 hours, I still see quota deny for requests from my
> users. The "Many of the requests to your application are taking a very
> long time.
> Please optimize these requests." warning keeps there even I have
> stopped the script for so long time.
>
> >
>

--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-21 Thread ravinder thakur

I think this is the biggest roadblock that will be preventing anyone
to develop and deploy any real world apps based on appengine.The
calculation of these warning limits is so unpredictable so how can one
be supposed to optimize the queries for these limits ?
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-21 Thread Sylvain

Starred it too. Big issue here.

- fetch an url + a put() -> 2000 mcycles and more
- fetch(100)  (+order, filter...) -> 2000 mcycles and more
- use import.zip (level = 6 ) -> 2000 mcycles  and more
- GQL restriction then you need to order by python -> 2000 mcycles and
more
- etc,...

This quota is really too low :

Free Quota
HTTP Requests per Day  = 650,000
CPU Megacycles per Day =  200,000,000
So the average mcycle/request = (200 000 000 / 650 000) = 300 mcycles.

300 mcycles/req is really low compared to the cost of a basic
operation (put, fetch,...).

Another things :

- I really wonder how it is calculated. As I have always written in
another post, it seems that there is no clear relationship between the
profiler results and the number of mcycles. You can have a low
profiler score and have a warning (CPU quota) and a big profiler score
and no warning. So how to optimize ?

- It seems that this quota is calculated twice but differently : there
is no relationship between the number of mcycles and the Warning (This
request used a high amount of CPU). Example from my log :
* 1159mcycles = This request used a high amount of CPU, and was
roughly 1.0 times over...
* 2030mcycles = no warning ? strange ? no ?

If there is no change, my app will be soon offline.

Thank you for your answer.

Regards





On 21 sep, 16:37, Aral Balkan <[EMAIL PROTECTED]> wrote:
> Starred it. I agree that this is a big problem.
>
> The quota system in general is the thorn in Google App Engine's side
> and, from a public relations perspective, quite a nightmare.
>
> Given that most people will check out an application when it's getting
> a lot of publicity (and hits), the first experience many people have
> with a Google App Engine app is the "Over Quota" message. Not exactly
> the first impression you want to make for your shiny new "Cloud"
> solution.
>
> Aral
>
> On Sep 21, 12:27 pm, mitnickcbc <[EMAIL PROTECTED]> wrote:
>
> > I have filed a feature request for this issue, if you feel so please
> > star it.
>
> >http://code.google.com/p/googleappengine/issues/detail?id=720
>
> > Here is the description:
>
> > Well, I don't get the purpose for having a High Amount CPU Quota since
> > there is already a general CPU Quota. And there are quite a lot of
> > problems caused by this quota which restrict my application from
> > affording more load. And my application is far away from a 5 million
> > month PV app.
> > 1. Requests can become a high amount CPU one very easily. A little
> > complex request will consume more than 3K mcycles. And what do I mean
> > a little
> > complex? If you do more than 2 put, or you do a url fetch, or you do a
> > query based on an order to select more than 50 model, or you do a put
> > on a
> > model more than 20 fields, it is that complex. In my case, 80% of the
> > requests are that complex and I don't think it can be optimized
> > anymore
> > since I do need to do put and url fetch.
> > 2. Bad visibility to this quota. There is no way we can know when we
> > will run out of quota for this. All we got is the warning in admin
> > console that
> > says our requests are using high amount CPU quota and will soon run
> > out of it.
> > 3. Doesn't back to normal quickly. I'm using a script to continue
> > fetching my data from production and do some offline process.
> > Unfortunately I fetch
> > too much in one call that I try to get 100 models at a time and which
> > makes the request a high CPU one. Soon, I meet quota deny. Then I stop
> > my script,
> > but after 1.5 hours, I still see quota deny for requests from my
> > users. The "Many of the requests to your application are taking a very
> > long time.
> > Please optimize these requests." warning keeps there even I have
> > stopped the script for so long time.
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: High Amount CPU Quota should be removed

2008-09-21 Thread Aral Balkan

Starred it. I agree that this is a big problem.

The quota system in general is the thorn in Google App Engine's side
and, from a public relations perspective, quite a nightmare.

Given that most people will check out an application when it's getting
a lot of publicity (and hits), the first experience many people have
with a Google App Engine app is the "Over Quota" message. Not exactly
the first impression you want to make for your shiny new "Cloud"
solution.

Aral

On Sep 21, 12:27 pm, mitnickcbc <[EMAIL PROTECTED]> wrote:
> I have filed a feature request for this issue, if you feel so please
> star it.
>
> http://code.google.com/p/googleappengine/issues/detail?id=720
>
> Here is the description:
>
> Well, I don't get the purpose for having a High Amount CPU Quota since
> there is already a general CPU Quota. And there are quite a lot of
> problems caused by this quota which restrict my application from
> affording more load. And my application is far away from a 5 million
> month PV app.
> 1. Requests can become a high amount CPU one very easily. A little
> complex request will consume more than 3K mcycles. And what do I mean
> a little
> complex? If you do more than 2 put, or you do a url fetch, or you do a
> query based on an order to select more than 50 model, or you do a put
> on a
> model more than 20 fields, it is that complex. In my case, 80% of the
> requests are that complex and I don't think it can be optimized
> anymore
> since I do need to do put and url fetch.
> 2. Bad visibility to this quota. There is no way we can know when we
> will run out of quota for this. All we got is the warning in admin
> console that
> says our requests are using high amount CPU quota and will soon run
> out of it.
> 3. Doesn't back to normal quickly. I'm using a script to continue
> fetching my data from production and do some offline process.
> Unfortunately I fetch
> too much in one call that I try to get 100 models at a time and which
> makes the request a high CPU one. Soon, I meet quota deny. Then I stop
> my script,
> but after 1.5 hours, I still see quota deny for requests from my
> users. The "Many of the requests to your application are taking a very
> long time.
> Please optimize these requests." warning keeps there even I have
> stopped the script for so long time.
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---