[google-appengine] Re: The 15 Minute Question?

2011-09-07 Thread zdravko
Greg,

> Mostly because it can take a long time to start an instance, so it is better
> to keep one running than start a new one for traffic.

Instead of starting up instances from scratch, could an image not be
saved and later used for almost instantaneous start-ups (similar to
desktop hibernation) ?

Thanks again.

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



Re: [google-appengine] Re: Built-in indexes are costing me $200/day

2011-09-07 Thread Waleed Abdulla
Agree. My biggest cost, even more than instances, are datastore Ops, and the
biggest part of those are index writes (70M index writes vs 15M puts). In
light of the new changes, it's more reasonable to have indexing off by
default, and have it enabled only as explicitly requested.

Also, controlling indexes should be done in one place only, index.yaml. It's
often confusing what the effect of the indexed=False parameter is,
especially if you apply it later. Do you have old entities indexed and new
ones not? And what if you set it to True again? You'll probably have a gap
of unindexed entities. How do you fix that? Run a map-reduce job to
read/write the whole table. It's not as clean and manageable as having
everything in one index.yaml file.

Waleed

P.S. same posted on issue page as well.



On Tue, Sep 6, 2011 at 11:53 PM, renderpaz  wrote:

> Thanks for pointing that out, If you have any sort of frequent input
> to your application, this is a whale of an issue, just didn't notice
> until the billing change.
>
> Others, please vote for this issue, it can't be that much of a
> challenge to fix.
>
> On Sep 6, 11:34 pm, Robert Kluin  wrote:
> > I'd love this too. Star 4231:
> >  http://code.google.com/p/googleappengine/issues/detail?id=4231
> >
> > Robert
> >
> >
> >
> > On Wed, Sep 7, 2011 at 01:31, renderpaz  wrote:
> > > Hello,
> >
> > > Let me preface this by saying that I don't believe the planned pricing
> > > changes will have a dramatic impact on my costs - in-fact it has
> > > motivated me to trim the fat and I'm already seeing large savings.
> >
> > > That said, my biggest cost is datastore writes.  I completely
> > > understand that updating a composite index should "cost" a data store
> > > write, but the problem is 90% of my data store writes are coming from
> > > the "built-in" indexes on each property.  (I specifically have 6
> > > properties).
> >
> > > I would happily turn of the built in indexes on many of these
> > > properties, but using indexed=False also prevents me from including
> > > that property in a composite index as well!
> >
> > > In retrospect I could easily have hashed the 6 properties into 1
> > > indexable property - but that seems ridiculous as all I want to do is
> > > say, "Don't create built in indexes for these, but allow me to include
> > > them in composite indexes"
> >
> > > MAIN POINT:
> > > Is there a reason it is not possible to turn off built in indexes?  It
> > > seems unfair that I cannot disable these indexes but am charged full
> > > price for them (and its >>> my actual writes)
> >
> > > Thanks,
> > > Kevin
> >
> > > Datastore quota info provided below:
> > > Datastore API Calls  0%  127,540,291 of Unlimited
>  Okay
> > > Datastore Queries0%  517,774 of UnlimitedOkay
> > > Blobstore API Calls  0%  0 of Unlimited  Okay
> > > Total Stored Data10% 157.95 of 1,601.00 GBytes
>   Okay
> > > Blobstore Stored Data0%  0.00 of 1,601.00 GBytes
>   Okay
> > > Data Sent to Datastore API   0%  17.19 of Unlimited
> GBytes   Okay
> > > Data Received from Datastore API 0%  12.01 of
> Unlimited GBytes   Okay
> > > Datastore CPU Time   0%  1,187.75 of Unlimited CPU
> hours Okay
> > > Datastore Entity Fetch Ops   0%  75,875,047 of
> Unlimited Okay
> > > -
> > > Datastore Entity Put Ops 0%  35,815,086 of
> Unlimited Okay
> > > -
> > > Datastore Entity Delete Ops  0%  31,931 of Unlimited
>   Okay
> > > -
> > > Datastore Index Write Ops0%   288,168,806
> ** of Unlimited
> > > Okay
> > > ---
> > > Datastore Query Ops  0%  517,617 of UnlimitedOkay
> > > Datastore Key Fetch Ops  0%  14,858,227 of Unlimited
>   Okay
> > > Datastore Id Allocation Ops  0%  0 of Unlimited  Okay
> > > Number of Indexes2%  3 of 200Okay
> > > Prospective Search Subscriptions 0%  0 of 10,000
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups "Google App Engine" group.
> > > To post to this group, send email to google-appengine@googlegroups.com
> .
> > > To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> > > For more options, visit this group athttp://
> groups.google.com/group/google-appengine?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, 

[google-appengine] Re: Import XML data to a High Replication Datastore

2011-09-07 Thread Gerald Tan
Archive all the XMLs into one large ZIP file, then use java.util.zip for 
random access to the XML files within?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/hxl2MUc5k2YJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Best practice to save entity avoiding duplicate

2011-09-07 Thread Waleed Abdulla
Works, unless you want to allow users to edit their entries. If a user
changes the address after submitting then the new key is now different and
you'll end up saving a second entity. I wouldn't use any user editable data
in the key. Instead, I'd add a separate column to include your hash.



On Tue, Sep 6, 2011 at 11:32 PM, Robert Kluin wrote:

> Hi Thomas,
>  If you want to avoid duplicates, the hash solution is great.
> Generate the hash, then In a transaction try to fetch the entity by
> id.  If you can't get it, insert it.
>
>
> Robert
>
>
>
>
>
>
> On Tue, Sep 6, 2011 at 21:16, Thomas Wiradikusuma
>  wrote:
> > Hi guys,
> >
> > I'm working on something like AirBnB but much simpler. I want to hint
> > user whenever he/she tries to submit duplicate entry.
> >
> > Currently, my model looks like:
> >
> > House {
> > Id
> > Username
> > Address
> > State
> > Country
> > }
> >
> > The id is made of address+state+country MD5. Is this the "correct" way
> > to do it? Or, should I go with auto-generated Id and add extra field
> > named 'hash', or how?
> >
> >
> >
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> > To post to this group, send email to google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



[google-appengine] How do I set maximum total instances to 1 ? OR How do I run my app for free for 24 hrs a day ?

2011-09-07 Thread Prashant
Hi,

I have an app with very low traffic and I won't be able to go for payed
account unless and untill my app starts generating some revenue. With new
pricing scheme my app will face a serious problem. There is no way to set
Total Maximum Instance to 1 so there is no way to run the app for free for
24hrs with only "24 (free) Instance Hours". Does that mean that I will have
to shut down my app ? Does Google have any solution for low traffic app like
mine ?

Thanks,
Prashant

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



Re: [google-appengine] Sample for Push Queues

2011-09-07 Thread Hariprasath Mohankumar
Hi Robert,
   Thanks for your reply. But i found a strange 
behaiviour, when i add tasks in the queue with the call below,
 taskqueue.add(url='/autobot', 
params={'key':game.userXid}, queue_name='autobot') 
the execution of the task is not happening ASYNCHRONOUSLY. the code waits 
for the task to be completed by executing the logic which i defined in 
'/autobot' url and is not moving ahead with the instructions that follow the 
taskqueue.add( )  function. Is there anything im doing wrong here.


Thanks,
Hariprasath Mohankumar

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/5qw1CmOMklIJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Sample for Push Queues

2011-09-07 Thread Hariprasath Mohankumar
Hi Robert,
   Thanks for your reply. But i found a strange 
behaiviour, when i add tasks in the queue with the call below,
 taskqueue.add(url='/autobot', 
params={'key':game.userXid}, queue_name='autobot') 
the execution of the task is not happening ASYNCHRONOUSLY. the code waits 
for the task to be completed by executing the logic which i defined in 
'/autobot' url and then it  moves ahead with the instructions that follow 
the taskqueue.add( )  function. Is there anything im doing wrong here?. 


Thanks,
Hariprasath Mohankumar

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/SnPkO6wub4oJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] If I enable billing & set budget to $0 will I be charged $9/month?

2011-09-07 Thread Jens Stoltenberg
I want to keep the $50 credit I received by enabling billing.

But I've heard you lose it if you disable billing.

What about if I leave billing enabled and set my spending level to $0?

Does that mean I will have to pay $9 a month?

In other words, the only way to avoid the $9 a month is to disable billing?

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



Re: [google-appengine] Re: the min instace time is 24 hours?

2011-09-07 Thread Tim

Jon,

Thanks for that explanation, but if it's authoritative (not meaning to sound 
rude, but I hope .. I take it you're on the AppEngine team rather than a 
user explaining your understanding of how pricing applies) then it perhaps 
illustrates what many of us may be worried about, and maybe a more detailed 
explanation of the scheduler and 15-minute rule may put some minds at rest 
and reduce some of the hostility to the new billing scheme.

It's the sort of thing that can be easily explained in person, but can be 
hard to get across on paper, so let me explain how I may have previously got 
the wrong impression and been more alarmed than you may consider seems 
appropriate.

Everything I've read about the "15 minute minimum instance" would imply in 
the above scenario described that the billing would be 

Time Period: [0:5] - 4 active instances
Time Period [5:20] - 4 active instances running for their 15 minute minimum 
idle time since last query
Time Period [20:inf] - 0 active instances (ie some of the above may still be 
idling awaiting being killed, but wouldn't be billed)

This would give a charge of 80 minutes, as opposed to 35 as explained by 
yourself - I might have set min-idle-instances to 1, but I understood that 
once an instance was started it would be charged for instance time until 15 
minutes after it's last activity.

Now I'm willing to take it that you're right, but the pricing as explained 
so far has led me to believe that the rule is

[explanation #1]
 - ANY instance, once started, will not be eligible to be killed until at 
least 15 minutes after last activity, and thus will lead to at least 15 
minutes billing each
 - Instances will be started up according to traffic demands
 - Instances will be killed off when the number of "instances that have each 
gone BEYOND their 15 minutes since their last activity" exceeds 
"max-idle-instances"

And the thing that worried me about the above understanding was that if, in 
the period [5:20], there were a few queries (say 1 query a minute) then the 
scheduler might hand these round-robin style to the 4 idling instances, 
thereby keeping 4 instances active for much longer, rather than giving them 
repeatedly to the same single instance and thereby killing instances 2,3 and 
4 at the 20 minute mark.

This is what was alarming me - the impression that, given the odd short 
burst of traffic (say a busy minute once every couple of hours) that started 
up a handful of extra instances, then the scheduler might keep all these 
instances hanging around for ages, each running mostly idle but sharing the 
"normal load", and thus leading to a massive bill following each burst no 
matter how short.

Now you seem to be saying that this reading is incorrect (to which I and 
many others may understandably say "phew!") and the rules are more like

[explanation #2]
 - Instances, once started, are kept in a list ordered by start time
 - Any activity causes the list to be checked in order (ie first started 
checked first) for a free active instance, and assigned to the first one 
that is idle
 - If none are idle, the query will be queued up to "max-pending" time to 
see if any instance becomes free before a new instance is started
 - Each time an instance in the list finishes serving a query, the scheduler 
checks how many instances are actually busy, and if the number exceeds 
max-idle-instances, then it chooses instances from the END of the list (most 
recently started) to kill (or logically killed as in stopped being billed 
and removed from the list)
 - 15 minutes after any instance last serviced a query, it is killed (or 
logically...) regardless of max-idle-instances unless that would breach 
min-idle-instances

Now I'd understand if the above has approximations (eg extra pauses in the 
above), or has got some details wrong, or you don;t want to commit to 
PRECISELY how it works so you can change it in future and in fact what 
happens is you don't do all these checks in realtime (other than choosing 
what instance to assign etc) but then apply the logic afterwards for billing 
purposes (ie you tend to err on keeping things active in case they're 
needed, but bill as if they'd been killed off according to the rule above).

But if scheduling (of queries to instances), and billing (of instance time) 
is closer to explanation #2 than #1, then I could probably live with the "15 
minute" rule, but I'd hope you could also see that if the scheduler works 
more like #1 than #2 then that would be why so many of us are worried about 
"15 minutes" and would like to see that interval dropped to more like "2 
minutes" !

An authoritative explanation of the intent (there's that word again Greg) of 
the scheduler / billing logic would be more than welcome and may reduce the 
gap between why you guys think the pricing is reasonable and many of us in 
here think it's not.

Cheers

--
Tim

-- 
You received this message because you are subscribed to the Google Groups 
"Google

[google-appengine] Re: How do I set maximum total instances to 1 ? OR How do I run my app for free for 24 hrs a day ?

2011-09-07 Thread Gerald Tan
I believe even if you have additional instances spawned for you, you are 
only charged for 1 instance (which should be your max idle instance setting) 
+ active instances, which should be a very small number. Now you will see 
either one of two situations:

1) You have enough time when there are 0 instances up to make up for the 
active instance numbers, in which case your app should have no problem 
serving requests all day
2) You have an instance up all the time, in which case your app will be 
automatically shutdown when you run out of quota near the end of the billing 
day, probably for around 30mins to an hour depending on your active instance 
time, until the daily quota resets.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/W4vItIXH-4kJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Billing history stopped 5 day ago

2011-09-07 Thread Alex Popescu
In the light of the new billing details, I've made some changes to the Max 
Idle Instances and Min Pending Latency (as per the optimization 
documentation) just to see how these would reflect in my bill. Anyways my 
billing history has stopped 5 days ago on Sept. 2nd.

I'm really confused on how to proceed right now. I know that I have to get 
ready for the moment the new pricing becomes effective, but if I don't have 
the tools to estimate my costs and understand what optimizations I can do, 
then I don't seem to be left with much to do.

Could anyone clarify why billing history has stopped? Also, how soon changes 
to the above configurations would be reflected in the billing history?

tia,

A://

PS: Application ID: twimblr. I do have other applications each with its own 
different billing status (most recent being from Sept.5th, which is OKish).

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/jm3te1hWJgQJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Why app engine new price model is totally wrong

2011-09-07 Thread Andrew Cassidy
I wasn't trying to say 'You can replicate GAE on AWS trivially", GAE is a 
massive beast that does one thing in particular that I haven't experimented 
with yet: automatically creating and destroying running instances. I was 
trying to say you could host your own scaling application on any 
infrastructure you like with a little know how.

You can host in multiple data centers using Anycast addresses, you can 
round-robin your load balancers using clusterip or DNS, you can handle load 
balancer failures using basic ip failover mechanisms.

As long as you use some form shared storage backend for session data, such 
as memcache, you don't have to worry about sticky sessions on the load 
balanacers.

I have a working prototype on a basic testing network using (nothing amazon 
here)

   - nginx as the load balancer and to serve static content
   - uwsgi container for the applications
   - mysql cluster for redundant data storage
   - mysql proxy to load balance across the database servers without any 
   code modification
   - memcached for session storage and output caching
   - corosync/pacemaker for ip failover
   - rabbitmq/celery for task queueing

As I say, it's only a working prototype, and in most cases you could host a 
smallish application on a smallish vps anywhere. Most VPS providers now 
provide fault-tolerance and failover as standard. I'm moving my application 
to one such host.

Using AWS for fault-tolerance, I just read this blog post: 
http://blog.rightscale.com/2008/03/26/setting-up-a-fault-tolerant-site-using-amazons-availability-zones/

If anyone wants to fund an experiment on setting up an application on AWS 
I'd be more than happy to try it.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/YnQr6kcNwVMJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: Why I think it's the time to leave GAE.

2011-09-07 Thread Gerald Tan
I've thought of caching to the blobstore too, for stuff that will include a 
lot of entities and don't change a lot.
Has anyone tried this, is it plausible?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/C2DjBaNsCW8J.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Outrageous Gae New Pricing Increase

2011-09-07 Thread Alex Popescu
On Wednesday, September 7, 2011 9:40:12 AM UTC+3, renderpaz wrote:
>
> From the looks of your data, it doesn't seem you have any need for a 
> massively scaling web host.  Why did you choose GAE in the first 
> place? 
>
> If your answer is, "One day I may need to handle 1000 qps" - then I 
> think the pricing is perfectly fair, you can almost view it as 
> insurance.  Note, i'm saying the price is fair, not the increase.  I 
> can understand your frustration with Google's handling of this, but 
> that doesn't mean they should make the service unsustainable. 
>
>
I'd assume that for the majority the answer is not the one you are 
suggesting but rather:

1/ simplicity of deployment
2/ curiosity
3/ the free tier/quota

And I'd also assume the frustration is the result of the following facts:

1/ people finding the pricing increase unreasonable (while usually 
subjective, please note that I'm referring to the increase and not the price 
itself)
2/ the short notice compared to how long GAE has been in beta.

I don't think we'd be seeing these reactions if Google would have announced 
the new pricing becoming active end of 2011. 4 months would have been enough 
for a lot of us to rethink  our applications, optimize, find alternative 
solutions. But how much of that can you do on such a short notice? (Aug.31st 
vs mid-Sept).

I'm tempted to speculate for the 3rd time here and say that it looks like 
Google's decision is based on analyzing three major use cases:

1. large paying customers: the alternatives for them would be more expensive 
and adding to that the costs of migration, the majority of them will just 
have to accept the new pricing
2. small paying customers: between finding similarly priced alternatives and 
being offline until they complete the migration, the majority of them will 
just have to accept the new pricing. Even if some of them will leave in the 
next 3-6 months, the revenue generated from the new pricing is equivalent 
with having them as customers for 12-15months.
3. very small paying customers/free quota customers: their decision is 
pretty irrelevant. If some of them stay then they'll generate some revenue. 
If they leave then there's a cost cut.

As James, I'm one of those very small paying customers/free quota customers 
where the price increase is unaffordable (in my case I'm going from a couple 
of bucks/month to $645/month). 

A://

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/LxUO4Blay5YJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Want to talk to the App Engine team in person?

2011-09-07 Thread Gergely Orosz
Couldn't agree more. When I chose GAE as my cloud platform I chose it 
because it was the only solution on the market that offered the CPU hours 
billing - you pay only for what you use. THIS was the killer feature that 
made it stand out and what made made me advocate GAE for years on different 
forums.

However, as of today if I started a new project to be hosted in the cloud 
this is not the case: Google is adopting the same virtual machine model than 
Amazon and Azure and the price is much easier to compare as the only 
additional thing you're providing is automatic spinning and killing of 
instances and a java / python environment. I think it's much harder to 
justify the 4x cost difference for an instance with the 1/4th of memory, 
basically bringing it to a 16 times more expensive pricing vs Amazon. 

I'm not sure how this is priced by the market, perhaps running a web app 
with 50K visitors and 1M hits a day with occasional spikes isn't your target 
market - if this was the pricing two years ago when I built my app I would 
surely not have chosen GAE. However I probably don't know your target market 
as well as the GAE team and there probably is a mass who's happy to pay the 
16x price difference more for these extra services.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/VnrVjK7iKfIJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: How deployments influence instance hours?

2011-09-07 Thread Sergey Schetinin
Bump

On Sunday, 4 September 2011 14:20:31 UTC+3, Sergey Schetinin wrote:
>
> So when we deploy a new version, let's assume there was one instance 
> running, it gets shut down, a new one is then started, how many 
> instance-hours are consumed that hour?
>
> Another option, the version deployed has a different name. The default 
> version is switched to that new version and the previous one stops getting 
> traffic. How many instance-hours are consumed that hour?
>
> -Sergey
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/ETpwQCJTpT0J.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: Large number of datastore puts

2011-09-07 Thread Stephen
On Tue, Sep 6, 2011 at 10:05 PM, Jason Collins
 wrote:
>
> We are seeing a lot more datastore write operations than we can
> account for (375M / day). Still trying to get to the bottom of it
> because it makes for a scary line item on the new sample bills.

Divide 375M writes by number of request to get the average writes per
request. Use code similar to the following to log requests with more
than average writes:

  https://gist.github.com/715284

Should home in on the write-happy code pretty quickly.

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



[google-appengine] Error at running application version after deploy - Classes cannot be found

2011-09-07 Thread Alexandru Farcas

I've deployed a new version of my application and since then I receive
FileNotFoundException and I can't access this new version.
This happens only on new deployed versions (Another colleague of mine
also tried and got the same problem). The other old versions are ok
(also the default version).
This never happened before. I use 1.5.2 Java SDK and until today
deployments were OK.

This is a sample of this exception:

W 2011-09-07 03:42:51.918
EXCEPTION
java.lang.RuntimeException: java.io.FileNotFoundException: /base/data/
home/apps/[s~myAppId]/alex.353097265111077421/_ah/java_compiled/WEB-
INF/classes/[myPath/MyClass.class] (No such file or directory)
at com.google.appengine.runtime.Request.process-
f4b8a7b021f0845c(Request.java)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.mortbay.util.Loader.loadClass(Loader.java:91)

E 2011-09-07 03:42:51.918
javax.servlet.ServletContext log: unavailable
javax.servlet.UnavailableException: java.io.FileNotFoundException: /
base/data/home/apps/[s~myAppId]/alex.353097265111077421/_ah/
java_compiled/WEB-INF/classes/[myPath/MyClass.class] (No such file or
directory)
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:
242)
...


