Re: [appengine-java] Re: Feelings about new pricing model

2011-05-22 Thread Tom Gibara
 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

2011-03-23 Thread Tom Gibara
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

2011-03-22 Thread Tom Gibara
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

2011-03-22 Thread Tom Gibara
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

2011-02-16 Thread Tom Gibara
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.