There is some interesting stuff in the release, but I've browsed the
Global Transaction stuff and I'm a little scared.
(http://sites.google.com/site/slim3appengine/slim3-datastore/transactions/global-transaction)

It seems that in the code it writes out a task in a queue to close the
commits, possibly. I'm pretty sure transactions should not be
implemented using queues, for any reason. The complexity of storing
temporary lock/tx objects in the datastore, time spent during that
transaction, and then pushing them through with a task (maybe much
later) seems like a dangerous plan.

Supporting multi-entity-group transactions needs to be implemented at
the datastore and not in a wrapper like that, IMO. There is no way to
rollback any committed transactions from any other entity-group, and
there are many other issues as well ... there is too much application
specific behavior that can't be assumed.

I can think of many reason this is a bad idea, and only very few where
this implementation will work well.

What happens if you have 3 transactions (1 transaction over 3 entity
groups) and the first two entity group transactions commit and the
third fails during commit? Is there a way to roll the first two back?

What happens if your user expect transactions to work like a database
where you have transaction isolation with gets/queries and updated the
value of the same entity multiple times from repeated gets? (think of
multiple "get, incr. object property, put" where the object only gets
incremented by the last amount, not the sum of the increments)

Where does the user get an error if the transaction fails later when
the task runs from the queue? (sure, that is application specific, but
dangerous all the same as the current models don't allow for implicit
non-synchronous operations).

These seem to be issues with any kind of custom transaction framework
on top of appengine, not just specific to the slim3 framework.

-Scott

On Tue, Mar 9, 2010 at 1:22 PM, nicolas melendez <[email protected]> wrote:
> cute framework
> NM
>
> On Tue, Mar 9, 2010 at 4:17 PM, Ikai L (Google) <[email protected]> wrote:
>>
>> Hi Yasuo,
>>
>> Wow, this look neat! I'll go ahead and add this to open source projects.
>>
>> One question, though: do you have any unit testing examples? E.g. how
>> would I mock out the datastore or write a Controller test?
>>
>> On Tue, Mar 9, 2010 at 12:42 AM, Yasuo Higa <[email protected]> wrote:
>> > Hi all,
>> >
>> > We are pleased to announce the release of Slim3 RC1.
>> >
>> > Slim3 is a full-stack MVC framework optimized for Google App
>> > Engine/Java.
>> > Our main concept is "Simple" and "Less Is More". "Less is more" means
>> > simplicity and clarity lead to good design.
>> >
>> > The main features of Slim3 are as follows:
>> >
>> > * Global Transactions
>> > * Faster than JDO/JPA
>> > * Fast spin-up
>> > * HOT reloading
>> > * Type safe query
>> >
>> > You can find more information about Slim3 here:
>> > http://slim3.org
>> >
>> > Thanks,
>> >
>> > Yasuo Higa
>> >
>> > --
>> > 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
>> > [email protected].
>> > To unsubscribe from this group, send email to
>> > [email protected].
>> > For more options, visit this group at
>> > http://groups.google.com/group/google-appengine-java?hl=en.
>> >
>> >
>>
>>
>>
>> --
>> Ikai Lan
>> Developer Programs Engineer, Google App Engine
>> http://googleappengine.blogspot.com | http://twitter.com/app_engine
>>
>> --
>> 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
>> [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> 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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to