Best Regards,
Alex

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



[google-appengine] Wontfix on need max-idle instances 0, but my single idle instance won't go away.

2011-09-07 Thread Tim Hoffman
Hi

Just got the email saying issue "We need to be able to set 
"Max-Idle-Instance" to 0" 
http://code.google.com/p/googleappengine/issues/detail?id=5764 wont be 
fixed.

In that case there is a problem with the scheduler not shutting down idle 
instances.

My app your-pond, has a single instance that has been running for over 10 
hours, serviced 11 requests during that time and the last one
was about an hour ago.

Total number of instancesAverage QPS*Average Latency*Average Memory1 total
0.000Unknown ms51.0 MBytes*Instances *[image: 
help]
QPS*Latency*RequestsErrorsAgeMemoryAvailability0..0 ms11010:59:5251.0 
MBytes[image: Dynamic Icon]DynamicRequest graph for the last 6 hours.

[image: Requests/Second (24 hrs)]
Instances graph for the same period

[image: Requests/Second (24 hrs)]
Notice the graph of instances actually only shows instances for the periods 
when requests where made, however the instances view
tells a different story. That the instance has been around for 10 hours. Do 
I believe the graph or the instances view ?

This instance does not have billing enabled. This behavior means the free 
quota will be used up keeping a single instance alive
rather than used for actual work.  (I will be turning billing on for this 
instance but that shouldn't matter to the behaviour).  
The startup time is neglible for this particular app and it is on HR, so it 
seems reasonable that any idle instance should be shut down after 15 
minutes.

Regards

Tim Hoffman

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/xfDJsIK6W-IJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Billing history stopped 5 day ago

2011-09-07 Thread Per
Same problem here. Two of my apps are stuck 5 days ago. But the one
that I disabled the always-on option is showing a 2 day old billing,
and that's actually already taking into account my change in the
billing (new pricing==1 cent, but only because it's my QA environment
that's pretty idle). Maybe you have to change the pricing a little bit
to kick off the job for the billing history.


Cheers,
Per



On Sep 7, 11:51 am, Alex Popescu  wrote:
> In the light of the new billing details, I've made some changes to the Max
> Idle Instances and Min Pending Latency (as per the optimization
> documentation) just to see how these would reflect in my bill. Anyways my
> billing history has stopped 5 days ago on Sept. 2nd.
>
> I'm really confused on how to proceed right now. I know that I have to get
> ready for the moment the new pricing becomes effective, but if I don't have
> the tools to estimate my costs and understand what optimizations I can do,
> then I don't seem to be left with much to do.
>
> Could anyone clarify why billing history has stopped? Also, how soon changes
> to the above configurations would be reflected in the billing history?
>
> tia,
>
> A://
>
> PS: Application ID: twimblr. I do have other applications each with its own
> different billing status (most recent being from Sept.5th, which is OKish).

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



[google-appengine] Re: How do I set maximum total instances to 1 ? OR How do I run my app for free for 24 hrs a day ?

2011-09-07 Thread Per
I changed my QA environment down from the always-on option, and set
max-idle==1, and I set the pending latency to 300ms.

The instance was up for 24h (restarted about 11h ago the last time):
It's just a QA box, but the cron jobs run and seem to keep it alive
well. E.g. no latency either.

My charge under the new pricing regime is 1ct for the day.  Even if
there were a bit more load, I expect additional instances would get
spun up and down again pretty quickly, and not cost me (or you) much.
All good!

Cheers,
Per



On Sep 7, 11:12 am, Gerald Tan  wrote:
> I believe even if you have additional instances spawned for you, you are
> only charged for 1 instance (which should be your max idle instance setting)
> + active instances, which should be a very small number. Now you will see
> either one of two situations:
>
> 1) You have enough time when there are 0 instances up to make up for the
> active instance numbers, in which case your app should have no problem
> serving requests all day
> 2) You have an instance up all the time, in which case your app will be
> automatically shutdown when you run out of quota near the end of the billing
> day, probably for around 30mins to an hour depending on your active instance
> time, until the daily quota resets.

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



Re: [google-appengine] Wontfix on need max-idle instances 0, but my single idle instance won't go away.

2011-09-07 Thread Barry Hunter
>From what Jon said in another thread ("min instace time is 24 hours?"),
instances may be left hanging around (as they happen to be on a fortuitous
machine)

But you are not changed for these. ie its the lines on the graphs that
actully affect billing (see Jons equations in the same thread)

... i.e. you get a instance sitting around ready to serve a request at a
moments notice. For free. Bonus.
(or another way, its better for Google to not bother tearing it down, only
to have to put it back later)


On Wed, Sep 7, 2011 at 12:27 PM, Tim Hoffman  wrote:

> Hi
>
> Just got the email saying issue "We need to be able to set
> "Max-Idle-Instance" to 0"
> http://code.google.com/p/googleappengine/issues/detail?id=5764 wont be
> fixed.
>
> In that case there is a problem with the scheduler not shutting down idle
> instances.
>
> My app your-pond, has a single instance that has been running for over 10
> hours, serviced 11 requests during that time and the last one
> was about an hour ago.
>
>  Total number of instances Average QPS* Average Latency* Average Memory 1
> total 0.000 Unknown ms 51.0 MBytes *Instances *[image: 
> help] 
> QPS*Latency*RequestsErrorsAgeMemoryAvailability
> 0.000 0.0 ms 11 0 10:59:52 51.0 MBytes [image: Dynamic Icon]Dynamic Request
> graph for the last 6 hours.
>
> [image: Requests/Second (24 hrs)]
> Instances graph for the same period
>
> [image: Requests/Second (24 hrs)]
> Notice the graph of instances actually only shows instances for the periods
> when requests where made, however the instances view
> tells a different story. That the instance has been around for 10 hours. Do
> I believe the graph or the instances view ?
>
> This instance does not have billing enabled. This behavior means the free
> quota will be used up keeping a single instance alive
> rather than used for actual work.  (I will be turning billing on for this
> instance but that shouldn't matter to the behaviour).
> The startup time is neglible for this particular app and it is on HR, so
> it seems reasonable that any idle instance should be shut down after 15
> minutes.
>
> Regards
>
> Tim Hoffman
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/xfDJsIK6W-IJ.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



[google-appengine] Will you prohibit to keep the free instance up and running permanently? Or is it a best practice now?

2011-09-07 Thread Per
Hi,

I just disabled the "always on" option for my QA application, wanting
to experiment with the new pricing model. Instead, I set the max-idle
to 1, and I defined a 300ms latency in the application settings. The
QA box is rarely used, but since the Cron-Jobs keep running every 5
minutes to clean up stuff, there was always some base load.

I checked out the stats, and it turns out there was always one
instance up in the past 24 hours, and the currently active instance is
11h old. That's perfect for me: the less instance restarts we have,
the faster the app will react (since startup takes some 5 to 10
seconds). Overall, this QA box cost me a mere 1ct under the new
pricing. Great news!

Is this too good to be true? When App Engine started out, new
instances got killed after 60seconds, and it was officially prohibited
to ping instances to keep it alive. Will that happen again? Or is it
fine to consume the free 1 instance permanently?

Cheers,
Per

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



Re: [google-appengine] Wontfix on need max-idle instances 0, but my single idle instance won't go away.

2011-09-07 Thread Tim Hoffman
Hi Barry 

Thanks for pointing out that thread.

I am still not 100% convinced from what Jon said is the whole picture

He did say that they may not kill of idle instances and the graph shows 
that.
But he also says that max-idle-instances=1  equates to 24 billable hours. 
 So I am inclined to conclude
that his comment about not killing off idle instances refers to idle 
instances >1 , rather than the single idle instance.

His last point was that

(e) billable-instances-rate = min(active-instances-rate +
max-idle-instances, total-instances-rate) = min(0.0033 + 1, 1) = 1

So if I have absolutely no activity for 20 hours, but 24 instance hours 
activity in 4 hours, based on those
calculations if I have a single instance idle for the 20 hours as well. I 
would expect to billed for 

What do you think ?

Rgds

Tim

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/Q5ZNjNIEESEJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] www.TyprX.com typing app 100x more expensive under new pricing

2011-09-07 Thread supercobra
Hello there,

Our typing race game www.typrx.com will be 100 times more expensive
(w/ the 50% discount on the front end till end of Nov.) under the new
pricing.

This places us in a difficult position because we need to allocate
resources *now* to work on this, and we are already very busy We
have not optimized it yet, however, it is already using all the good
stuff like Memcache... and even if we shave 20% of resource usage this
is still very expensive.

As TyprX becomes more popular, we won't be able to afford its cost and
would either have to move it to another platform (and rewrite the
backend) or stop it altogether.

I am not too sure what we should do at this point.

Google App Engine: please help.

-- Daniel
www.metadot.com

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



[google-appengine] Explain My Billing

2011-09-07 Thread Alex-S
Please explain what's happening with my billing calculation.

issue 1:
I had 27000 entities of a certain kind in the datastore, Datastore
stats said 135 MB used. OK.
Dashboard reported 500MB used (MAX HR free teir )... not so good. but
maybe it doesn't count the index
 see Issue 2740 in googleappengin.
OK so there's one bug. understood.

Now I delete all entities.
Dashboard reports 500MB used.Stats report 0MB. So if I was paying do I
get billed @ 500MB or 0.
Yes it makes a difference when this goes live and it's either 500GB or
0GB.

issue 2:
Add 200 entities of a kind. It's not a lot by "Google scale"
standards  - ok -  it will be < 30seconds real time.
on 7/9/2011 this takes 21263ms 8618883cpu_ms 8614450api_cpu_ms
Did I just read that right? 8.6Million ms API time?
8641 seconds API time?
143 MINUTES! for only 200 entities?!
2.3 HOURS -  I could write it down in a book FASTER THAN THAT  -
Including the index.

You, Google, are saying that if this operation were done sequentially
it would take over 2 hours?
That's just not believable.

8618883ms @ 2.4 GHZ that's 2.07 *10^13 ( 20,700,000,000,000) cycles...
for persisting 200 entities? WTF!
not plausible.

Your billing calculation is broken and wrong just admit it.


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



Re: [google-appengine] Error at running application version after deploy - Classes cannot be found

2011-09-07 Thread Renan Mobile
Hello Everyone,

This happened with me too. I don't know why. I'm using JAVA SDK and M/S
Datastore. I need to deploy a new version today.

Thank you,

-
Presidente Renan Franca

Renan Mobile ltda: http://renanmobile.com - Soluções em Dispositivos Móveis
(Smartphones) com integração via web.
Soluções em:
Android (Smartphones);
Google Web Toolkit (Web);



2011/9/7 Alexandru Farcas 

>
> I've deployed a new version of my application and since then I receive
> FileNotFoundException and I can't access this new version.
> This happens only on new deployed versions (Another colleague of mine
> also tried and got the same problem). The other old versions are ok
> (also the default version).
> This never happened before. I use 1.5.2 Java SDK and until today
> deployments were OK.
>
> This is a sample of this exception:
>
> W 2011-09-07 03:42:51.918
> EXCEPTION
> java.lang.RuntimeException: java.io.FileNotFoundException: /base/data/
> home/apps/[s~myAppId]/alex.353097265111077421/_ah/java_compiled/WEB-
> INF/classes/[myPath/MyClass.class] (No such file or directory)
>at com.google.appengine.runtime.Request.process-
> f4b8a7b021f0845c(Request.java)
>at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
>at org.mortbay.util.Loader.loadClass(Loader.java:91)
>
> E 2011-09-07 03:42:51.918
> javax.servlet.ServletContext log: unavailable
> javax.servlet.UnavailableException: java.io.FileNotFoundException: /
> base/data/home/apps/[s~myAppId]/alex.353097265111077421/_ah/
> java_compiled/WEB-INF/classes/[myPath/MyClass.class] (No such file or
> directory)
>at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
>at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:
> 242)
>...
>
>
> Best Regards,
> Alex
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



Re: [google-appengine] Wontfix on need max-idle instances 0, but my single idle instance won't go away.

2011-09-07 Thread Dani Shaulov


> But he also says that max-idle-instances=1  equates to 24 billable hours.
>

He did not say that. He clearly said that an instance will not be billed 
after 15 mins of inactivity.
You will get 24 billable hours if you ping(make a request) the system at a 
rate of at least 1 time every 15 minuets.
You are billed by the data on the graph (3 bursts of 15 minuets each = 45 
instance minuets or 0.75 hours in the time period the graph shows)
You better wait 3 days and see the billing history for today - and will be 
able to see under the expected new billing prices that there was no use of 
10 hours.
I had and instance that seemed to run for 2 straight days (age was 2 days). 
now i have a billing history of that day and it only shows a few hours NOT 
24

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/XzVfXR5hsCQJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Large number of datastore puts

2011-09-07 Thread Alexis
We also have a large number of Datastore Write ops in our sample bill,
and we figured out that it was likely due to properties with
indexed=True
thanks to the Quota Details admin page that gives more detail:

Datastore CPU Time  0%   431.12 of Unlimited CPU hours
Datastore Entity Fetch Ops  0%   8,288,728 of Unlimited
Datastore Entity Put Ops0%   4,159,838 of Unlimited
Datastore Entity Delete Ops 0%   1,072,478 of Unlimited
Datastore Index Write Ops   0%   37,251,177 of Unlimited
Datastore Query Ops 0%   642,110 of Unlimited
Datastore Key Fetch Ops 0%   4,403,176 of Unlimited

Here we clearly see that it's "Datastore Index Write Ops" that is
responsible for an expensive bill.
We will see soon the impact of having indexed=False on most
properties.

Hope it helps



On 7 sep, 13:23, Stephen  wrote:
> On Tue, Sep 6, 2011 at 10:05 PM, Jason Collins
>
>  wrote:
>
> > We are seeing a lot more datastore write operations than we can
> > account for (375M / day). Still trying to get to the bottom of it
> > because it makes for a scary line item on the new sample bills.
>
> Divide 375M writes by number of request to get the average writes per
> request. Use code similar to the following to log requests with more
>
> than average writes:
>
>  https://gist.github.com/715284
>
> Should home in on the write-happy code pretty quickly.

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



Re: [google-appengine] Wontfix on need max-idle instances 0, but my single idle instance won't go away.

2011-09-07 Thread Dani Shaulov
And, your total-instance-rate is the blue line in the graph. As you can see 
it is 0 most of the time not 1. So in the formula you put 0 for most of the 
idle hours.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/IpKFuEcfCNgJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Aw: Re: How do I set maximum total instances to 1 ? OR How do I run my app for free for 24 hrs a day ?

2011-09-07 Thread Daniel Florey
But the question remains: is there a way to tell GAE not to use more than 
one active instance? 
I'd prefer for my free apps to be sure that one instance is up and running 
for 24hours. How can I prevent any additional instances to be started?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/VfNe-bCIdKoJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Customer can no longer access their App Engine dashboard

2011-09-07 Thread Cain Wong
That fixed it.   Thank you.

On Sep 6, 4:33 pm, "Gregory D'alesandre"  wrote:
> Hi Cain,
>
> If the domain admin goes into the Google Apps (not App Engine) control panel
> and enables "Google App Engine" for that domain, then they should be able to
> access it again.
>
> Greg
>
>
>
>
>
>
>
> On Tue, Sep 6, 2011 at 7:52 AM, Cain Wong  wrote:
> > A customer of ours is no longer able to access the Dashboard for their
> > App Engine application.   I believe the reason is that the Google
> > account that was originally used to set up the GAE application is one
> > that was transitioned from Gmail to Google Apps.   (There were issues
> > with the transition with several other Google services including
> > Adwords.)
>
> > As it stands, gets the message "You are not authorized to access this
> > application" upon logging in.
>
> > I am able to log in to the application dashboard using my own account,
> > but since I only have "Developer" access, I cannot re-grant access for
> > him.  His account is the the only one identified as an "Owner",
> > therefore we are stuck.
>
> > Please advise.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine" group.
> > To post to this group, send email to google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine?hl=en.

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



Re: [google-appengine] Wontfix on need max-idle instances 0, but my single idle instance won't go away.

2011-09-07 Thread Tim Hoffman
Ok, where he said that was in the context of someone pinging every minute 
rather than as
a general statement.

It would be good if the instances view showed billable instance hours 
against each instance.  

I might have to wait more than 3 days to see the billing, I am currently 4 
days behind on all of my billing statements.

Rgds

Tim

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/nNxTrJHQAHgJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Error at running application version after deploy - Classes cannot be found

2011-09-07 Thread Alexandru Farcaș
I use HR.
I should specify that sometimes it works, some classes are found, but when i
reload, many of the classes that i need cannot be found.
 On Sep 7, 2011 3:23 PM, "Renan Mobile"  wrote:
> Hello Everyone,
>
> This happened with me too. I don't know why. I'm using JAVA SDK and M/S
> Datastore. I need to deploy a new version today.
>
> Thank you,
>
> -
> Presidente Renan Franca
> 
> Renan Mobile ltda: http://renanmobile.com - Soluções em Dispositivos
Móveis
> (Smartphones) com integração via web.
> Soluções em:
> Android (Smartphones);
> Google Web Toolkit (Web);
>
>
>
> 2011/9/7 Alexandru Farcas 
>
>>
>> I've deployed a new version of my application and since then I receive
>> FileNotFoundException and I can't access this new version.
>> This happens only on new deployed versions (Another colleague of mine
>> also tried and got the same problem). The other old versions are ok
>> (also the default version).
>> This never happened before. I use 1.5.2 Java SDK and until today
>> deployments were OK.
>>
>> This is a sample of this exception:
>>
>> W 2011-09-07 03:42:51.918
>> EXCEPTION
>> java.lang.RuntimeException: java.io.FileNotFoundException: /base/data/
>> home/apps/[s~myAppId]/alex.353097265111077421/_ah/java_compiled/WEB-
>> INF/classes/[myPath/MyClass.class] (No such file or directory)
>> at com.google.appengine.runtime.Request.process-
>> f4b8a7b021f0845c(Request.java)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
>> at org.mortbay.util.Loader.loadClass(Loader.java:91)
>> 
>> E 2011-09-07 03:42:51.918
>> javax.servlet.ServletContext log: unavailable
>> javax.servlet.UnavailableException: java.io.FileNotFoundException: /
>> base/data/home/apps/[s~myAppId]/alex.353097265111077421/_ah/
>> java_compiled/WEB-INF/classes/[myPath/MyClass.class] (No such file or
>> directory)
>> at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
>> at
>> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:
>> 242)
>> ...
>>
>>
>> Best Regards,
>> Alex
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.
>

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



Re: [google-appengine] Aw: Re: How do I set maximum total instances to 1 ? OR How do I run my app for free for 24 hrs a day ?

2011-09-07 Thread Gopal Patel
you cant. the option is only for maximum idle instance. it took me a lot of
time and graph to grasp the idea of maximum idle instance. lol.

i would rather like maximum total instance option which can be set to any
number from 1 to infinite. would and like to use latency to actually
control the cost.

On Wed, Sep 7, 2011 at 5:59 PM, Daniel Florey wrote:

> But the question remains: is there a way to tell GAE not to use more than
> one active instance?
> I'd prefer for my free apps to be sure that one instance is up and running
> for 24hours. How can I prevent any additional instances to be started?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/VfNe-bCIdKoJ.
>
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



Re: [google-appengine] Error at running application version after deploy - Classes cannot be found

2011-09-07 Thread Renan Mobile
When i did an operation at first time the class always wasn't found. I don't
know what to do and i have to deploy a new version in the next 2 hours.
I trust on google a lot and i'm very worry because it's a critical problem
on my application. I need to deploy a new version to fix a bug.
Thank you Alexandru for reporting this bug so fast. And if you have any
news, post it please.
Em 07/09/2011 10:22, "Alexandru Farcaș" 
escreveu:

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



Re: [google-appengine] Sample for Push Queues

2011-09-07 Thread Robert Kluin
Hi Hariprasath,
  Is this on the dev server or appspot?  You probably need to provide
a little more code context as well.


Robert



On Wed, Sep 7, 2011 at 03:41, Hariprasath Mohankumar
 wrote:
