Re: [appengine-java] Re: Feelings about new pricing model
Put it this way: A single multithreaded Java appserver instance should be able to happily consume every last CPU cycle on a frontend box - and that's just the free tier. That presumes that the JVM that sandboxes the app is given access to all the CPU cycles. Nothing precludes mapping all Java threads onto a single native thread, for example. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: Task Enqueue in a Transaction
That's not how I understood the documentation, and it isn't my experience either. http://code.google.com/appengine/docs/java/datastore/transactions.html This page explicitly states that it's the enqueing of the task which is subject to the transaction. It says nothing about its execution. When the task runs, it's free to do what ever work it wants to, including opening one or more transactions. I use the same pattern as the OP (except with a transaction around the get by key), and on the development server at least, it always sees the latest state of the datastore (post its enqueing transaction). Unfortunately the code hasn't transitioned to Google's servers for testing yet. Tom. On 23 March 2011 05:26, Didier Durand durand.did...@gmail.com wrote: Hi, For me, the answer is here: http://code.google.com/appengine/docs/java/datastore/transactions.html#Isolation_and_Consistency They say: Queries and gets inside a transaction are guaranteed to see a single, consistent snapshot of the datastore as of the beginning of the transaction. In particular, entities and index rows in the transaction's entity group are fully updated so that queries return the complete, correct set of result entities, without the false positives or false negatives described in Transaction Isolation that can occur in queries outside of transactions. The task is part of the initial transaction so it sees the ds as of the beginning of the transaction regards didier On Mar 22, 9:12 pm, Tom Gibara tomgib...@gmail.com wrote: Thanks for the link, somehow I'd managed to miss that page of documentation entirely*; it's good to know, though it indicates other problems for the OP. I'm not clear on why eventually consistent gets aren't an option, ie. why all gets are indicated as being strongly consistent. Is this a direct consequence of replication algorithm used? There are various places in the code I'm currently developing where dirty gets are adequate and I'd be happy to see them faster. * As an aside, I do find the documentation on the datastore feels very scattered. I'd much prefer sections on the underlying app engine mechanics with less language specific guidance. Tom. On 22 March 2011 17:59, Jay Young jayyoung9...@gmail.com wrote: According to the docs, gets, puts, deletes, and ancestor queries are all strongly consistent: http://code.google.com/appengine/docs/java/datastore/hr/ -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Task Enqueue in a Transaction
It's my understanding that, with HR, getting an entity by key is only strongly consistent within a transaction. If this is wrong, then a significant portion of my own task handling code may need revisiting... Perhaps someone who knows more could clarify this. Tom. On 21 March 2011 22:10, Simon Knott knott.si...@gmail.com wrote: I've got a query about tasks and transactions on a High-replication app that I'm hoping someone can help me with. I've got the following scenario: 1) Begin a transaction 2) Persist an entity 3) Enqueue a task within the transaction 4) Commit the transaction Within the task, I get the entity via its key and I'm finding that the object has yet to be updated in the datastore - it was my belief that getting an entity via its key is strongly consistent, so I was quite surprised to see that the entity was stale. Is this result expected? I've got some defensive code in place now which just re-enqueues the task, but I wasn't sure whether that was the right approach. I originally had the same issue on the MS version of my app, before I realised that I needed to enqueue the task within the same transaction to ensure the persist had occurred before the task was run. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Task Enqueue in a Transaction
Thanks for the link, somehow I'd managed to miss that page of documentation entirely*; it's good to know, though it indicates other problems for the OP. I'm not clear on why eventually consistent gets aren't an option, ie. why all gets are indicated as being strongly consistent. Is this a direct consequence of replication algorithm used? There are various places in the code I'm currently developing where dirty gets are adequate and I'd be happy to see them faster. * As an aside, I do find the documentation on the datastore feels very scattered. I'd much prefer sections on the underlying app engine mechanics with less language specific guidance. Tom. On 22 March 2011 17:59, Jay Young jayyoung9...@gmail.com wrote: According to the docs, gets, puts, deletes, and ancestor queries are all strongly consistent: http://code.google.com/appengine/docs/java/datastore/hr/ -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Upgrade to GAE 1.4.2
I'm currently developing with Java. If it's any help, I did this... I produced a throw-away servlet that: On a GET request outputs a base-64 encoded gzipped serialized stream of every Entity object that I wanted to preserve from the old datastore, wrapped-up in a HTML form. On a POST request reverses the stream encoding, and simply calls Datastore.put() on every entity that comes out of the stream. To transfer the data between the two App Engine versions, I just started-up the old version, requested the form, stopped the server, started-up the new version, and submitted the form. Amazingly, this worked with no (apparent) problems and it was very quick to implement. Tom. On 16 February 2011 13:06, luka uluk...@gmail.com wrote: Hello, You probably aware of the following issue: After upgrading from GAE 1.4.0 to 1.4.2 the local data-store is completely deleted. Cheers Uri -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.