> Hi Robert,
>                            Thanks for your reply. But i found a strange
> behaiviour, when i add tasks in the queue with the call below,
>                          taskqueue.add(url='/autobot',
> params={'key':game.userXid}, queue_name='autobot')
> the execution of the task is not happening ASYNCHRONOUSLY. the code waits
> for the task to be completed by executing the logic which i defined in
> '/autobot' url and is not moving ahead with the instructions that follow the
> taskqueue.add( )  function. Is there anything im doing wrong here.
>
> Thanks,
> Hariprasath Mohankumar
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/5qw1CmOMklIJ.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



Re: [google-appengine] Best practice to save entity avoiding duplicate

2011-09-07 Thread Robert Kluin
You're right about changing filed values, but the problem with a
separate field is that it takes much more work to do it
transactionally.  With a column + queries, you will have a race
condition without adding additional logic (using another entity with
the hash as the key-name).


Robert



On Wed, Sep 7, 2011 at 02:27, Waleed Abdulla  wrote:
> Works, unless you want to allow users to edit their entries. If a user
> changes the address after submitting then the new key is now different and
> you'll end up saving a second entity. I wouldn't use any user editable data
> in the key. Instead, I'd add a separate column to include your hash.
>
>
> On Tue, Sep 6, 2011 at 11:32 PM, Robert Kluin 
> wrote:
>>
>> Hi Thomas,
>>  If you want to avoid duplicates, the hash solution is great.
>> Generate the hash, then In a transaction try to fetch the entity by
>> id.  If you can't get it, insert it.
>>
>>
>> Robert
>>
>>
>>
>>
>>
>>
>> On Tue, Sep 6, 2011 at 21:16, Thomas Wiradikusuma
>>  wrote:
>> > Hi guys,
>> >
>> > I'm working on something like AirBnB but much simpler. I want to hint
>> > user whenever he/she tries to submit duplicate entry.
>> >
>> > Currently, my model looks like:
>> >
>> > House {
>> > Id
>> > Username
>> > Address
>> > State
>> > Country
>> > }
>> >
>> > The id is made of address+state+country MD5. Is this the "correct" way
>> > to do it? Or, should I go with auto-generated Id and add extra field
>> > named 'hash', or how?
>> >
>> >
>> >
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "Google App Engine" group.
>> > To post to this group, send email to google-appengine@googlegroups.com.
>> > To unsubscribe from this group, send email to
>> > google-appengine+unsubscr...@googlegroups.com.
>> > For more options, visit this group at
>> > http://groups.google.com/group/google-appengine?hl=en.
>> >
>> >
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



[google-appengine] Re: Outrageous Gae New Pricing Increase

2011-09-07 Thread Mike Wesner
Please stop telling people to use these settings.  Nobody will use the
damn service if they have to wait for seconds for a request to load.
Please either setup an app to run well and pay for it or use something
else.

I am a bit surprised that 15s is even an option for min-pending
latency... that is just crazy.

On Sep 7, 1:40 am, renderpaz  wrote:

> But maybe there is a solution...
> I'm going to take a guess and say that most of your cost is instance
> hours - make sure you change your min-pending latency to 15s and your
> max idle instances to 1

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



[google-appengine] Re: the min instace time is 24 hours?

2011-09-07 Thread Tammo Freese
Hi Jon,


On Sep 6, 6:49 pm, Jon McAlister  wrote:
> } there is a startup fee of 15 minutes for each instance.
>
> This only affects the computation of the total-instances variable
> in the formula, it does not affect the computation of
> active-instances.

so total-instances is the maximum of active-instances over the last 15
minutes?


> } Is it guaranteed that instances die after being idle for 15 minutes?
>
> They will usually die before 15 minutes [see other response], but
> it is possible they may live past 15 minutes of idleness. But
> past 15 minutes of idleness, they are completely ignored by the
> billing system.

Let's say I have 4 active instances for 5 minutes, then no traffic for
the rest of the day, max-idle-instances set to 1.
1) 35 minutes will be billed regardless when the scheduler decides to
kill idle instances, right?
2) But 1 instance would be idle for at least 15 minutes, right?

> The max-idle-instances setting has two effects. The first is a
> hint to the scheduler to kill off excess idle instances [it does
> this now, but approximately], and the second is how it is used in
> the billing formula.

Let's say I have 4 active instances for 5 minutes, then no traffic for
the rest of the day, max-idle-instances set to 4.
1) 80 minutes will be billed regardless when the scheduler decides to
kill idle instances, right?
2) But 4 instances would be idle for at least 15 minutes, right?


Take care and thanks for your help,

Tammo

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



Re: [google-appengine] Re: Why I think it's the time to leave GAE.

2011-09-07 Thread keakon lolicon
Hi all,

I just did some optimization these days, now the Datastore Reads operations
per day drops from 70k to less than 40k.
I achieved this by 2 ways:

   1. Hooking every datastore operation, logging the requests which fetched
   more than 5 entities, then checked each of them if I forgot to cache.
   2. Increased the expiration time of some cache.

But I think I still can't keep it free when I get 2x traffics.

I didn't merge entities together because it will make my code hard to
understand and maintain. The max entity size also prevented me to do this.

My concern is that the Datastore Reads operations seems cheap ($0.7 /
million), why not give us more free quota? I think 500k is reasonable for
most of the small apps.
I only use 5% CPU (0.3 CPU hours) per day, I don't care SLA, why such a
small app have to pay $9 per month?

--
keakon

My blog(Chinese): www.keakon.net
Blog source code: https://bitbucket.org/keakon/doodle/



On Wed, Sep 7, 2011 at 6:07 PM, Gerald Tan  wrote:

> I've thought of caching to the blobstore too, for stuff that will include a
> lot of entities and don't change a lot.
> Has anyone tried this, is it plausible?
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/C2DjBaNsCW8J.
>
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



[google-appengine] GAE data store and Google Bigtable

2011-09-07 Thread Bruce Aloe
Hi,

I store some data in GAE data store and can not find any documents
regarding the relation between GAE data store and Google Bigtable.

Can one say querying GAE data store is the same as querying Google
Bigtable?

GQL is the query language to query GAE data store, is it right to say
using GQL to query Google Bigtable?

Any official document answering these kind of question is very
appreciated.

I appreciate the help if someone could give a clear explanation
regarding the relation between GAE data store and Google Bigtable.

Thanks a lot!

Bruce

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



[google-appengine] Re: Outrageous Gae New Pricing Increase

2011-09-07 Thread Tim


On Wednesday, 7 September 2011 15:11:58 UTC+1, Mike Wesner wrote:
>
> Please stop telling people to use these settings.  Nobody will use the 
> damn service if they have to wait for seconds for a request to load. 
> Please either setup an app to run well and pay for it or use something 
> else. 
>
> I am a bit surprised that 15s is even an option for min-pending 
> latency... that is just crazy. 
>
>
I partially agree with you but there are some valid cases where latency of 
10 or 15 seconds isn't an issue: for example, most of the "expense" for my 
app is the single-page-webapp front-end doing lazy writebacks of updates by 
AJAX calls (it buffers updates in the client code until there's a sizable 
chunk of updates or a period where the user doesn't make any updates, like 
the auto-save of drafts in gmail). 

So a few seconds of pending latency is not an issue. I already have to cope 
with the fact the user may apply more changes to the data while the 
writeback is in flight, or the writeback fails and has to be retried, so 
upping the latency isn't too much of an issue. Of course, the same latency 
when READING the data in the first place (the app is served mostly from 
static files, but the javascript then loads the user data via AJAX calls as 
the page renders) is less than ideal, so I agree with you in the general 
case.

That's why if the scheduler works more like it now sounds (see my comments 
on another thread about what the "15 minute" minimum count actually means), 
then I'm happy to experiment with my latency (of course, it would be even 
nicer to be able to specify the latency per handler in the app.yaml or 
prioritise handlers or similar), and then it comes down to whether I can get 
the number of datastore write operations down to a reasonable number (which 
might involve changing the way I model the data so every chunk of updates 
can be written by a single write call and then making the read operation 
more complex as it has to effectively unpack a collection of deltas, each of 
which can be modifications to a number of logical records, and apply them to 
form a consolidated set of data records).

--
T

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/S6h7T85-k4QJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: 1.5.4 SDK Prerelease

2011-09-07 Thread Nischal
In python I can see there's async memcache calls! Is it available in Java 
already or will you guys be introducing it probably in the next release?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/a541asIe_xMJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: the min instace time is 24 hours?

2011-09-07 Thread Jon McAlister
Hi Tim,

On Wed, Sep 7, 2011 at 2:07 AM, Tim  wrote:
>
> Jon,
> Thanks for that explanation, but if it's authoritative (not meaning to sound
> rude, but I hope .. I take it you're on the AppEngine team rather than a
> user explaining your understanding of how pricing applies) then it perhaps
> illustrates what many of us may be worried about, and maybe a more detailed
> explanation of the scheduler and 15-minute rule may put some minds at rest
> and reduce some of the hostility to the new billing scheme.
> It's the sort of thing that can be easily explained in person, but can be
> hard to get across on paper, so let me explain how I may have previously got
> the wrong impression and been more alarmed than you may consider seems
> appropriate.

Correct. Correct. Correct.

> Everything I've read about the "15 minute minimum instance" would imply in
> the above scenario described that the billing would be
> Time Period: [0:5] - 4 active instances
> Time Period [5:20] - 4 active instances running for their 15 minute minimum
> idle time since last query
> Time Period [20:inf] - 0 active instances (ie some of the above may still be
> idling awaiting being killed, but wouldn't be billed)
> This would give a charge of 80 minutes, as opposed to 35 as explained by
> yourself - I might have set min-idle-instances to 1, but I understood that
> once an instance was started it would be charged for instance time until 15
> minutes after it's last activity.
> Now I'm willing to take it that you're right, but the pricing as explained
> so far has led me to believe that the rule is
> [explanation #1]
>  - ANY instance, once started, will not be eligible to be killed until at
> least 15 minutes after last activity, and thus will lead to at least 15
> minutes billing each
>  - Instances will be started up according to traffic demands
>  - Instances will be killed off when the number of "instances that have each
> gone BEYOND their 15 minutes since their last activity" exceeds
> "max-idle-instances"
> And the thing that worried me about the above understanding was that if, in
> the period [5:20], there were a few queries (say 1 query a minute) then the
> scheduler might hand these round-robin style to the 4 idling instances,
> thereby keeping 4 instances active for much longer, rather than giving them
> repeatedly to the same single instance and thereby killing instances 2,3 and
> 4 at the 20 minute mark.
> This is what was alarming me - the impression that, given the odd short
> burst of traffic (say a busy minute once every couple of hours) that started
> up a handful of extra instances, then the scheduler might keep all these
> instances hanging around for ages, each running mostly idle but sharing the
> "normal load", and thus leading to a massive bill following each burst no
> matter how short.
> Now you seem to be saying that this reading is incorrect (to which I and
> many others may understandably say "phew!") and the rules are more like
> [explanation #2]
>  - Instances, once started, are kept in a list ordered by start time
>  - Any activity causes the list to be checked in order (ie first started
> checked first) for a free active instance, and assigned to the first one
> that is idle
>  - If none are idle, the query will be queued up to "max-pending" time to
> see if any instance becomes free before a new instance is started
>  - Each time an instance in the list finishes serving a query, the scheduler
> checks how many instances are actually busy, and if the number exceeds
> max-idle-instances, then it chooses instances from the END of the list (most
> recently started) to kill (or logically killed as in stopped being billed
> and removed from the list)
>  - 15 minutes after any instance last serviced a query, it is killed (or
> logically...) regardless of max-idle-instances unless that would breach
> min-idle-instances
> Now I'd understand if the above has approximations (eg extra pauses in the
> above), or has got some details wrong, or you don;t want to commit to
> PRECISELY how it works so you can change it in future and in fact what
> happens is you don't do all these checks in realtime (other than choosing
> what instance to assign etc) but then apply the logic afterwards for billing
> purposes (ie you tend to err on keeping things active in case they're
> needed, but bill as if they'd been killed off according to the rule above).

This characterization of the imprecise nature of the implementation of
max-idle-instances in the scheduler is exactly correct. But the
billing formula is always precise.

> But if scheduling (of queries to instances), and billing (of instance time)
> is closer to explanation #2 than #1, then I could probably live with the "15
> minute" rule, but I'd hope you could also see that if the scheduler works
> more like #1 than #2 then that would be why so many of us are worried about
> "15 minutes" and would like to see that interval dropped to more like "2
> minutes" !

Understood. And 

Re: [google-appengine] Re: the min instace time is 24 hours?

2011-09-07 Thread Jon McAlister
On Wed, Sep 7, 2011 at 7:20 AM, Tammo Freese  wrote:
> Hi Jon,
>
>
> On Sep 6, 6:49 pm, Jon McAlister  wrote:
>> } there is a startup fee of 15 minutes for each instance.
>>
>> This only affects the computation of the total-instances variable
>> in the formula, it does not affect the computation of
>> active-instances.
>
> so total-instances is the maximum of active-instances over the last 15
> minutes?

Not really, no.

>
>
>> } Is it guaranteed that instances die after being idle for 15 minutes?
>>
>> They will usually die before 15 minutes [see other response], but
>> it is possible they may live past 15 minutes of idleness. But
>> past 15 minutes of idleness, they are completely ignored by the
>> billing system.
>
> Let's say I have 4 active instances for 5 minutes, then no traffic for
> the rest of the day, max-idle-instances set to 1.
> 1) 35 minutes will be billed regardless when the scheduler decides to
> kill idle instances, right?

Yes.

> 2) But 1 instance would be idle for at least 15 minutes, right?

Maybe.

>
>> The max-idle-instances setting has two effects. The first is a
>> hint to the scheduler to kill off excess idle instances [it does
>> this now, but approximately], and the second is how it is used in
>> the billing formula.
>
> Let's say I have 4 active instances for 5 minutes, then no traffic for
> the rest of the day, max-idle-instances set to 4.
> 1) 80 minutes will be billed regardless when the scheduler decides to
> kill idle instances, right?

Yes.

> 2) But 4 instances would be idle for at least 15 minutes, right?

Maybe.

>
>
> Take care and thanks for your help,
>
> Tammo
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



[google-appengine] Re: Why app engine new price model is totally wrong

2011-09-07 Thread Pol
On Sep 7, 2:53 am, Andrew Cassidy  wrote:
> I wasn't trying to say 'You can replicate GAE on AWS trivially", GAE is a
> massive beast that does one thing in particular that I haven't experimented
> with yet: automatically creating and destroying running instances. I was
> trying to say you could host your own scaling application on any
> infrastructure you like with a little know how.

Anyone can write a web page, an iPhone app or even drive a car on a
race track with "a little know how". That's doesn't you won't crash at
the first "serious" problem.

Look, we can debate all day long on the perceived value of GAE is and
what a fair price for the service, but putting this type of service
together does require quite a bit of know how.

- Pol

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



Re: [google-appengine] 1.5.4 SDK Prerelease

2011-09-07 Thread Muneer Malik
I see the SDK is being updated but eclipse plugin is still showing 1.5.2 ..

any reason for that ?

Thanks

On Tue, Sep 6, 2011 at 2:20 PM, Johan Euphrosine  wrote:

> Hi everyone,
>
> Prerelease SDK for 1.5.4 is ready for testing, feel free to download
> and give it a try for local verification:
> http://code.google.com/p/googleappengine/downloads/list
>
> See release notes below.
>
> Happy testing!
>
> App Engine Python SDK - Release Notes
>
> Version 1.5.4
> ===
> - You can now specify the maximum size for a blob in create_upload_url().
> - Zigzag merge join queries will now continue scanning up to the 30 second
>  Datastore query deadline.  For zigzag queries that used to generate
> NeedIndex
>  errors, many will now succeed.  A small percentage will now instead
> timeout.
> - Added API functionality for making calls to the Memcache API
> asynchronously.
> - Fixed an issue that incorrectly allowed creation of tasks with whitespace
> in
>  the url.
> - Fixed the error message for "transaction not found" to be more
> descriptive.
> - Fixed an issue where blobstore uploads didn't work in the SDK with the
>  -a 0.0.0.0 flag set.
> - Fixed an issue where --dry_run was broken for upload_data in bulkload.py.
> - Fixed an issue where db.Model().to_xml() incorrectly updated
> auto-updating
>  properties.
>http://code.google.com/p/googleappengine/issues/detail?id=322
> - Fixed an issue where the SDK didn't expand the '~' in a file path.
>http://code.google.com/p/googleappengine/issues/detail?id=522
> - Fixed an issue where is_saved() wasn't valid after db.Model.__init__.
>http://code.google.com/p/googleappengine/issues/detail?id=844
> - Fixed an issue where GQL IN queries with an empty list returned all
> entities.
>http://code.google.com/p/googleappengine/issues/detail?id=932
> - Fixed an issue where the SDK's sqlite stub did not handle cursors on
>  descending queries correctly.
>http://code.google.com/p/googleappengine/issues/detail?id=3121
> - Fixed a typo in the SDK's Datastore Stats generator message.
>http://code.google.com/p/googleappengine/issues/detail?id=5425
>
> App Engine Java SDK - Release Notes
>
> Version 1.5.4
> =
> - You can now specify the maximum size for a blob in
>  BlobstoreService.createUploadUrl().
> - Zigzag merge join queries will now continue scanning up to the 30 second
>  Datastore query deadline. For zigzag queries that used to generate
>  DatastoreNeedIndexException, many will now succeed. A small percentage
> will
>  now instead timeout.
> - The Prospective Search API is available in Java for all applications.
> This API
>  is still experimental, so applications will be limited to a maximum of
> 1000
>  subscriptions.
> - We made a classloading improvement that we expect to help loading request
>  latencies for projects with large numbers of jars.
> - Added support for the set_default_version flag to Appcfg.
> - The Java Remote API now recognizes the HTTP_X_APPENGINE_INBOUND_APPID.
> This
>  means that the Datastore Admin copy functionality will work when using
>  Java's Remote API with the destination app.
> - Fixed an issue that incorrectly allowed creation of tasks with whitespace
> in
>  the url.
> - Fixed the error message for "transaction not found" to be more
> descriptive.
> - Fixed an issue with the dev appserver's local Blobstore implementation
> trying
>  to modify an immutable collection.
>http://code.google.com/p/googleappengine/issues/detail?id=3081
> - Fixed an SDK issue where CONFIG, FINE, FINER, FINEST logging messages
> were not
>  displayed.
>http://code.google.com/p/googleappengine/issues/detail?id=4591
> --
> Johan Euphrosine (proppy)
> Developer Programs Engineer
> Google Developer Relations
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>


-- 
Confidentiality Notice
---


THIS INFORMATION IS INTENDED ONLY FOR THE USE OF THE ADDRESSEE AND MAY
CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM
DISCLOSURE UNDER APPLICABLE LAW.  IF YOU ARE NOT THE INTENDED RECIPIENT, OR
THE EMPLOYEE OR AGENT RESPONSIBLE FOR DELIVERING THIS MESSAGE TO THE
INTENDED RECIPIENT, YOU ARE HEREBY NOTIFIED THAT ANY DISSEMINATION,
DISTRIBUTION OR COPYING OF THE COMMUNICATION IS STRICTLY PROHIBITED.  IF YOU
HAVE RECEIVED THIS COMMUNICATION IN ERROR, PLEASE NOTIFY IMMEDIATELY AT
tutti...@gmail.com OR BY TELEPHONE AT 817-458-1764.


THANK YOU.

-- 
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 g

Re: [google-appengine] Re: Why app engine new price model is totally wrong

2011-09-07 Thread Andrew Cassidy
On 7 September 2011 16:09, Pol  wrote:

> On Sep 7, 2:53 am, Andrew Cassidy  wrote:
> > I wasn't trying to say 'You can replicate GAE on AWS trivially", GAE is a
> > massive beast that does one thing in particular that I haven't
> experimented
> > with yet: automatically creating and destroying running instances. I was
> > trying to say you could host your own scaling application on any
> > infrastructure you like with a little know how.
>
> Anyone can write a web page, an iPhone app or even drive a car on a
> race track with "a little know how". That's doesn't you won't crash at
> the first "serious" problem.
>
> Look, we can debate all day long on the perceived value of GAE is and
> what a fair price for the service, but putting this type of service
> together does require quite a bit of know how.
>
> - Pol
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>
Your post indicates you did not read the first sentence of mine.

-- 
Andrew Cassidy BSc (Hons) MBCS
http://www.jonisdumb.com/

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



[google-appengine] Spike into my Idle Instance every 2hours

2011-09-07 Thread Sahid Orentino Ferdjaoui
Hello,

Every 2 hours I have a spike into my Idle instances and i don't understand 
why? My actives instances are normals...
Someone can help me to understand that?

http://i.imgur.com/GZHbZ.png

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/XDzm41EqFdoJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] More HR Refactoring

2011-09-07 Thread Joshua Smith

I'm trying to port my existing M/S app to HR because I have a gun to my head 
with "Threaded Python Only for HR Apps" written on the bullets.

My system will schedule meetings automatically.  Scheduling a meeting can take 
some time, because a bunch of records are created, and a bunch of emails need 
to go out.  So the code to schedule one looked like this:

class MeetingAutoHandler(webapp.RequestHandler):
  def get(self):
schedule = ScheduleModel.gql("WHERE next != :1 AND next < :2", None, 
datetime.datetime.now()).get()
if schedule:
  schedule.cronAuto()
  taskqueue.add(url='/admin/meetingAuto', method='GET', countdown=1)

The query looks for a schedule object that needs a meeting to to be scheduled 
now.  There might be a few of these when the cron runs.  So it does the hard 
work for one of them (in cronAuto()), and schedules another call to itself to 
get the next one using the task queue.

This isn't going to work in HR because that query is going to keep finding the 
same meeting.  I could trivially tweak this by setting the countdown=60, but 
I've yet to hear any of our google overlords commit to a maximum value of when 
"eventually" happens in "eventually consistent".  I presume there might be 
cases, like during data center transitions, when "eventually" could be a very 
long time indeed.  It is essentially unbounded.  Right?

But I like the pattern I'm using here, and I'm trying to change as little code 
as possible, so I want to put together a HR-resilient version.  Here's what I 
came up with:

class MeetingAutoHandler(webapp.RequestHandler):
  def get(self):
now = datetime.datetime.now()
for s in db.gql("SELECT __key__ FROM ScheduleModel WHERE next != :1 AND 
next < :2", None, now):
  schedule = db.get(s)
  if schedule.next and schedule.next < now:
schedule.cronAuto()
taskqueue.add(url='/admin/meetingAuto', method='GET', countdown=5)
return

So I'm doing a keys-only query and then doing a get() on the key.  (I've never 
done a keys-only GQL query before, but I think I got it right.  Note to google: 
There should be an option to Model.gql() to do keys-only queries!)

The way I understand HR, that get is going to get the real Model, which might 
not meet the criteria in the gql, because the index might be out of date.  
Right?

So I check that the model meets the criteria that I just specified.  (Note to 
google: It'd be cool if there was a way to test an object against a query, so I 
don't have to write the same code twice!)

Finally, I pushed the next task out a bit, to make it less likely that I'll 
have to look at the same objects over and over.

So what do you think?  Any suggestions?  (I have a couple things that work this 
way, so I want to choose a good design pattern to apply to each of them.)

The complexity would be lessened if I could to this:

class MeetingAutoHandler(webapp.RequestHandler):
  def get(self):
q = ScheduleModel.gql_keys_only("WHERE next != :1 AND next < :2", None,  
datetime.datetime.now())
for s in  q:
  schedule = db.get(s)
  if q.matches(schedule):
schedule.cronAuto()
taskqueue.add(url='/admin/meetingAuto', method='GET', countdown=5)
return

This would require two changes: the db.Model would need to support 
gql_keys_only (that's probably trivial); GqlQuery would need a matches() method 
(that's probably not trivial).

It's still a few more lines, but the complexity is about the same as the old 
one.

Worth the trouble of a couple feature request issues?

-Joshua

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



Re: [google-appengine] Sample for Push Queues

2011-09-07 Thread Hariprasath Mohankumar
Hi Robert,
  this is happening in the dev server.  The code is 
as follows.


class botinitiate(webapp.RequestHandler):
  def get(self):

template_values = {'token': token,
   'me': user.user_id()
  }

taskqueue.add(url='/autobot', 
params={'key':game_key},queue_name='autobot')#creating the task and 
adding it to the queue
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))


class autobot(webapp.RequestHandler):
def post(self):
#  task logic goes here



application = 
webapp.WSGIApplication([('/botinitiate',botinitiate),('/autobot',autobot)],debug=True)


def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()


when i add the task using taskqueue.add() function it adds the task to the 
queue and it waits for the task to complete and then it executes the 
following statements after finishing the task. Am i doing anything wrong 
here? Can you provide me a code sample that does this functionality?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/ryC-ZgsXhLcJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Even the HR Datastore is (slightly) having performance issue now.

2011-09-07 Thread Pol
Great to see the problem acknowledged, so why is the HDR line still
all green at http://code.google.com/status/appengine?

The HRD is having problems now (yes, not as bad pas a MS problems, but
that's beside the point as the expectancies have been officially
raised quite a bit for HRD), non-negligible problems, officially
acknowledged problems, so not putting it in the status page is
deceptive to say the least.

That line ought to be orange.

On Sep 6, 11:43 am, "Gregory D'alesandre"  wrote:
> Hello All,
>
> This is an issue right now related to higher latency on HRD, particularly
> affecting queries.  We are working on potential fixes to mitigate the issue.
>  Once we have determined the full scope of it, we will provide further
> information.  This is not expected behavior for HRD and is indeed a recent
> issue, it has *not* been a slow steady increase based on load or a
> fundamental issue with the way HRD is built.  The issue with M/S was that it
> heavily relied on a fundamentally inconsistent piece of infrastructure, this
> is not true with HRD.
>
> Greg
>
> On Tue, Sep 6, 2011 at 9:17 AM, Jason Collins 
> wrote:
>
>
>
>
>
>
>
> > Those trends are concerning. We're putting a large effort in to
> > convert our app over to HR. Performance consistency is the only reason
> > we're doing this.
> > j
>
> > On Sep 6, 7:57 am, Mike Wesner  wrote:
> > > Thanks for putting those together.  It very clearly shows that
> > > recently things have changed.
>
> > > It would be nice to hear from Greg or someone about this.
>
> > > -Mike
>
> > > On Sep 6, 7:11 am, Simon Knott  wrote:
>
> > > > I've attached graphs showing the daily stats for each of the HR
> > operations
> > > > for the last year, driven from the GAE Status stats.
> > > > I'll grab the M/S datastore statistics, when I get the time, to give a
> > > > comparison.
>
> > > > <
> >https://lh4.googleusercontent.com/-MV_ixL3Jz0Y/TmYNsX9QEGI/AF...>
>
> > > > <
> >https://lh4.googleusercontent.com/-6yrWNd7wfxU/TmYNoldrFWI/AF...>
>
> > > > <
> >https://lh6.googleusercontent.com/-NiRHqyRtbro/TmYNgZLeRXI/AF...>
>
> > > > <
> >https://lh3.googleusercontent.com/-WGYYZUzXiAg/TmYNk35ZztI/AF...>
>
> > > > <
> >https://lh5.googleusercontent.com/-5GRqG-Sy17A/TmYN7E7C60I/AF...>
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine" group.
> > To post to this group, send email to google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine?hl=en.

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



Re: [google-appengine] Sample for Push Queues

2011-09-07 Thread Hariprasath Mohankumar
Hi Robert,
  this is happening in the dev server.  The code is 
as follows.


class botinitiate(webapp.RequestHandler):
  def get(self):

# some more statements here
template_values = {'token': token,
   'me': user.user_id()
  }

taskqueue.add(url='/autobot', 
params={'key':game_key},queue_name='autobot')#creating the task and 
adding it to the queue
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))


class autobot(webapp.RequestHandler):
def post(self):
#  task logic goes here



application = 
webapp.WSGIApplication([('/botinitiate',botinitiate),('/autobot',autobot)],debug=True)


def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()


when i add the task using taskqueue.add() function it adds the task to the 
queue and it waits for the task to complete and then it executes the 
following statements after finishing the task. Am i doing anything wrong 
here? Can you provide me a code sample that does this functionality?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/kBBWcbx9GWcJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Error at running application version after deploy - Classes cannot be found

2011-09-07 Thread Ice13ill
We tried another deploy, just a few moments ago... but still the
problem persists. \
It is strange that no one else has encountered this situation... Or is
there another thread with a similar subject ?

On Sep 7, 4:32 pm, Renan Mobile  wrote:
> When i did an operation at first time the class always wasn't found. I don't
> know what to do and i have to deploy a new version in the next 2 hours.
> I trust on google a lot and i'm very worry because it's a critical problem
> on my application. I need to deploy a new version to fix a bug.
> Thank you Alexandru for reporting this bug so fast. And if you have any
> news, post it please.
> Em 07/09/2011 10:22, "Alexandru Farcaș" 
> escreveu:

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



[google-appengine] Re: Error at running application version after deploy - Classes cannot be found

2011-09-07 Thread Ice13ill
I want to add that on local development server everything is ok.

On Sep 7, 6:25 pm, Ice13ill  wrote:
> We tried another deploy, just a few moments ago... but still the
> problem persists. \
> It is strange that no one else has encountered this situation... Or is
> there another thread with a similar subject ?
>
> On Sep 7, 4:32 pm, Renan Mobile  wrote:
>
>
>
>
>
>
>
> > When i did an operation at first time the class always wasn't found. I don't
> > know what to do and i have to deploy a new version in the next 2 hours.
> > I trust on google a lot and i'm very worry because it's a critical problem
> > on my application. I need to deploy a new version to fix a bug.
> > Thank you Alexandru for reporting this bug so fast. And if you have any
> > news, post it please.
> > Em 07/09/2011 10:22, "Alexandru Farcaș" 
> > escreveu:

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



Re: [google-appengine] Re: Error at running application version after deploy - Classes cannot be found

2011-09-07 Thread Renan Mobile
I'm just waiting for a official google answer or a solution. That's
frustrate me, i fix my application bug, but i cant deploy it.

Atenciosamente,

-
Presidente Renan Franca

Renan Mobile ltda: http://renanmobile.com - Soluções em Dispositivos Móveis
(Smartphones) com integração via web.
Soluções em:
Android (Smartphones);
Google Web Toolkit (Web);



2011/9/7 Ice13ill 

> I want to add that on local development server everything is ok.
>
> On Sep 7, 6:25 pm, Ice13ill  wrote:
> > We tried another deploy, just a few moments ago... but still the
> > problem persists. \
> > It is strange that no one else has encountered this situation... Or is
> > there another thread with a similar subject ?
> >
> > On Sep 7, 4:32 pm, Renan Mobile  wrote:
> >
> >
> >
> >
> >
> >
> >
> > > When i did an operation at first time the class always wasn't found. I
> don't
> > > know what to do and i have to deploy a new version in the next 2 hours.
> > > I trust on google a lot and i'm very worry because it's a critical
> problem
> > > on my application. I need to deploy a new version to fix a bug.
> > > Thank you Alexandru for reporting this bug so fast. And if you have any
> > > news, post it please.
> > > Em 07/09/2011 10:22, "Alexandru Farcaș" 
> > > escreveu:
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



Re: [google-appengine] Spike into my Idle Instance every 2hours

2011-09-07 Thread Joshua Smith
Yikes.  Have you tried the obvious thing of pasting the various other graphs 
over the instances graph to see if there is any correlation?  If there is an 
every-two-hour spike in your traffic, that would explain it.  (For example, if 
you have some AJAX or RSS or something out there which updates every two hours, 
and tends to get synchronized among users because of latency trends.)  A very 
tiny spike in active instances will see a 15 minute echo in the idle instances.

On Sep 7, 2011, at 11:16 AM, Sahid Orentino Ferdjaoui wrote:

> Hello,
> 
> Every 2 hours I have a spike into my Idle instances and i don't understand 
> why? My actives instances are normals...
> Someone can help me to understand that?
> 
> http://i.imgur.com/GZHbZ.png
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/google-appengine/-/XDzm41EqFdoJ.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.

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



Re: [google-appengine] Re: New appengine pricing

2011-09-07 Thread swf...@gmail.com
thanks for following this up.

I had two apps on app engine.  One was a simple app I used to run soccer
result prediction leagues for some friends -- only a handful of users.   I
used this as an opportunity to learn how app engine works etc.

The other app was providing real time public transport information for
Ottawa's buses.   This app has been in limbo since the beginning of the
year, since OC Transpo switched off the feed of the live bus data.
Ironically, the same day Google announced the new app pricing, OC Transpo
announced that the live bus data feed should be back in a couple of months.

Both of these apps were primarily an opportunity for me to learn app engine.
 I am a software consultant by profession and am hoping to do work with some
non-profits in the future -- app engine seemed a good choice as a
replacement for many of these organizations applications.

However, neither of these apps is worth me paying $30 a month, given I can
run them from home on my own server for essentially nothing.   Sure, if
usage on the bus data app goes up then I may re-consider app engine.
However, had the current pricing been in place initially I would never have
bothered with it in the first place.   Further, given that I will probably
use django for any future apps I'm more likely to go and find a hosting
service for django apps, rather than have to port my apps to app engine.

I hope you understand my position on this and recognize that your pricing
changes is likely to impact adoption of app engine in a negative way.

John

On Wed, Aug 31, 2011 at 6:16 PM, psm  wrote:

> i'm sorry to see you go.  our previous free app levels allowed for quite
> significant web sites to run for free.  which is nice, of course, but not
> tenable.  i don't think $30/month total operating cost for this service is
> too much for you to pay for running the service you describe, and i'm sorry
> to hear you think the service isn't worth that much to you.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/oD_qKZE_JNsJ.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



[google-appengine] Re: Why app engine new price model is totally wrong

2011-09-07 Thread will

This is very good information.  Any pointer in utilizing Anycast?  Any
VPS support it?



On Sep 7, 2:53 am, Andrew Cassidy  wrote:
> I wasn't trying to say 'You can replicate GAE on AWS trivially", GAE is a
> massive beast that does one thing in particular that I haven't experimented
> with yet: automatically creating and destroying running instances. I was
> trying to say you could host your own scaling application on any
> infrastructure you like with a little know how.
>
> You can host in multiple data centers using Anycast addresses, you can
> round-robin your load balancers using clusterip or DNS, you can handle load
> balancer failures using basic ip failover mechanisms.
>
> As long as you use some form shared storage backend for session data, such
> as memcache, you don't have to worry about sticky sessions on the load
> balanacers.
>
> I have a working prototype on a basic testing network using (nothing amazon
> here)
>
>    - nginx as the load balancer and to serve static content
>    - uwsgi container for the applications
>    - mysql cluster for redundant data storage
>    - mysql proxy to load balance across the database servers without any
>    code modification
>    - memcached for session storage and output caching
>    - corosync/pacemaker for ip failover
>    - rabbitmq/celery for task queueing
>
> As I say, it's only a working prototype, and in most cases you could host a
> smallish application on a smallish vps anywhere. Most VPS providers now
> provide fault-tolerance and failover as standard. I'm moving my application
> to one such host.
>
> Using AWS for fault-tolerance, I just read this blog 
> post:http://blog.rightscale.com/2008/03/26/setting-up-a-fault-tolerant-sit...
>
> If anyone wants to fund an experiment on setting up an application on AWS
> I'd be more than happy to try it.

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



[google-appengine] Re: the min instace time is 24 hours?

2011-09-07 Thread Tammo Freese
Hi Jon,


again, thanks for your answer, and sorry for bothering you with new
questions. This would be so much easier in face-to-face conversation
than with email. If you would like a Google hangout, just drop me an
email off-list.

On Sep 7, 4:49 pm, Jon McAlister  wrote:
> On Wed, Sep 7, 2011 at 7:20 AM, Tammo Freese  wrote:
> > so total-instances is the maximum of active-instances over the last 15
> > minutes?
>
> Not really, no.

So what is total-instances then? I know, that sounds like a dumb
question. At first assumed that in second x, it would simply be the
number of instances (active+idle) in that second (total instances as I
understand it). But in one of your posts, you wrote "total-instances
refers to the blue line on the graph, and is computed according to the
+15-minutes-since-last-request formula".


> > Let's say I have 4 active instances for 5 minutes, then no traffic for
> > the rest of the day, max-idle-instances set to 1.
> > 1) 35 minutes will be billed regardless when the scheduler decides to
> > kill idle instances, right?
>
> Yes.
>
> > 2) But 1 instance would be idle for at least 15 minutes, right?
>
> Maybe.

[...]

> > Let's say I have 4 active instances for 5 minutes, then no traffic for
> > the rest of the day, max-idle-instances set to 4.
> > 1) 80 minutes will be billed regardless when the scheduler decides to
> > kill idle instances, right?
>
> Yes.
>
> > 2) But 4 instances would be idle for at least 15 minutes, right?
>
> Maybe.

So setting max-idle-instances to 4 leads to being reliably billed
more, but not having any reliable way of measuring the benefit?


Thanks,

Tammo

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



Re: [google-appengine] Re: the min instace time is 24 hours?

2011-09-07 Thread Tim


On Wednesday, 7 September 2011 15:46:21 UTC+1, Jon McAlister wrote:
>
> Understood. And again, apologies. We mean well, we messed up, we're
> working on it.
>
> > An authoritative explanation of the intent (there's that word again Greg) 
> of
> > the scheduler / billing logic would be more than welcome and may reduce 
> the
> > gap between why you guys think the pricing is reasonable and many of us 
> in
> > here think it's not.
>
> Agreed. The system is large and complex, its hard to understand and
> hard to explain. Ultimately I am confident that everyone can find a
> reasonable outcome but trying to work through these things at scale
> (i.e. helping hundreds of thousands of developers to change something
> simultaneously) is quite difficult, practically impossible. We're
> working on it.
>
 OK, so that's made me much happier, thanks Jon.

I know how hard it can be to explain such things without leaving room for 
misconceptions to form (had similar experiences designing a system and 
scheduler for a lazy ticking memoising computational grid for tens of 
thousands of machines), but maybe some worked examples of how you intend the 
billing to work for certain scenarios might help ?

eg "app has busy bursts and then nothing", "app has busy bursts and then 
ticks along normally until next burst", "app has 'swells' (gradual ramp up 
and ramp down of traffic over an hour or two)", "asymmetric bursts (like a 
bell curve with skews)"

I'm willing to accept that the scheduler is always going to making guesses, 
but things like the fact that you're basing billing of "Instance hours" on a 
notional level of service which should be less than the "actual" instance 
hours suggests to me that the intent is to let you tweak the parameters of 
the opportunistic apsects of the scheduler without changing the user 
experience of billing for every such tweak (say deciding to keep the true 
idle instances active for different periods in excess of 15 minutes 
depending on time of day to avoid repeated reloads, but such changes won't 
affect the bills), which sounds more in line with your PaaS aspirations.

So, based on that understanding of what you're doing, I'm going to take the 
time I was spending looking at options elsewhere and put it into moving my 
data onto HR so I can then switch to python 2.7 with concurrent requests, 
and then see how the out-of-preview works in practice for my app.

Cheers

--
Tim

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/guF1P8yyofkJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: Error at running application version after deploy - Classes cannot be found

2011-09-07 Thread Johan Euphrosine
Please fill a production issue with your app_id, if this is affecting
your application:
http://code.google.com/p/googleappengine/issues/entry?template=Production%20issue

On Wed, Sep 7, 2011 at 5:35 PM, Renan Mobile
 wrote:
> I'm just waiting for a official google answer or a solution. That's
> frustrate me, i fix my application bug, but i cant deploy it.
> Atenciosamente,
>
> -
> Presidente Renan Franca
> 
> Renan Mobile ltda: http://renanmobile.com - Soluções em Dispositivos Móveis
> (Smartphones) com integração via web.
> Soluções em:
>     Android (Smartphones);
>     Google Web Toolkit (Web);
>
>
>
> 2011/9/7 Ice13ill 
>>
>> I want to add that on local development server everything is ok.
>>
>> On Sep 7, 6:25 pm, Ice13ill  wrote:
>> > We tried another deploy, just a few moments ago... but still the
>> > problem persists. \
>> > It is strange that no one else has encountered this situation... Or is
>> > there another thread with a similar subject ?
>> >
>> > On Sep 7, 4:32 pm, Renan Mobile  wrote:
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > > When i did an operation at first time the class always wasn't found. I
>> > > don't
>> > > know what to do and i have to deploy a new version in the next 2
>> > > hours.
>> > > I trust on google a lot and i'm very worry because it's a critical
>> > > problem
>> > > on my application. I need to deploy a new version to fix a bug.
>> > > Thank you Alexandru for reporting this bug so fast. And if you have
>> > > any
>> > > news, post it please.
>> > > Em 07/09/2011 10:22, "Alexandru Farcaș" 
>> > > escreveu:
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>



-- 
Johan Euphrosine (proppy)
Developer Programs Engineer
Google Developer Relations

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



Re: [google-appengine] Re: the min instace time is 24 hours?

2011-09-07 Thread Jon McAlister
On Wed, Sep 7, 2011 at 9:02 AM, Tim  wrote:
>
>
> On Wednesday, 7 September 2011 15:46:21 UTC+1, Jon McAlister wrote:
>>
>> Understood. And again, apologies. We mean well, we messed up, we're
>> working on it.
>>
>> > An authoritative explanation of the intent (there's that word again
>> > Greg) of
>> > the scheduler / billing logic would be more than welcome and may reduce
>> > the
>> > gap between why you guys think the pricing is reasonable and many of us
>> > in
>> > here think it's not.
>>
>> Agreed. The system is large and complex, its hard to understand and
>> hard to explain. Ultimately I am confident that everyone can find a
>> reasonable outcome but trying to work through these things at scale
>> (i.e. helping hundreds of thousands of developers to change something
>> simultaneously) is quite difficult, practically impossible. We're
>> working on it.
>
>  OK, so that's made me much happier, thanks Jon.

I'm really glad to hear that!

> I know how hard it can be to explain such things without leaving room for
> misconceptions to form (had similar experiences designing a system and
> scheduler for a lazy ticking memoising computational grid for tens of
> thousands of machines), but maybe some worked examples of how you intend the
> billing to work for certain scenarios might help ?
> eg "app has busy bursts and then nothing", "app has busy bursts and then
> ticks along normally until next burst", "app has 'swells' (gradual ramp up
> and ramp down of traffic over an hour or two)", "asymmetric bursts (like a
> bell curve with skews)"

I think that is an excellent idea.

> I'm willing to accept that the scheduler is always going to making guesses,
> but things like the fact that you're basing billing of "Instance hours" on a
> notional level of service which should be less than the "actual" instance
> hours suggests to me that the intent is to let you tweak the parameters of
> the opportunistic apsects of the scheduler without changing the user
> experience of billing for every such tweak (say deciding to keep the true
> idle instances active for different periods in excess of 15 minutes
> depending on time of day to avoid repeated reloads, but such changes won't
> affect the bills), which sounds more in line with your PaaS aspirations.

Exactly. The other thing that happens is that this imprecision allows
us to paper-over internal infrastructure details. As an example, when
we automatically move an app across datacenters (because of weather,
power, maintenance), the right thing to do is actually run instances
in both the source and destination datacenters at the same time during
the transition. But we don't want to charge developers for this
doubling, that would be wrong. By having the billing formula respect
max-idle-instances as a hard ceiling, we do the right thing here and
eat these costs ourselves.

> So, based on that understanding of what you're doing, I'm going to take the
> time I was spending looking at options elsewhere and put it into moving my
> data onto HR so I can then switch to python 2.7 with concurrent requests,
> and then see how the out-of-preview works in practice for my app.

Glad to hear!

> Cheers
> --
> Tim
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/guF1P8yyofkJ.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



Re: [google-appengine] Re: the min instace time is 24 hours?

2011-09-07 Thread Jon McAlister
On Wed, Sep 7, 2011 at 8:56 AM, Tammo Freese  wrote:
> Hi Jon,
>
>
> again, thanks for your answer, and sorry for bothering you with new
> questions. This would be so much easier in face-to-face conversation
> than with email. If you would like a Google hangout, just drop me an
> email off-list.
>
> On Sep 7, 4:49 pm, Jon McAlister  wrote:
>> On Wed, Sep 7, 2011 at 7:20 AM, Tammo Freese  wrote:
>> > so total-instances is the maximum of active-instances over the last 15
>> > minutes?
>>
>> Not really, no.
>
> So what is total-instances then? I know, that sounds like a dumb
> question. At first assumed that in second x, it would simply be the
> number of instances (active+idle) in that second (total instances as I
> understand it). But in one of your posts, you wrote "total-instances
> refers to the blue line on the graph, and is computed according to the
> +15-minutes-since-last-request formula".

Right. The way the total-instances-rate (the blue line) is computed is
from all running instances that have received a request at any point
in the last 15 minutes. This however is not equal to the line you
proposed, the line which is the maximum value of active-instances-rate
over the last 15 minutes. Look at any app's instances graph and you
will be able to see this visually right away.

>
>
>> > Let's say I have 4 active instances for 5 minutes, then no traffic for
>> > the rest of the day, max-idle-instances set to 1.
>> > 1) 35 minutes will be billed regardless when the scheduler decides to
>> > kill idle instances, right?
>>
>> Yes.
>>
>> > 2) But 1 instance would be idle for at least 15 minutes, right?
>>
>> Maybe.
>
> [...]
>
>> > Let's say I have 4 active instances for 5 minutes, then no traffic for
>> > the rest of the day, max-idle-instances set to 4.
>> > 1) 80 minutes will be billed regardless when the scheduler decides to
>> > kill idle instances, right?
>>
>> Yes.
>>
>> > 2) But 4 instances would be idle for at least 15 minutes, right?
>>
>> Maybe.
>
> So setting max-idle-instances to 4 leads to being reliably billed
> more, but not having any reliable way of measuring the benefit?

The benefit should be visible in terms of average serving latency and
reliability. There should be 4 idle instances running over the time
period you proposed, but there is not a hard guarantee of this.

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

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



Re: [google-appengine] More HR Refactoring

2011-09-07 Thread Joshua Smith
Another thought: The reason I was doing only one meeting per request was 
because of the old 30 second limit on crons.  But cron handlers can be 10 
minutes now, which is plenty of time to schedule all the meetings.  Therefore, 
I suppose I could do this, right?

now = datetime.datetime.now()
for schedule in db.get(db.gql("SELECT __key__ FROM ScheduleModel WHERE next 
!= :1 AND next < :2", None, now)):
  if schedule.next and schedule.next < now:
schedule.cronAuto()

Is wrapping a GET around a KEYS-ONLY query guaranteed to get me the real-deal 
results (except, of course, for the fact that the index might be out-of-date, 
so I might miss recent changes to who is in/out of the query parameters)?  Is 
this an efficient way to express this, or should I be doing a fetch() on the 
gql first?

It seems like it's possible to use a technique like this to get a 
more-consistent result in cases where that's desirable.  It at least would get 
you a consistent data for a subset of things matching your query.  In 
principle, you could even re-sort the results if there is an ORDER clause.  
Seems like this would be something useful in the db API...

-Joshua

On Sep 7, 2011, at 11:18 AM, Joshua Smith wrote:

> 
> I'm trying to port my existing M/S app to HR because I have a gun to my head 
> with "Threaded Python Only for HR Apps" written on the bullets.
> 
> My system will schedule meetings automatically.  Scheduling a meeting can 
> take some time, because a bunch of records are created, and a bunch of emails 
> need to go out.  So the code to schedule one looked like this:
> 
> class MeetingAutoHandler(webapp.RequestHandler):
>  def get(self):
>schedule = ScheduleModel.gql("WHERE next != :1 AND next < :2", None, 
> datetime.datetime.now()).get()
>if schedule:
>  schedule.cronAuto()
>  taskqueue.add(url='/admin/meetingAuto', method='GET', countdown=1)
> 
> The query looks for a schedule object that needs a meeting to to be scheduled 
> now.  There might be a few of these when the cron runs.  So it does the hard 
> work for one of them (in cronAuto()), and schedules another call to itself to 
> get the next one using the task queue.
> 
> This isn't going to work in HR because that query is going to keep finding 
> the same meeting.  I could trivially tweak this by setting the countdown=60, 
> but I've yet to hear any of our google overlords commit to a maximum value of 
> when "eventually" happens in "eventually consistent".  I presume there might 
> be cases, like during data center transitions, when "eventually" could be a 
> very long time indeed.  It is essentially unbounded.  Right?
> 
> But I like the pattern I'm using here, and I'm trying to change as little 
> code as possible, so I want to put together a HR-resilient version.  Here's 
> what I came up with:
> 
> class MeetingAutoHandler(webapp.RequestHandler):
>  def get(self):
>now = datetime.datetime.now()
>for s in db.gql("SELECT __key__ FROM ScheduleModel WHERE next != :1 AND 
> next < :2", None, now):
>  schedule = db.get(s)
>  if schedule.next and schedule.next < now:
>schedule.cronAuto()
>taskqueue.add(url='/admin/meetingAuto', method='GET', countdown=5)
>return
> 
> So I'm doing a keys-only query and then doing a get() on the key.  (I've 
> never done a keys-only GQL query before, but I think I got it right.  Note to 
> google: There should be an option to Model.gql() to do keys-only queries!)
> 
> The way I understand HR, that get is going to get the real Model, which might 
> not meet the criteria in the gql, because the index might be out of date.  
> Right?
> 
> So I check that the model meets the criteria that I just specified.  (Note to 
> google: It'd be cool if there was a way to test an object against a query, so 
> I don't have to write the same code twice!)
> 
> Finally, I pushed the next task out a bit, to make it less likely that I'll 
> have to look at the same objects over and over.
> 
> So what do you think?  Any suggestions?  (I have a couple things that work 
> this way, so I want to choose a good design pattern to apply to each of them.)
> 
> The complexity would be lessened if I could to this:
> 
> class MeetingAutoHandler(webapp.RequestHandler):
>  def get(self):
>q = ScheduleModel.gql_keys_only("WHERE next != :1 AND next < :2", None,  
> datetime.datetime.now())
>for s in  q:
>  schedule = db.get(s)
>  if q.matches(schedule):
>schedule.cronAuto()
>taskqueue.add(url='/admin/meetingAuto', method='GET', countdown=5)
>return
> 
> This would require two changes: the db.Model would need to support 
> gql_keys_only (that's probably trivial); GqlQuery would need a matches() 
> method (that's probably not trivial).
> 
> It's still a few more lines, but the complexity is about the same as the old 
> one.
> 
> Worth the trouble of a couple feature request issues?
> 
> -Joshua
> 
> -- 
> You received this message because you are s

Re: [google-appengine] Will you prohibit to keep the free instance up and running permanently? Or is it a best practice now?

2011-09-07 Thread Jon McAlister
Hi Per,

I'm going to make a wild guess here and assume you are using the High
Replication Datastore. Apps which have selected this are presently
running on a set of machines that have the properties you describe.
Rather than having idle instance processes evicted after some number
of minutes, they hang around for hours. This is because of the present
ratio of cpu to memory pressure on those machines; essentially, it's a
by-product of the present supply and demand for that subset of apps
and machines.

It will certainly change but probably not for several months yet.
Eventually it will have the same behavioral patterns as you see for
M/S-D apps.

If you'd like to keep one instance up always though, when the billing
rollout is complete you'll be able to set min-idle-instances=1.

On Wed, Sep 7, 2011 at 4:56 AM, Per  wrote:
> Hi,
>
> I just disabled the "always on" option for my QA application, wanting
> to experiment with the new pricing model. Instead, I set the max-idle
> to 1, and I defined a 300ms latency in the application settings. The
> QA box is rarely used, but since the Cron-Jobs keep running every 5
> minutes to clean up stuff, there was always some base load.
>
> I checked out the stats, and it turns out there was always one
> instance up in the past 24 hours, and the currently active instance is
> 11h old. That's perfect for me: the less instance restarts we have,
> the faster the app will react (since startup takes some 5 to 10
> seconds). Overall, this QA box cost me a mere 1ct under the new
> pricing. Great news!
>
> Is this too good to be true? When App Engine started out, new
> instances got killed after 60seconds, and it was officially prohibited
> to ping instances to keep it alive. Will that happen again? Or is it
> fine to consume the free 1 instance permanently?
>
> Cheers,
> Per
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



Re: [google-appengine] Re: Billing history stopped 5 day ago

2011-09-07 Thread Jon McAlister
We're working on it.

On Wed, Sep 7, 2011 at 4:44 AM, Per  wrote:
> Same problem here. Two of my apps are stuck 5 days ago. But the one
> that I disabled the always-on option is showing a 2 day old billing,
> and that's actually already taking into account my change in the
> billing (new pricing==1 cent, but only because it's my QA environment
> that's pretty idle). Maybe you have to change the pricing a little bit
> to kick off the job for the billing history.
>
>
> Cheers,
> Per
>
>
>
> On Sep 7, 11:51 am, Alex Popescu  wrote:
>> In the light of the new billing details, I've made some changes to the Max
>> Idle Instances and Min Pending Latency (as per the optimization
>> documentation) just to see how these would reflect in my bill. Anyways my
>> billing history has stopped 5 days ago on Sept. 2nd.
>>
>> I'm really confused on how to proceed right now. I know that I have to get
>> ready for the moment the new pricing becomes effective, but if I don't have
>> the tools to estimate my costs and understand what optimizations I can do,
>> then I don't seem to be left with much to do.
>>
>> Could anyone clarify why billing history has stopped? Also, how soon changes
>> to the above configurations would be reflected in the billing history?
>>
>> tia,
>>
>> A://
>>
>> PS: Application ID: twimblr. I do have other applications each with its own
>> different billing status (most recent being from Sept.5th, which is OKish).
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



Re: [google-appengine] Re: New appengine pricing

2011-09-07 Thread de Witte
Leaving the home box running for the entire day, will cost you more, and you 
have to monitor it on a regular basis.

Go to the setting page of your account, move those slider controls, disable 
billing, and you will do just fine. :-)

No need to touch your code.  

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/RQOZj15IVWEJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] GAE data store and Google Bigtable

2011-09-07 Thread Stephen
On Wed, Sep 7, 2011 at 3:32 PM, Bruce Aloe  wrote:
>
> I store some data in GAE data store and can not find any documents
> regarding the relation between GAE data store and Google Bigtable.

http://research.google.com/pubs/pub36971.html

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



Re: [google-appengine] Help Testing with --high_replication

2011-09-07 Thread Waldemar Kornewald
On Windows it's even worse because you can't easily kill the server
with CTRL+C. You have to kill it the hard way using CTRL+BREAK.

Also, with SDK 1.5.3 when running "manage.py shell" in Django-nonrel
(or any other command that loads stubs without starting the
dev_appserver) the following exception is shown on exit:

Exception AttributeError: "'NoneType' object has no attribute
'mkstemp'" in > ignored

That's all it says. There is no traceback. This actual exception is
raised in DataStoreFileStub.__WritePickled(). I don't know why the
tempfile module/global is None at that point. Something very strange
is happening there.

Bye,
Waldemar

On Tue, Sep 6, 2011 at 11:20 PM, Alfred Fuller
 wrote:
> Hmm. I have seen it work this way on my system. This is the function you
> need have
> invoked http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/datastore/datastore_stub_util.py#1785
> Does it work when you call Flush manually?
>
> On Tue, Sep 6, 2011 at 12:03 PM, Joshua Smith 
> wrote:
>>
>> I don't think this is working the way you believe it is.
>> When I run:
>> dev_appserver.py --port=8902 --default_partition= --disable_static_caching
>> --high_replication .
>> and create a record, then stop with ^C, then start right back up, that
>> record is gone.
>> Note that ^C sends sigINT which is the same thing the STOP sign on the
>> launcher sends.
>> On Sep 6, 2011, at 1:45 PM, Alfred Fuller wrote:
>>
>> You would have to have code that only exists in your dev environment (or
>> just never gets called in production), that grabs the stub and calls the
>> function (see ext.testbed for examples of manipulating stubs). It would have
>> to be triggered by a special url that you would hit right before stopping
>> the server.
>> It is probably much much easier to just run the dev_appserver manually and
>> use ctrl-c to kill it.
>>
>> On Tue, Sep 6, 2011 at 10:27 AM, Joshua Smith 
>> wrote:
>>>
>>> How do I call Flush() on the stub manually?  Do I do this in my main.py
>>> someplace, somehow?
>>> On Sep 6, 2011, at 1:22 PM, Alfred Fuller wrote:
>>>
>>> Apparently not. I believe running the dev_appserver on a command line and
>>> hitting Ctrl-C will work. The trick is to have the datastore stub's
>>> destructor invoked, which doesn't happen if the app is hard stopped. You can
>>> also call Flush() on the stub manually.
>>>
>>> On Tue, Sep 6, 2011 at 10:10 AM, Joshua Smith 
>>> wrote:

 I've updated to 1.5.3, but I still have this problem.
 How do I "shut down gracefully"?  I'm shutting down by pressing the big
 red STOP button on the launcher.
 Is there another way?
 -Joshua
 On Sep 6, 2011, at 12:51 PM, Alfred Fuller wrote:

 If the dev_appserver is shut down gracefully, then you should not see
 this problem (as of 1.5.3).

 On Tue, Sep 6, 2011 at 8:40 AM, Joshua Smith 
 wrote:
>
> When I start with --high_replication to test on the dev appserver, I
> alway seem to be starting with a blank database.
>
> I found this issue:
>
> http://code.google.com/p/googleappengine/issues/detail?id=5305
>
> which sounds like the problem I'm having, except that it only has 7
> stars (including mine), and without being able to save my datastore across
> runs, debugging this thing is going to take FOREVER.  So I'm thinking that
> there must be a trick I don't know.
>
> I ordinarily use --datastore_path so that I don't lose all my data when
> I reboot my mac.
>
> I also have been using --default_partition= so I could access my data
> when they changed the sdk a few weeks ago.
>
> What is the right set of options to use when testing with
> --high_replication on the dev appserver, so that your data will be present
> across separate runs?
>
> -Joshua
>
> --
> You received this message because you are subscribed to the Google
> Groups "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>


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


 --
 You received this message because you are subscribed to the Google
 Groups "Google App Engine" group.
 To post to this group, send email to google-appengine@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.c

Re: [google-appengine] 1.5.4 SDK Prerelease

2011-09-07 Thread Gopal Patel
its preview , actual sdk is not out yet...

On Wed, Sep 7, 2011 at 8:40 PM, Muneer Malik  wrote:

> I see the SDK is being updated but eclipse plugin is still showing 1.5.2 ..
>
> any reason for that ?
>
> Thanks
>
> On Tue, Sep 6, 2011 at 2:20 PM, Johan Euphrosine wrote:
>
>> Hi everyone,
>>
>> Prerelease SDK for 1.5.4 is ready for testing, feel free to download
>> and give it a try for local verification:
>> http://code.google.com/p/googleappengine/downloads/list
>>
>> See release notes below.
>>
>> Happy testing!
>>
>> App Engine Python SDK - Release Notes
>>
>> Version 1.5.4
>> ===
>> - You can now specify the maximum size for a blob in create_upload_url().
>> - Zigzag merge join queries will now continue scanning up to the 30 second
>>  Datastore query deadline.  For zigzag queries that used to generate
>> NeedIndex
>>  errors, many will now succeed.  A small percentage will now instead
>> timeout.
>> - Added API functionality for making calls to the Memcache API
>> asynchronously.
>> - Fixed an issue that incorrectly allowed creation of tasks with
>> whitespace in
>>  the url.
>> - Fixed the error message for "transaction not found" to be more
>> descriptive.
>> - Fixed an issue where blobstore uploads didn't work in the SDK with the
>>  -a 0.0.0.0 flag set.
>> - Fixed an issue where --dry_run was broken for upload_data in
>> bulkload.py.
>> - Fixed an issue where db.Model().to_xml() incorrectly updated
>> auto-updating
>>  properties.
>>http://code.google.com/p/googleappengine/issues/detail?id=322
>> - Fixed an issue where the SDK didn't expand the '~' in a file path.
>>http://code.google.com/p/googleappengine/issues/detail?id=522
>> - Fixed an issue where is_saved() wasn't valid after db.Model.__init__.
>>http://code.google.com/p/googleappengine/issues/detail?id=844
>> - Fixed an issue where GQL IN queries with an empty list returned all
>> entities.
>>http://code.google.com/p/googleappengine/issues/detail?id=932
>> - Fixed an issue where the SDK's sqlite stub did not handle cursors on
>>  descending queries correctly.
>>http://code.google.com/p/googleappengine/issues/detail?id=3121
>> - Fixed a typo in the SDK's Datastore Stats generator message.
>>http://code.google.com/p/googleappengine/issues/detail?id=5425
>>
>> App Engine Java SDK - Release Notes
>>
>> Version 1.5.4
>> =
>> - You can now specify the maximum size for a blob in
>>  BlobstoreService.createUploadUrl().
>> - Zigzag merge join queries will now continue scanning up to the 30 second
>>  Datastore query deadline. For zigzag queries that used to generate
>>  DatastoreNeedIndexException, many will now succeed. A small percentage
>> will
>>  now instead timeout.
>> - The Prospective Search API is available in Java for all applications.
>> This API
>>  is still experimental, so applications will be limited to a maximum of
>> 1000
>>  subscriptions.
>> - We made a classloading improvement that we expect to help loading
>> request
>>  latencies for projects with large numbers of jars.
>> - Added support for the set_default_version flag to Appcfg.
>> - The Java Remote API now recognizes the HTTP_X_APPENGINE_INBOUND_APPID.
>> This
>>  means that the Datastore Admin copy functionality will work when using
>>  Java's Remote API with the destination app.
>> - Fixed an issue that incorrectly allowed creation of tasks with
>> whitespace in
>>  the url.
>> - Fixed the error message for "transaction not found" to be more
>> descriptive.
>> - Fixed an issue with the dev appserver's local Blobstore implementation
>> trying
>>  to modify an immutable collection.
>>http://code.google.com/p/googleappengine/issues/detail?id=3081
>> - Fixed an SDK issue where CONFIG, FINE, FINER, FINEST logging messages
>> were not
>>  displayed.
>>http://code.google.com/p/googleappengine/issues/detail?id=4591
>> --
>> Johan Euphrosine (proppy)
>> Developer Programs Engineer
>> Google Developer Relations
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>>
>
>
> --
> Confidentiality Notice
> ---
>
>
> THIS INFORMATION IS INTENDED ONLY FOR THE USE OF THE ADDRESSEE AND MAY
> CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM
> DISCLOSURE UNDER APPLICABLE LAW.  IF YOU ARE NOT THE INTENDED RECIPIENT, OR
> THE EMPLOYEE OR AGENT RESPONSIBLE FOR DELIVERING THIS MESSAGE TO THE
> INTENDED RECIPIENT, YOU ARE HEREBY NOTIFIED THAT ANY DISSEMINATION,
> DISTRIBUTION OR COPYING OF THE COMMUNICATION IS STRICTLY PROHIBITED.  IF YOU
> HAVE RECEIVED THIS COMMUNICATION IN ERROR, PLEASE NOTIFY IMMEDIATELY AT
> tutti...@gmail.com OR BY TELEPHO

[google-appengine] Re: New App Engine Pricing... $1411/yr without processing a single request??

2011-09-07 Thread stevep
Greg,

Can you formulate a reason why the minimum of 3 instances should be
left on given The Scheduler's new role?

I had though "min 3" an artifact of the old $9/mn plan, and that
anyone with a low-volume site looking for minimum pricing would set
max idle to 1, and then vary latency slider according to how much he/
she wants users to be affected by new spinups should a burst of
traffic hit the site.

Thanks,
stevep

On Sep 6, 8:45 pm, "Gregory D'alesandre"  wrote:
> I think we've tracked the bug down.  We are currently treating Always-On as
> if it is 3 min idle instances.  When you try to set Max Idle instances to
> less than 3 (which wouldn't make much sense if you had known you had set min
> idle instances to 3), the Admin Console doesn't let you and (unfortunately)
> doesn't give a good error as to why.  So, you can set it to 3, but as long
> as Always-On is still on it won't let you set it to less than that.
>
> We'll see if we can figure out a way around this...
>
> Sorry about that!
>
> Greg

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



Re: [google-appengine] Re: Why I think it's the time to leave GAE.

2011-09-07 Thread de Witte


I didn't merge entities together because it will make my code hard to 
understand and maintain. The max entity size also prevented me to do this.


You keep the entities because you will need them to do the queries, in order 
to build a page entity. A 'page' entity is a cache object which you store in 
the datastore, memcache and local cache. If they become too big, then create 
more small ones. 

So if someone visits your page, you only need one read. It is a great design 
pattern for apps such as yours.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/odUljqyV7McJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: New appengine pricing

2011-09-07 Thread swf...@gmail.com
The home box is running anyway.

But thanks for the advice about the sliders.  I will take a look.

John
On Sep 7, 2011 10:33 AM, "de Witte"  wrote:
> Leaving the home box running for the entire day, will cost you more, and
you
> have to monitor it on a regular basis.
>
> Go to the setting page of your account, move those slider controls,
disable
> billing, and you will do just fine. :-)
>
> No need to touch your code.
>
> --
> You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
> To view this discussion on the web visit
https://groups.google.com/d/msg/google-appengine/-/RQOZj15IVWEJ.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.
>

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



[google-appengine] Re: How deployments influence instance hours?

2011-09-07 Thread Brandon Thomson
I asked about this in the old billing FAQ thread but I don't think there was 
an official reply. My guess is that each deploy will cost 5-8c per running 
instance due to the restarts either way you do it (but I haven't tested it).

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/sK2DBWZfEwsJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: 1.5.4 SDK Prerelease

2011-09-07 Thread Strom
This is the 1.5.4 preview. 1.5.3 has been our for a while. As Gopal
Patel said, eclipse plugin is still on 1.5.2.

On Sep 7, 7:42 pm, Gopal Patel  wrote:
> its preview , actual sdk is not out yet...
>
>
>
>
>
>
>
> On Wed, Sep 7, 2011 at 8:40 PM, Muneer Malik  wrote:
> > I see the SDK is being updated but eclipse plugin is still showing 1.5.2 ..
>
> > any reason for that ?
>
> > Thanks
>
> > On Tue, Sep 6, 2011 at 2:20 PM, Johan Euphrosine wrote:
>
> >> Hi everyone,
>
> >> Prerelease SDK for 1.5.4 is ready for testing, feel free to download
> >> and give it a try for local verification:
> >>http://code.google.com/p/googleappengine/downloads/list
>
> >> See release notes below.
>
> >> Happy testing!
>
> >> App Engine Python SDK - Release Notes
>
> >> Version 1.5.4
> >> ===
> >> - You can now specify the maximum size for a blob in create_upload_url().
> >> - Zigzag merge join queries will now continue scanning up to the 30 second
> >>  Datastore query deadline.  For zigzag queries that used to generate
> >> NeedIndex
> >>  errors, many will now succeed.  A small percentage will now instead
> >> timeout.
> >> - Added API functionality for making calls to the Memcache API
> >> asynchronously.
> >> - Fixed an issue that incorrectly allowed creation of tasks with
> >> whitespace in
> >>  the url.
> >> - Fixed the error message for "transaction not found" to be more
> >> descriptive.
> >> - Fixed an issue where blobstore uploads didn't work in the SDK with the
> >>  -a 0.0.0.0 flag set.
> >> - Fixed an issue where --dry_run was broken for upload_data in
> >> bulkload.py.
> >> - Fixed an issue where db.Model().to_xml() incorrectly updated
> >> auto-updating
> >>  properties.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=322
> >> - Fixed an issue where the SDK didn't expand the '~' in a file path.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=522
> >> - Fixed an issue where is_saved() wasn't valid after db.Model.__init__.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=844
> >> - Fixed an issue where GQL IN queries with an empty list returned all
> >> entities.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=932
> >> - Fixed an issue where the SDK's sqlite stub did not handle cursors on
> >>  descending queries correctly.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=3121
> >> - Fixed a typo in the SDK's Datastore Stats generator message.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=5425
>
> >> App Engine Java SDK - Release Notes
>
> >> Version 1.5.4
> >> =
> >> - You can now specify the maximum size for a blob in
> >>  BlobstoreService.createUploadUrl().
> >> - Zigzag merge join queries will now continue scanning up to the 30 second
> >>  Datastore query deadline. For zigzag queries that used to generate
> >>  DatastoreNeedIndexException, many will now succeed. A small percentage
> >> will
> >>  now instead timeout.
> >> - The Prospective Search API is available in Java for all applications.
> >> This API
> >>  is still experimental, so applications will be limited to a maximum of
> >> 1000
> >>  subscriptions.
> >> - We made a classloading improvement that we expect to help loading
> >> request
> >>  latencies for projects with large numbers of jars.
> >> - Added support for the set_default_version flag to Appcfg.
> >> - The Java Remote API now recognizes the HTTP_X_APPENGINE_INBOUND_APPID.
> >> This
> >>  means that the Datastore Admin copy functionality will work when using
> >>  Java's Remote API with the destination app.
> >> - Fixed an issue that incorrectly allowed creation of tasks with
> >> whitespace in
> >>  the url.
> >> - Fixed the error message for "transaction not found" to be more
> >> descriptive.
> >> - Fixed an issue with the dev appserver's local Blobstore implementation
> >> trying
> >>  to modify an immutable collection.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=3081
> >> - Fixed an SDK issue where CONFIG, FINE, FINER, FINEST logging messages
> >> were not
> >>  displayed.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=4591
> >> --
> >> Johan Euphrosine (proppy)
> >> Developer Programs Engineer
> >> Google Developer Relations
>
> >> --
> >> You received this message because you are subscribed to the Google Groups
> >> "Google App Engine" group.
> >> To post to this group, send email to google-appengine@googlegroups.com.
> >> To unsubscribe from this group, send email to
> >> google-appengine+unsubscr...@googlegroups.com.
> >> For more options, visit this group at
> >>http://groups.google.com/group/google-appengine?hl=en.
>
> > --
> > Confidentiality Notice
> > ---
>
> > THIS INFORMATION IS INTENDED ONLY FOR THE USE OF THE ADDRESSEE AND MAY
> > CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM
> > DISCLOSURE UNDER APPLICABLE LAW.  IF YOU ARE NOT THE I

[google-appengine] Re: 1.5.4 SDK Prerelease

2011-09-07 Thread Strom
This is the 1.5.4 preview. 1.5.3 has been our for a while. As Muneer
Malik said, eclipse plugin is still on 1.5.2.

On Sep 7, 7:42 pm, Gopal Patel  wrote:
> its preview , actual sdk is not out yet...
>
>
>
>
>
>
>
> On Wed, Sep 7, 2011 at 8:40 PM, Muneer Malik  wrote:
> > I see the SDK is being updated but eclipse plugin is still showing 1.5.2 ..
>
> > any reason for that ?
>
> > Thanks
>
> > On Tue, Sep 6, 2011 at 2:20 PM, Johan Euphrosine wrote:
>
> >> Hi everyone,
>
> >> Prerelease SDK for 1.5.4 is ready for testing, feel free to download
> >> and give it a try for local verification:
> >>http://code.google.com/p/googleappengine/downloads/list
>
> >> See release notes below.
>
> >> Happy testing!
>
> >> App Engine Python SDK - Release Notes
>
> >> Version 1.5.4
> >> ===
> >> - You can now specify the maximum size for a blob in create_upload_url().
> >> - Zigzag merge join queries will now continue scanning up to the 30 second
> >>  Datastore query deadline.  For zigzag queries that used to generate
> >> NeedIndex
> >>  errors, many will now succeed.  A small percentage will now instead
> >> timeout.
> >> - Added API functionality for making calls to the Memcache API
> >> asynchronously.
> >> - Fixed an issue that incorrectly allowed creation of tasks with
> >> whitespace in
> >>  the url.
> >> - Fixed the error message for "transaction not found" to be more
> >> descriptive.
> >> - Fixed an issue where blobstore uploads didn't work in the SDK with the
> >>  -a 0.0.0.0 flag set.
> >> - Fixed an issue where --dry_run was broken for upload_data in
> >> bulkload.py.
> >> - Fixed an issue where db.Model().to_xml() incorrectly updated
> >> auto-updating
> >>  properties.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=322
> >> - Fixed an issue where the SDK didn't expand the '~' in a file path.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=522
> >> - Fixed an issue where is_saved() wasn't valid after db.Model.__init__.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=844
> >> - Fixed an issue where GQL IN queries with an empty list returned all
> >> entities.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=932
> >> - Fixed an issue where the SDK's sqlite stub did not handle cursors on
> >>  descending queries correctly.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=3121
> >> - Fixed a typo in the SDK's Datastore Stats generator message.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=5425
>
> >> App Engine Java SDK - Release Notes
>
> >> Version 1.5.4
> >> =
> >> - You can now specify the maximum size for a blob in
> >>  BlobstoreService.createUploadUrl().
> >> - Zigzag merge join queries will now continue scanning up to the 30 second
> >>  Datastore query deadline. For zigzag queries that used to generate
> >>  DatastoreNeedIndexException, many will now succeed. A small percentage
> >> will
> >>  now instead timeout.
> >> - The Prospective Search API is available in Java for all applications.
> >> This API
> >>  is still experimental, so applications will be limited to a maximum of
> >> 1000
> >>  subscriptions.
> >> - We made a classloading improvement that we expect to help loading
> >> request
> >>  latencies for projects with large numbers of jars.
> >> - Added support for the set_default_version flag to Appcfg.
> >> - The Java Remote API now recognizes the HTTP_X_APPENGINE_INBOUND_APPID.
> >> This
> >>  means that the Datastore Admin copy functionality will work when using
> >>  Java's Remote API with the destination app.
> >> - Fixed an issue that incorrectly allowed creation of tasks with
> >> whitespace in
> >>  the url.
> >> - Fixed the error message for "transaction not found" to be more
> >> descriptive.
> >> - Fixed an issue with the dev appserver's local Blobstore implementation
> >> trying
> >>  to modify an immutable collection.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=3081
> >> - Fixed an SDK issue where CONFIG, FINE, FINER, FINEST logging messages
> >> were not
> >>  displayed.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=4591
> >> --
> >> Johan Euphrosine (proppy)
> >> Developer Programs Engineer
> >> Google Developer Relations
>
> >> --
> >> You received this message because you are subscribed to the Google Groups
> >> "Google App Engine" group.
> >> To post to this group, send email to google-appengine@googlegroups.com.
> >> To unsubscribe from this group, send email to
> >> google-appengine+unsubscr...@googlegroups.com.
> >> For more options, visit this group at
> >>http://groups.google.com/group/google-appengine?hl=en.
>
> > --
> > Confidentiality Notice
> > ---
>
> > THIS INFORMATION IS INTENDED ONLY FOR THE USE OF THE ADDRESSEE AND MAY
> > CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM
> > DISCLOSURE UNDER APPLICABLE LAW.  IF YOU ARE NOT THE 

Re: [google-appengine] 50% increase on latency with "Max Idle Instances"=1 ?

2011-09-07 Thread Jon McAlister
Hi Raymond,

Indeed, this is the down-side to tuning the performance setting knobs
to favor cost over performance. Serving latency and reliability may
become worse.

The design of the scheduler is that the default automatic mode decides
to minimize pending latency, and provide spare capacity (to provide cover for
request spikes or load increases). Obviously, not all apps will want this,
especially in light of the new billing formula. This
is why there is now the ability to opt-out of this by using the
Performance Settings options of max-idle-instances and
min-pending-delay. With those options you can opt-out and signal to
the scheduler that pending latency and spare capacity are not as
important for your app as instance utilization. But the default is to
provide good performance and reliable serving.

I hope that helps,
Jon

On Tue, Sep 6, 2011 at 2:06 AM, Raymond C.  wrote:
> I tuned the value of "Max Idle Instances" to 1 as suggested by many people
> here since a few days ago. Since then the ms/request value has been
> increased by around 30-50% as you can see from the attached charts.  No code
> were changed during the period.
> I suppose "Milliseconds/Request" has latency included right? If so, is
> everyone having the same result by tuning down the max idle instance?
> 30-50% latency increase is not breaking the game, but still the less latency
> the better.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/wK7C600QgjMJ.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



[google-appengine] Re: Want to talk to the App Engine team in person?

2011-09-07 Thread Jason Collins
+1 on usage-based billing. It was a HUGE factor in our decision to use
App Engine; we have built all of our company's products on App Engine.

On a related note, the 15-minute cost to spin up new instances defeats
one of the greatest features of App Engine: the ability to fan-out and
process large jobs very quickly. We have architected many processes
that take advantage of this feature: various stats compilations, Map-
Reduce data migrations, large scale batch import and report
generation. It was always an amazing power of App Engine to scale-out
and chew through these jobs in very little time. Now, to scale out, we
will incur a bunch of extra billing in order to warm up the instances.
Our solution, I guess, will be to tune back our queue rates and force
the jobs to run longer. Seems like a waste of a great infrastructure.

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



Re: [google-appengine] Help Testing with --high_replication

2011-09-07 Thread Alfred Fuller
Seems like we have to come up with a better solution. We will look into it.

For now you can still call Flush() manually.

On Wed, Sep 7, 2011 at 9:37 AM, Waldemar Kornewald wrote:

> On Windows it's even worse because you can't easily kill the server
> with CTRL+C. You have to kill it the hard way using CTRL+BREAK.
>
> Also, with SDK 1.5.3 when running "manage.py shell" in Django-nonrel
> (or any other command that loads stubs without starting the
> dev_appserver) the following exception is shown on exit:
>
> Exception AttributeError: "'NoneType' object has no attribute
> 'mkstemp'" in   0x0158F5F0>> ignored
>
> That's all it says. There is no traceback. This actual exception is
> raised in DataStoreFileStub.__WritePickled(). I don't know why the
> tempfile module/global is None at that point. Something very strange
> is happening there.
>
> Bye,
> Waldemar
>
> On Tue, Sep 6, 2011 at 11:20 PM, Alfred Fuller
>  wrote:
> > Hmm. I have seen it work this way on my system. This is the function you
> > need have
> > invoked
> http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/datastore/datastore_stub_util.py#1785
> > Does it work when you call Flush manually?
> >
> > On Tue, Sep 6, 2011 at 12:03 PM, Joshua Smith 
> > wrote:
> >>
> >> I don't think this is working the way you believe it is.
> >> When I run:
> >> dev_appserver.py --port=8902 --default_partition=
> --disable_static_caching
> >> --high_replication .
> >> and create a record, then stop with ^C, then start right back up, that
> >> record is gone.
> >> Note that ^C sends sigINT which is the same thing the STOP sign on the
> >> launcher sends.
> >> On Sep 6, 2011, at 1:45 PM, Alfred Fuller wrote:
> >>
> >> You would have to have code that only exists in your dev environment (or
> >> just never gets called in production), that grabs the stub and calls the
> >> function (see ext.testbed for examples of manipulating stubs). It would
> have
> >> to be triggered by a special url that you would hit right before
> stopping
> >> the server.
> >> It is probably much much easier to just run the dev_appserver manually
> and
> >> use ctrl-c to kill it.
> >>
> >> On Tue, Sep 6, 2011 at 10:27 AM, Joshua Smith  >
> >> wrote:
> >>>
> >>> How do I call Flush() on the stub manually?  Do I do this in my main.py
> >>> someplace, somehow?
> >>> On Sep 6, 2011, at 1:22 PM, Alfred Fuller wrote:
> >>>
> >>> Apparently not. I believe running the dev_appserver on a command line
> and
> >>> hitting Ctrl-C will work. The trick is to have the datastore stub's
> >>> destructor invoked, which doesn't happen if the app is hard stopped.
> You can
> >>> also call Flush() on the stub manually.
> >>>
> >>> On Tue, Sep 6, 2011 at 10:10 AM, Joshua Smith <
> joshuaesm...@charter.net>
> >>> wrote:
> 
>  I've updated to 1.5.3, but I still have this problem.
>  How do I "shut down gracefully"?  I'm shutting down by pressing the
> big
>  red STOP button on the launcher.
>  Is there another way?
>  -Joshua
>  On Sep 6, 2011, at 12:51 PM, Alfred Fuller wrote:
> 
>  If the dev_appserver is shut down gracefully, then you should not see
>  this problem (as of 1.5.3).
> 
>  On Tue, Sep 6, 2011 at 8:40 AM, Joshua Smith <
> joshuaesm...@charter.net>
>  wrote:
> >
> > When I start with --high_replication to test on the dev appserver, I
> > alway seem to be starting with a blank database.
> >
> > I found this issue:
> >
> > http://code.google.com/p/googleappengine/issues/detail?id=5305
> >
> > which sounds like the problem I'm having, except that it only has 7
> > stars (including mine), and without being able to save my datastore
> across
> > runs, debugging this thing is going to take FOREVER.  So I'm thinking
> that
> > there must be a trick I don't know.
> >
> > I ordinarily use --datastore_path so that I don't lose all my data
> when
> > I reboot my mac.
> >
> > I also have been using --default_partition= so I could access my data
> > when they changed the sdk a few weeks ago.
> >
> > What is the right set of options to use when testing with
> > --high_replication on the dev appserver, so that your data will be
> present
> > across separate runs?
> >
> > -Joshua
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Google App Engine" group.
> > To post to this group, send email to
> google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> > http://groups.google.com/group/google-appengine?hl=en.
> >
> 
> 
>  --
>  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.
>  

Re: [google-appengine] Re: Want to talk to the App Engine team in person?

2011-09-07 Thread Barry Hunter
On Wed, Sep 7, 2011 at 6:41 PM, Jason Collins  wrote:
>
> On a related note, the 15-minute cost to spin up new instances defeats
> one of the greatest features of App Engine: ...


Do have a read of the "the min instace time is 24 hours?" thread. It's
a treasure trove of information. Not least you are only paying the
'15-minute cost" for the number of instances under the
'max-idle-instances' setting.

So a huge burst of instances to furfil a map-reduce style task, - you
still only paying for active instances.

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



Re: [google-appengine] Re: Want to talk to the App Engine team in person?

2011-09-07 Thread Gregory D'alesandre
Thanks for noting that Barry, I was just going to mention the same thing!
 We'll try to do a better job of codifying it in our FAQ.

Greg

On Wed, Sep 7, 2011 at 10:51 AM, Barry Hunter wrote:

> On Wed, Sep 7, 2011 at 6:41 PM, Jason Collins  wrote:
> >
> > On a related note, the 15-minute cost to spin up new instances defeats
> > one of the greatest features of App Engine: ...
>
>
> Do have a read of the "the min instace time is 24 hours?" thread. It's
> a treasure trove of information. Not least you are only paying the
> '15-minute cost" for the number of instances under the
> 'max-idle-instances' setting.
>
> So a huge burst of instances to furfil a map-reduce style task, - you
> still only paying for active instances.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



[google-appengine] Re: the min instace time is 24 hours?

2011-09-07 Thread Tammo Freese
Hi Jon,


On Sep 7, 6:19 pm, Jon McAlister  wrote:
> On Wed, Sep 7, 2011 at 8:56 AM, Tammo Freese  wrote:
> Right. The way the total-instances-rate (the blue line) is computed is
> from all running instances that have received a request at any point
> in the last 15 minutes. This however is not equal to the line you
> proposed, the line which is the maximum value of active-instances-rate
> over the last 15 minutes.

could you please give us the algorithm how total-instances is
computed?


> Look at any app's instances graph and you
> will be able to see this visually right away.

The graph aggregates values. Because of that, it does not help much to
understand what's going on. For example, the current graph (6 hours)
does never show more than 1 active instance, but I currently I see two
instances handling requests. Total instances goes up to around 5 and
even spikes once to 8, but from the graph I can't figure out why that
happens. There is even one point in the graph where Total goes down
below Active (!).


Take care,

Tammo

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



[google-appengine] App Stats time measurements for GQL queries way off?

2011-09-07 Thread Pol
Hi,

I'm trying to optimize our Python app and have App Stats installed.

The code to measure (simplified):

query = db.GqlQuery("SELECT * FROM Event WHERE ANCESTOR IS :1
ORDER BY max_date DESC", self.user.key())
if cursor:
  query.with_cursor(cursor)
start_time = time.time()
for event in query.fetch(limit):
  ...
logging.info("DELTA 1 = %.2f seconds" % (time.time() -
start_time))
photos = Photo.get(keys)
logging.info("DELTA 2 = %.2f seconds" % (time.time() -
start_time))
...
logging.info("DELTA 3 = %.2f seconds" % (time.time() -
start_time))

self.write_json_response(...)

logging.info("DELTA 4 = %.2f seconds" % (time.time() -
start_time))

>From App Stats:

@0ms memcache.Get real=5ms api=0ms
@8ms datastore_v3.RunQuery real=89ms api=1387ms
@537ms datastore_v3.Get real=1574ms api=6250ms  <--- Photo.get(...)

>From the log:

67.169.78.38 - - [07/Sep/2011:11:04:15 -0700] "GET /api/event_list?
keyPhotos=1&limit=150&cursor=E-
ABAOsB8gEIbWF4X2RhdGX6AQkIgK7os5aSiwLsAYICiAFqD3N-
ZXZlcnBpeC1hbHBoYXJ1CxIEVXNlciIgNWI3NmY0MjhkOGFiMTFlMDgwNWU5YjNmM2U1NDdmMWMMCxIFRXZlbnQiQDlhOWQ4MjljZDhkOTExZTBhZTQ0OWJiMWViNDM3NjUzMTIxNDMxNGVjZmQwNDBjZjlhNDc5YzFmNjFmYmEzNmMMFA==
HTTP/1.1" 200 48637 - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8)
AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/
535.1" "everpix-alpha.appspot.com" ms=4175 cpu_ms=10729
api_cpu_ms=7638 cpm_usd=0.303547 throttle_code=1
instance=00c61b117c52d19855e6bf84b0977f343fba
I 2011-09-07 11:04:11.609
DELTA 1 = 0.45 seconds
I 2011-09-07 11:04:15.172
DELTA 2 = 4.01 seconds
I 2011-09-07 11:04:15.189
DELTA 3 = 4.03 seconds
I 2011-09-07 11:04:15.254
DELTA 4 = 4.09 seconds
I 2011-09-07 11:04:15.286
Saved; key: __appstats__:051100, part: 368 bytes, full: 14629 bytes,
overhead: 0.001 + 0.006; link: 
http://everpix-alpha.appspot.com/_ah/stats/details?time=1315418651153

And the problem:

App Stats states that Photo.get(...) took 1574ms while inline
measurements show a much bigger 3.56s? Does App Stats ignore de-
serialization of the entity properties or something?

- Pol

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



Re: [google-appengine] If I enable billing & set budget to $0 will I be charged $9/month?

2011-09-07 Thread Ikai Lan (Google)
Yes, the $9 a month is the minimum charge for billing enabled applications.

--
Ikai Lan
Developer Programs Engineer, Google App Engine
plus.ikailan.com | twitter.com/ikai



On Wed, Sep 7, 2011 at 2:03 AM, Jens Stoltenberg wrote:

>
> I want to keep the $50 credit I received by enabling billing.
>
> But I've heard you lose it if you disable billing.
>
> What about if I leave billing enabled and set my spending level to $0?
>
> Does that mean I will have to pay $9 a month?
>
> In other words, the only way to avoid the $9 a month is to disable billing?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



Re: [google-appengine] If I enable billing & set budget to $0 will I be charged $9/month?

2011-09-07 Thread Jens Stoltenberg
Thanks, Ikai.

More Java-related blog posts, please!

Love your blog :)

On Wed, Sep 7, 2011 at 7:20 PM, Ikai Lan (Google)  wrote:

> Yes, the $9 a month is the minimum charge for billing enabled applications.
>
> --
> Ikai Lan
> Developer Programs Engineer, Google App Engine
> plus.ikailan.com | twitter.com/ikai
>
>
>
> On Wed, Sep 7, 2011 at 2:03 AM, Jens Stoltenberg wrote:
>
>>
>> I want to keep the $50 credit I received by enabling billing.
>>
>> But I've heard you lose it if you disable billing.
>>
>> What about if I leave billing enabled and set my spending level to $0?
>>
>> Does that mean I will have to pay $9 a month?
>>
>> In other words, the only way to avoid the $9 a month is to disable
>> billing?
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



[google-appengine] Re: Will you prohibit to keep the free instance up and running permanently? Or is it a best practice now?

2011-09-07 Thread Per
It's M/S, but thanks for the quick answer. Very appreciated!

Cheers,
Per


On Sep 7, 6:25 pm, Jon McAlister  wrote:
> Hi Per,
>
> I'm going to make a wild guess here and assume you are using the High
> Replication Datastore. Apps which have selected this are presently
> running on a set of machines that have the properties you describe.
> Rather than having idle instance processes evicted after some number
> of minutes, they hang around for hours. This is because of the present
> ratio of cpu to memory pressure on those machines; essentially, it's a
> by-product of the present supply and demand for that subset of apps
> and machines.
>
> It will certainly change but probably not for several months yet.
> Eventually it will have the same behavioral patterns as you see for
> M/S-D apps.
>
> If you'd like to keep one instance up always though, when the billing
> rollout is complete you'll be able to set min-idle-instances=1.
>
>
>
>
>
>
>
> On Wed, Sep 7, 2011 at 4:56 AM, Per  wrote:
> > Hi,
>
> > I just disabled the "always on" option for my QA application, wanting
> > to experiment with the new pricing model. Instead, I set the max-idle
> > to 1, and I defined a 300ms latency in the application settings. The
> > QA box is rarely used, but since the Cron-Jobs keep running every 5
> > minutes to clean up stuff, there was always some base load.
>
> > I checked out the stats, and it turns out there was always one
> > instance up in the past 24 hours, and the currently active instance is
> > 11h old. That's perfect for me: the less instance restarts we have,
> > the faster the app will react (since startup takes some 5 to 10
> > seconds). Overall, this QA box cost me a mere 1ct under the new
> > pricing. Great news!
>
> > Is this too good to be true? When App Engine started out, new
> > instances got killed after 60seconds, and it was officially prohibited
> > to ping instances to keep it alive. Will that happen again? Or is it
> > fine to consume the free 1 instance permanently?
>
> > Cheers,
> > Per
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Google App Engine" group.
> > To post to this group, send email to google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://groups.google.com/group/google-appengine?hl=en.

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



Re: [google-appengine] Help Testing with --high_replication

2011-09-07 Thread Joshua Smith
I think you are mistaken that calling Flush will help.

(I don't have the first clue how to do that.  My python skills are not up to 
understanding the stuff in ext.testbed)

I added this line to 
google_appengine/google/appengine/datastore/datastore_stub_util.py:1483:

  def Flush(self):
"""Applies all outstanding transactions."""
>>logging.info("Flush invoked")
for meta_data in self._meta_data.itervalues():

and when I click the stop sign, I see:

INFO 2011-09-07 18:41:24,460 dev_appserver_main.py:667] Server interrupted 
by user, terminating
INFO 2011-09-07 18:41:24,523 datastore_stub_util.py:1483] Flush invoked

>From this I would conclude that Flush is being called, and doing so manually 
>would not help.

Not being able to test with --high_replication and a persistent-across-runs 
datastore is a nightmare.  I can't believe I'm they only one running into this 
problem.

-Joshua

On Sep 7, 2011, at 1:45 PM, Alfred Fuller wrote:

> Seems like we have to come up with a better solution. We will look into it.
> 
> For now you can still call Flush() manually.
> 
> On Wed, Sep 7, 2011 at 9:37 AM, Waldemar Kornewald  
> wrote:
> On Windows it's even worse because you can't easily kill the server
> with CTRL+C. You have to kill it the hard way using CTRL+BREAK.
> 
> Also, with SDK 1.5.3 when running "manage.py shell" in Django-nonrel
> (or any other command that loads stubs without starting the
> dev_appserver) the following exception is shown on exit:
> 
> Exception AttributeError: "'NoneType' object has no attribute
> 'mkstemp'" in   0x0158F5F0>> ignored
> 
> That's all it says. There is no traceback. This actual exception is
> raised in DataStoreFileStub.__WritePickled(). I don't know why the
> tempfile module/global is None at that point. Something very strange
> is happening there.
> 
> Bye,
> Waldemar
> 
> On Tue, Sep 6, 2011 at 11:20 PM, Alfred Fuller
>  wrote:
> > Hmm. I have seen it work this way on my system. This is the function you
> > need have
> > invoked 
> > http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/datastore/datastore_stub_util.py#1785
> > Does it work when you call Flush manually?
> >
> > On Tue, Sep 6, 2011 at 12:03 PM, Joshua Smith 
> > wrote:
> >>
> >> I don't think this is working the way you believe it is.
> >> When I run:
> >> dev_appserver.py --port=8902 --default_partition= --disable_static_caching
> >> --high_replication .
> >> and create a record, then stop with ^C, then start right back up, that
> >> record is gone.
> >> Note that ^C sends sigINT which is the same thing the STOP sign on the
> >> launcher sends.
> >> On Sep 6, 2011, at 1:45 PM, Alfred Fuller wrote:
> >>
> >> You would have to have code that only exists in your dev environment (or
> >> just never gets called in production), that grabs the stub and calls the
> >> function (see ext.testbed for examples of manipulating stubs). It would 
> >> have
> >> to be triggered by a special url that you would hit right before stopping
> >> the server.
> >> It is probably much much easier to just run the dev_appserver manually and
> >> use ctrl-c to kill it.
> >>
> >> On Tue, Sep 6, 2011 at 10:27 AM, Joshua Smith 
> >> wrote:
> >>>
> >>> How do I call Flush() on the stub manually?  Do I do this in my main.py
> >>> someplace, somehow?
> >>> On Sep 6, 2011, at 1:22 PM, Alfred Fuller wrote:
> >>>
> >>> Apparently not. I believe running the dev_appserver on a command line and
> >>> hitting Ctrl-C will work. The trick is to have the datastore stub's
> >>> destructor invoked, which doesn't happen if the app is hard stopped. You 
> >>> can
> >>> also call Flush() on the stub manually.
> >>>
> >>> On Tue, Sep 6, 2011 at 10:10 AM, Joshua Smith 
> >>> wrote:
> 
>  I've updated to 1.5.3, but I still have this problem.
>  How do I "shut down gracefully"?  I'm shutting down by pressing the big
>  red STOP button on the launcher.
>  Is there another way?
>  -Joshua
>  On Sep 6, 2011, at 12:51 PM, Alfred Fuller wrote:
> 
>  If the dev_appserver is shut down gracefully, then you should not see
>  this problem (as of 1.5.3).
> 
>  On Tue, Sep 6, 2011 at 8:40 AM, Joshua Smith 
>  wrote:
> >
> > When I start with --high_replication to test on the dev appserver, I
> > alway seem to be starting with a blank database.
> >
> > I found this issue:
> >
> > http://code.google.com/p/googleappengine/issues/detail?id=5305
> >
> > which sounds like the problem I'm having, except that it only has 7
> > stars (including mine), and without being able to save my datastore 
> > across
> > runs, debugging this thing is going to take FOREVER.  So I'm thinking 
> > that
> > there must be a trick I don't know.
> >
> > I ordinarily use --datastore_path so that I don't lose all my data when
> > I reboot my mac.
> >
> > I also have been using --default_partition= so I could access my d

Re: [google-appengine] Re: Want to talk to the App Engine team in person?

2011-09-07 Thread Robert Kluin
On Wed, Sep 7, 2011 at 12:41, Jason Collins  wrote:
> +1 on usage-based billing. It was a HUGE factor in our decision to use
> App Engine; we have built all of our company's products on App Engine.
>
> On a related note, the 15-minute cost to spin up new instances defeats
> one of the greatest features of App Engine: the ability to fan-out and
> process large jobs very quickly. We have architected many processes
> that take advantage of this feature: various stats compilations, Map-
> Reduce data migrations, large scale batch import and report
> generation. It was always an amazing power of App Engine to scale-out
> and chew through these jobs in very little time. Now, to scale out, we
> will incur a bunch of extra billing in order to warm up the instances.
> Our solution, I guess, will be to tune back our queue rates and force
> the jobs to run longer. Seems like a waste of a great infrastructure.

Me too.


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

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



Re: [google-appengine] Help Testing with --high_replication

2011-09-07 Thread Alfred Fuller
Hm, maybe this is a different problem.

Are you running the dev_appserver, making changes, *seeing those changes*,
restarting the server and not seeing the changes?

After running without --high_replication and writing to the datastore, when
you run it with --high_replication do you see those writes?

Thanks,

Alfred

On Wed, Sep 7, 2011 at 11:44 AM, Joshua Smith wrote:

> I think you are mistaken that calling Flush will help.
>
> (I don't have the first clue how to do that.  My python skills are not up
> to understanding the stuff in ext.testbed)
>
> I added this line
> to google_appengine/google/appengine/datastore/datastore_stub_util.py:1483:
>
>   def Flush(self):
> """Applies all outstanding transactions."""
> >>logging.info("Flush invoked")
> for meta_data in self._meta_data.itervalues():
>
> and when I click the stop sign, I see:
>
> INFO 2011-09-07 18:41:24,460 dev_appserver_main.py:667] Server
> interrupted by user, terminating
> INFO 2011-09-07 18:41:24,523 datastore_stub_util.py:1483] Flush invoked
>
> From this I would conclude that Flush is being called, and doing so
> manually would not help.
>
> Not being able to test with --high_replication and a persistent-across-runs
> datastore is a nightmare.  I can't believe I'm they only one running into
> this problem.
>
> -Joshua
>
> On Sep 7, 2011, at 1:45 PM, Alfred Fuller wrote:
>
> Seems like we have to come up with a better solution. We will look into it.
>
> For now you can still call Flush() manually.
>
> On Wed, Sep 7, 2011 at 9:37 AM, Waldemar Kornewald 
> wrote:
>
>> On Windows it's even worse because you can't easily kill the server
>> with CTRL+C. You have to kill it the hard way using CTRL+BREAK.
>>
>> Also, with SDK 1.5.3 when running "manage.py shell" in Django-nonrel
>> (or any other command that loads stubs without starting the
>> dev_appserver) the following exception is shown on exit:
>>
>> Exception AttributeError: "'NoneType' object has no attribute
>> 'mkstemp'" in > > 0x0158F5F0>> ignored
>>
>> That's all it says. There is no traceback. This actual exception is
>> raised in DataStoreFileStub.__WritePickled(). I don't know why the
>> tempfile module/global is None at that point. Something very strange
>> is happening there.
>>
>> Bye,
>> Waldemar
>>
>> On Tue, Sep 6, 2011 at 11:20 PM, Alfred Fuller
>>  wrote:
>> > Hmm. I have seen it work this way on my system. This is the function you
>> > need have
>> > invoked
>> http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/datastore/datastore_stub_util.py#1785
>> > Does it work when you call Flush manually?
>> >
>> > On Tue, Sep 6, 2011 at 12:03 PM, Joshua Smith > >
>> > wrote:
>> >>
>> >> I don't think this is working the way you believe it is.
>> >> When I run:
>> >> dev_appserver.py --port=8902 --default_partition=
>> --disable_static_caching
>> >> --high_replication .
>> >> and create a record, then stop with ^C, then start right back up, that
>> >> record is gone.
>> >> Note that ^C sends sigINT which is the same thing the STOP sign on the
>> >> launcher sends.
>> >> On Sep 6, 2011, at 1:45 PM, Alfred Fuller wrote:
>> >>
>> >> You would have to have code that only exists in your
>> dev environment (or
>> >> just never gets called in production), that grabs the stub and calls
>> the
>> >> function (see ext.testbed for examples of manipulating stubs). It would
>> have
>> >> to be triggered by a special url that you would hit right before
>> stopping
>> >> the server.
>> >> It is probably much much easier to just run the dev_appserver manually
>> and
>> >> use ctrl-c to kill it.
>> >>
>> >> On Tue, Sep 6, 2011 at 10:27 AM, Joshua Smith <
>> joshuaesm...@charter.net>
>> >> wrote:
>> >>>
>> >>> How do I call Flush() on the stub manually?  Do I do this in my
>> main.py
>> >>> someplace, somehow?
>> >>> On Sep 6, 2011, at 1:22 PM, Alfred Fuller wrote:
>> >>>
>> >>> Apparently not. I believe running the dev_appserver on a command line
>> and
>> >>> hitting Ctrl-C will work. The trick is to have the datastore stub's
>> >>> destructor invoked, which doesn't happen if the app is hard stopped.
>> You can
>> >>> also call Flush() on the stub manually.
>> >>>
>> >>> On Tue, Sep 6, 2011 at 10:10 AM, Joshua Smith <
>> joshuaesm...@charter.net>
>> >>> wrote:
>> 
>>  I've updated to 1.5.3, but I still have this problem.
>>  How do I "shut down gracefully"?  I'm shutting down by pressing the
>> big
>>  red STOP button on the launcher.
>>  Is there another way?
>>  -Joshua
>>  On Sep 6, 2011, at 12:51 PM, Alfred Fuller wrote:
>> 
>>  If the dev_appserver is shut down gracefully, then you should not see
>>  this problem (as of 1.5.3).
>> 
>>  On Tue, Sep 6, 2011 at 8:40 AM, Joshua Smith <
>> joshuaesm...@charter.net>
>>  wrote:
>> >
>> > When I start with --high_replication to test on the dev appserver, I
>> > alway seem to be starting with a blank database.
>> >
>> > I found 

Re: [google-appengine] GAE data store and Google Bigtable

2011-09-07 Thread Ikai Lan (Google)
The datastore is built on top of Megastore, an abstraction layer on top of
Bigtable that allows for transactions and queries. High replication is a
feature of Megastore.

Some presentations here:

Intro to the datastore:
http://www.slideshare.net/ikailan/introducing-the-app-engine-datastore

Intro to high replication:
http://www.slideshare.net/ikailan/2011-auggddmexicocityhighreplicationdatastore


--
Ikai Lan
Developer Programs Engineer, Google App Engine
plus.ikailan.com | twitter.com/ikai



On Wed, Sep 7, 2011 at 9:36 AM, Stephen  wrote:

> On Wed, Sep 7, 2011 at 3:32 PM, Bruce Aloe  wrote:
> >
> > I store some data in GAE data store and can not find any documents
> > regarding the relation between GAE data store and Google Bigtable.
>
> http://research.google.com/pubs/pub36971.html
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



Re: [google-appengine] If I enable billing & set budget to $0 will I be charged $9/month?

2011-09-07 Thread Ikai Lan (Google)
So ... busy ... !!!

I've been working on a post about the different kinds of weak references.
When I get some free hours I'll finish it up ...

--
Ikai Lan
Developer Programs Engineer, Google App Engine
plus.ikailan.com | twitter.com/ikai



On Wed, Sep 7, 2011 at 11:23 AM, Jens Stoltenberg wrote:

> Thanks, Ikai.
>
> More Java-related blog posts, please!
>
> Love your blog :)
>
>
> On Wed, Sep 7, 2011 at 7:20 PM, Ikai Lan (Google) wrote:
>
>> Yes, the $9 a month is the minimum charge for billing enabled
>> applications.
>>
>> --
>> Ikai Lan
>> Developer Programs Engineer, Google App Engine
>> plus.ikailan.com | twitter.com/ikai
>>
>>
>>
>> On Wed, Sep 7, 2011 at 2:03 AM, Jens Stoltenberg wrote:
>>
>>>
>>> I want to keep the $50 credit I received by enabling billing.
>>>
>>> But I've heard you lose it if you disable billing.
>>>
>>> What about if I leave billing enabled and set my spending level to $0?
>>>
>>> Does that mean I will have to pay $9 a month?
>>>
>>> In other words, the only way to avoid the $9 a month is to disable
>>> billing?
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Google App Engine" group.
>>> To post to this group, send email to google-appengine@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> google-appengine+unsubscr...@googlegroups.com.
>>> For more options, visit this group at
>>> http://groups.google.com/group/google-appengine?hl=en.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



Re: [google-appengine] Help Testing with --high_replication

2011-09-07 Thread Joshua Smith

On Sep 7, 2011, at 3:16 PM, Alfred Fuller wrote:

> Hm, maybe this is a different problem. 
> 
> Are you running the dev_appserver, making changes, seeing those changes, 
> restarting the server and not seeing the changes? 

Exactly.

> 
> After running without --high_replication and writing to the datastore, when 
> you run it with --high_replication do you see those writes?

No.

> 
> Thanks,
> 
> Alfred
> 
> On Wed, Sep 7, 2011 at 11:44 AM, Joshua Smith  
> wrote:
> I think you are mistaken that calling Flush will help.
> 
> (I don't have the first clue how to do that.  My python skills are not up to 
> understanding the stuff in ext.testbed)
> 
> I added this line to 
> google_appengine/google/appengine/datastore/datastore_stub_util.py:1483:
> 
>   def Flush(self):
> """Applies all outstanding transactions."""
> >>logging.info("Flush invoked")
> for meta_data in self._meta_data.itervalues():
> 
> and when I click the stop sign, I see:
> 
> INFO 2011-09-07 18:41:24,460 dev_appserver_main.py:667] Server 
> interrupted by user, terminating
> INFO 2011-09-07 18:41:24,523 datastore_stub_util.py:1483] Flush invoked
> 
> From this I would conclude that Flush is being called, and doing so manually 
> would not help.
> 
> Not being able to test with --high_replication and a persistent-across-runs 
> datastore is a nightmare.  I can't believe I'm they only one running into 
> this problem.
> 
> -Joshua
> 
> On Sep 7, 2011, at 1:45 PM, Alfred Fuller wrote:
> 
>> Seems like we have to come up with a better solution. We will look into it.
>> 
>> For now you can still call Flush() manually.
>> 
>> On Wed, Sep 7, 2011 at 9:37 AM, Waldemar Kornewald  
>> wrote:
>> On Windows it's even worse because you can't easily kill the server
>> with CTRL+C. You have to kill it the hard way using CTRL+BREAK.
>> 
>> Also, with SDK 1.5.3 when running "manage.py shell" in Django-nonrel
>> (or any other command that loads stubs without starting the
>> dev_appserver) the following exception is shown on exit:
>> 
>> Exception AttributeError: "'NoneType' object has no attribute
>> 'mkstemp'" in > > 0x0158F5F0>> ignored
>> 
>> That's all it says. There is no traceback. This actual exception is
>> raised in DataStoreFileStub.__WritePickled(). I don't know why the
>> tempfile module/global is None at that point. Something very strange
>> is happening there.
>> 
>> Bye,
>> Waldemar
>> 
>> On Tue, Sep 6, 2011 at 11:20 PM, Alfred Fuller
>>  wrote:
>> > Hmm. I have seen it work this way on my system. This is the function you
>> > need have
>> > invoked 
>> > http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/datastore/datastore_stub_util.py#1785
>> > Does it work when you call Flush manually?
>> >
>> > On Tue, Sep 6, 2011 at 12:03 PM, Joshua Smith 
>> > wrote:
>> >>
>> >> I don't think this is working the way you believe it is.
>> >> When I run:
>> >> dev_appserver.py --port=8902 --default_partition= --disable_static_caching
>> >> --high_replication .
>> >> and create a record, then stop with ^C, then start right back up, that
>> >> record is gone.
>> >> Note that ^C sends sigINT which is the same thing the STOP sign on the
>> >> launcher sends.
>> >> On Sep 6, 2011, at 1:45 PM, Alfred Fuller wrote:
>> >>
>> >> You would have to have code that only exists in your dev environment (or
>> >> just never gets called in production), that grabs the stub and calls the
>> >> function (see ext.testbed for examples of manipulating stubs). It would 
>> >> have
>> >> to be triggered by a special url that you would hit right before stopping
>> >> the server.
>> >> It is probably much much easier to just run the dev_appserver manually and
>> >> use ctrl-c to kill it.
>> >>
>> >> On Tue, Sep 6, 2011 at 10:27 AM, Joshua Smith 
>> >> wrote:
>> >>>
>> >>> How do I call Flush() on the stub manually?  Do I do this in my main.py
>> >>> someplace, somehow?
>> >>> On Sep 6, 2011, at 1:22 PM, Alfred Fuller wrote:
>> >>>
>> >>> Apparently not. I believe running the dev_appserver on a command line and
>> >>> hitting Ctrl-C will work. The trick is to have the datastore stub's
>> >>> destructor invoked, which doesn't happen if the app is hard stopped. You 
>> >>> can
>> >>> also call Flush() on the stub manually.
>> >>>
>> >>> On Tue, Sep 6, 2011 at 10:10 AM, Joshua Smith 
>> >>> wrote:
>> 
>>  I've updated to 1.5.3, but I still have this problem.
>>  How do I "shut down gracefully"?  I'm shutting down by pressing the big
>>  red STOP button on the launcher.
>>  Is there another way?
>>  -Joshua
>>  On Sep 6, 2011, at 12:51 PM, Alfred Fuller wrote:
>> 
>>  If the dev_appserver is shut down gracefully, then you should not see
>>  this problem (as of 1.5.3).
>> 
>>  On Tue, Sep 6, 2011 at 8:40 AM, Joshua Smith 
>>  wrote:
>> >
>> > When I start with --high_replication to test on the dev appserver, I
>> > alway seem to be starting with a blank database.
>> >

[google-appengine] Re: Could I pay my GAE hosting fee from AdSense revenue?

2011-09-07 Thread Brandon Thomson
I, too, still have a very healthy margin from mostly Adsense revenue after 
the billing changes.

I am still convinced GAE is a good choice for shoestring budget indie 
developers like myself if the project fits the platform, but suspect many 
will choose avoid it due to all the recent noise and uncertainty.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/lJX0AfGjrVEJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Why I think it's the time to leave GAE.

2011-09-07 Thread Adam Sah
+1 to Ikai's comment.  We wrote a little API which checks memcache, then 
datastore, and it works quite well.

adam

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/lfVdq82_guIJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] App Stats time measurements for GQL queries way off?

2011-09-07 Thread Ikai Lan (Google)
AppStats should only be tracking the RPC, not the time it would take to
deserialize, so your guess is probably correct. How many entities are you
retrieving?

--
Ikai Lan
Developer Programs Engineer, Google App Engine
plus.ikailan.com | twitter.com/ikai



On Wed, Sep 7, 2011 at 11:12 AM, Pol  wrote:

> Hi,
>
> I'm trying to optimize our Python app and have App Stats installed.
>
> The code to measure (simplified):
>
>query = db.GqlQuery("SELECT * FROM Event WHERE ANCESTOR IS :1
> ORDER BY max_date DESC", self.user.key())
>if cursor:
>  query.with_cursor(cursor)
>start_time = time.time()
>for event in query.fetch(limit):
>  ...
>logging.info("DELTA 1 = %.2f seconds" % (time.time() -
> start_time))
>photos = Photo.get(keys)
>logging.info("DELTA 2 = %.2f seconds" % (time.time() -
> start_time))
>...
>logging.info("DELTA 3 = %.2f seconds" % (time.time() -
> start_time))
>
>self.write_json_response(...)
>
>logging.info("DELTA 4 = %.2f seconds" % (time.time() -
> start_time))
>
> From App Stats:
>
> @0ms memcache.Get real=5ms api=0ms
> @8ms datastore_v3.RunQuery real=89ms api=1387ms
> @537ms datastore_v3.Get real=1574ms api=6250ms  <--- Photo.get(...)
>
> From the log:
>
> 67.169.78.38 - - [07/Sep/2011:11:04:15 -0700] "GET /api/event_list?
> keyPhotos=1&limit=150&cursor=E-
> ABAOsB8gEIbWF4X2RhdGX6AQkIgK7os5aSiwLsAYICiAFqD3N-
>
> ZXZlcnBpeC1hbHBoYXJ1CxIEVXNlciIgNWI3NmY0MjhkOGFiMTFlMDgwNWU5YjNmM2U1NDdmMWMMCxIFRXZlbnQiQDlhOWQ4MjljZDhkOTExZTBhZTQ0OWJiMWViNDM3NjUzMTIxNDMxNGVjZmQwNDBjZjlhNDc5YzFmNjFmYmEzNmMMFA==
> HTTP/1.1" 200 48637 - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8)
> AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/
> 535.1" "everpix-alpha.appspot.com" ms=4175 cpu_ms=10729
> api_cpu_ms=7638 cpm_usd=0.303547 throttle_code=1
> instance=00c61b117c52d19855e6bf84b0977f343fba
> I 2011-09-07 11:04:11.609
> DELTA 1 = 0.45 seconds
> I 2011-09-07 11:04:15.172
> DELTA 2 = 4.01 seconds
> I 2011-09-07 11:04:15.189
> DELTA 3 = 4.03 seconds
> I 2011-09-07 11:04:15.254
> DELTA 4 = 4.09 seconds
> I 2011-09-07 11:04:15.286
> Saved; key: __appstats__:051100, part: 368 bytes, full: 14629 bytes,
> overhead: 0.001 + 0.006; link:
> http://everpix-alpha.appspot.com/_ah/stats/details?time=1315418651153
>
> And the problem:
>
> App Stats states that Photo.get(...) took 1574ms while inline
> measurements show a much bigger 3.56s? Does App Stats ignore de-
> serialization of the entity properties or something?
>
> - Pol
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



Re: [google-appengine] Re-entrancy / deadlock bug with scheduler?

2011-09-07 Thread Jon McAlister
Hi Pol,

I think I have a change that will fix this, which should be available
once 1.5.4 is pushed out. What is the app-id here?

On Mon, Sep 5, 2011 at 10:41 AM, Pol  wrote:
> Hi,
>
> Our app settings are as follow:
> - Python + HRD
> - Max Idle Instances: ( 2 )
> - Min Pending Latency: ( 100ms )
> As of right now, there are 3 instances alive.
>
> Without going too much into details, we have GAE integrated with EC2
> on which we run remote image processing tools. The tools are called
> directly using HTTP GETs from GAE and they returned their results as
> JSON (with gzip content encoding).
>
> There are currently 3 tasks in the processing queue on GAE
> continuously failing: the urlfetch() calls to the EC2 tool reach the
> 10 seconds timeout and bail. What doesn't make sense is that calling
> the EC2 tool directly using curl from random machines succeeds in less
> than 1 second.
>
> But here's the trick: under certain circumstances, the EC2 tool will
> call back to GAE (HEAD request that does a single db.get()) to check
> if the image has already been processed and this happens for these 3
> stuck tasks.
>
> If calling the EC2 tool from the command line and curl, we have the
> normal behavior:
> - EC2 tool retrieves image from arbitrary URL and computes a hash
> - EC2 tool does a HEAD call to GAE passing this hash to see if image
> has been already processed
>  - If yes, return empty JSON
>  - If no, process image and return full JSON
> This takes about 1 second.
>
> The exact same call done from GAE produces this behavior:
> - EC2 tool retrieves image from arbitrary URL and computes a hash
> - EC2 tool does a HEAD call to GAE passing this hash to see if image
> has been already processed
>  -> HEAD call hangs  <--- RE-ENTRANCY / DEADLOCK BUG in GAE
>  -> urlfetch() from GAE to EC2 reaches 10 seconds deadline and
> aborts  <-- BREAKS DEADLOCK
>  -> HEAD call finally returns
> - EC2 tool completes normally
>
> GAE logs confirm the bug:
>
> HEAD call from EC2 / curl origina
> 2011-09-05 10:19:52.502 /api/has_backing?
> bid=90e794f348ac76520076f5d02bc67c87c8a9185b8d36affe8377e73fe4820703
> 200 368ms 48cpu_ms 8api_cpu_ms 0kb Everpix-Processor
>
> HEAD call from EC2 / GAE origin
> 2011-09-05 10:20:44.670 /api/has_backing?
> bid=90e794f348ac76520076f5d02bc67c87c8a9185b8d36affe8377e73fe4820703
> 200 9712ms 48cpu_ms 8api_cpu_ms 0kb Everpix-Processor
> 2011-09-05 10:20:44.547 /task/import_photo 500 10348ms 28cpu_ms
> 8api_cpu_ms 0kb AppEngine-Google; (+http://code.google.com/appengine)
> (see how the HEAD /api/has_backing call hangs for almost 10 seconds
> and only returns *after* /task/import_photo and its urlfetch() call to
> EC2 has aborted)
>
> And finally, AppStats confirms that it's not the head() Python
> execution itself that's hanging:
>
> (1) 2011-09-05 09:16:06.843 "HEAD /api/has_backing?
> bid=3bc4aeb08e01d3ba4bfab3282d2a198984a4fc1fab2ad9d1e8a39ee3cddd14da"
> 200 real=227ms cpu=24ms api=8ms overhead=0ms (1 RPC)
> (2) 2011-09-05 09:15:56.422 "POST /task/import_photo" 500 real=10002ms
> cpu=33ms api=8ms overhead=0ms (3 RPCs)
> (3) 2011-09-05 09:15:49.328 "HEAD /api/has_backing?
> bid=90e794f348ac76520076f5d02bc67c87c8a9185b8d36affe8377e73fe4820703"
> 200 real=297ms cpu=21ms api=8ms overhead=0ms (1 RPC)
>
>
> This issue is currently 100% reproducible.
>
> - Pol
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



[google-appengine] Re: App Stats time measurements for GQL queries way off?

2011-09-07 Thread Pol
I don't know the exact count for this Photo.get(...) call but it can
be around 2,000.

If it's related to deserialization then my guess is there's a high
overhead due one of the Photo class properties: it contains a
dictionary for EXIF metadata serialized as text.



class DictionaryProperty(db.TextProperty):

  def __init__(self, verbose_name=None, default={}, **kwds):
super(DictionaryProperty, self).__init__(verbose_name,
default=default, **kwds)

  def get_value_for_datastore(self, model_instance):
value = super(DictionaryProperty,
self).get_value_for_datastore(model_instance)
return db.Text(repr(value))

  def make_value_from_datastore(self, value):
value = super(DictionaryProperty,
self).make_value_from_datastore(value)
return eval(str(value))

  def validate(self, value):
if not isinstance(value, dict):
  raise ValueError('Property %s must be a dictionary' % self.name)
return value



I'm not a pro at this stuff yet, can you help modifying this class so
that it does lazy text -> dictionary deserialization only the first
time the property is actually accessed instead of when read from the
datastore?


On Sep 7, 12:48 pm, "Ikai Lan (Google)"  wrote:
> AppStats should only be tracking the RPC, not the time it would take to
> deserialize, so your guess is probably correct. How many entities are you
> retrieving?
>
> --
> Ikai Lan
> Developer Programs Engineer, Google App Engine
> plus.ikailan.com | twitter.com/ikai
>
>
>
>
>
>
>
> On Wed, Sep 7, 2011 at 11:12 AM, Pol  wrote:
> > Hi,
>
> > I'm trying to optimize our Python app and have App Stats installed.
>
> > The code to measure (simplified):
>
> >    query = db.GqlQuery("SELECT * FROM Event WHERE ANCESTOR IS :1
> > ORDER BY max_date DESC", self.user.key())
> >    if cursor:
> >      query.with_cursor(cursor)
> >    start_time = time.time()
> >    for event in query.fetch(limit):
> >      ...
> >    logging.info("DELTA 1 = %.2f seconds" % (time.time() -
> > start_time))
> >    photos = Photo.get(keys)
> >    logging.info("DELTA 2 = %.2f seconds" % (time.time() -
> > start_time))
> >    ...
> >    logging.info("DELTA 3 = %.2f seconds" % (time.time() -
> > start_time))
>
> >    self.write_json_response(...)
>
> >    logging.info("DELTA 4 = %.2f seconds" % (time.time() -
> > start_time))
>
> > From App Stats:
>
> > @0ms memcache.Get real=5ms api=0ms
> > @8ms datastore_v3.RunQuery real=89ms api=1387ms
> > @537ms datastore_v3.Get real=1574ms api=6250ms  <--- Photo.get(...)
>
> > From the log:
>
> > 67.169.78.38 - - [07/Sep/2011:11:04:15 -0700] "GET /api/event_list?
> > keyPhotos=1&limit=150&cursor=E-
> > ABAOsB8gEIbWF4X2RhdGX6AQkIgK7os5aSiwLsAYICiAFqD3N-
>
> > ZXZlcnBpeC1hbHBoYXJ1CxIEVXNlciIgNWI3NmY0MjhkOGFiMTFlMDgwNWU5YjNmM2U1NDdmMWM 
> > MCxIFRXZlbnQiQDlhOWQ4MjljZDhkOTExZTBhZTQ0OWJiMWViNDM3NjUzMTIxNDMxNGVjZmQwND 
> > BjZjlhNDc5YzFmNjFmYmEzNmMMFA==
> > HTTP/1.1" 200 48637 - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8)
> > AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/
> > 535.1" "everpix-alpha.appspot.com" ms=4175 cpu_ms=10729
> > api_cpu_ms=7638 cpm_usd=0.303547 throttle_code=1
> > instance=00c61b117c52d19855e6bf84b0977f343fba
> > I 2011-09-07 11:04:11.609
> > DELTA 1 = 0.45 seconds
> > I 2011-09-07 11:04:15.172
> > DELTA 2 = 4.01 seconds
> > I 2011-09-07 11:04:15.189
> > DELTA 3 = 4.03 seconds
> > I 2011-09-07 11:04:15.254
> > DELTA 4 = 4.09 seconds
> > I 2011-09-07 11:04:15.286
> > Saved; key: __appstats__:051100, part: 368 bytes, full: 14629 bytes,
> > overhead: 0.001 + 0.006; link:
> >http://everpix-alpha.appspot.com/_ah/stats/details?time=1315418651153
>
> > And the problem:
>
> > App Stats states that Photo.get(...) took 1574ms while inline
> > measurements show a much bigger 3.56s? Does App Stats ignore de-
> > serialization of the entity properties or something?
>
> > - Pol
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine" group.
> > To post to this group, send email to google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine?hl=en.

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



Re: [google-appengine] Help Testing with --high_replication

2011-09-07 Thread Joshua Smith
Clarifying:

>> 
>> After running without --high_replication and writing to the datastore, when 
>> you run it with --high_replication do you see those writes?
> 
> No.


When I run with --high_replication I don't see ANY of my data, in any case.  It 
is as though that option causes the system to start with a clean slate every 
time.

Note that without the --high_replication option, I have to use 
--default_partition= to see the data I created before a recent SDK update.  If 
I run without that, I have a clean slate to start with, but it does save and 
have access to that data going forward.  But the use of that option has no 
impact on the --high_replication behavior, so I suspect those are not related.

-Joshua


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



  1   2   >