Hi,

I'm working with a company that uses and maintains a commercial Django-based
commercial system, which requires reliable transactional integrity across
groups of database operations in a number of places (financial transfers,
and so on).

I've been investigating how Django's transaction management works, but found
to my surprise that Django's transaction managed blocks do not actually
ensure any transactional integrity, despite the documentation indicating
otherwise. (For example, "Use the commit_on_success decorator to use a
single transaction for all the work done in a function.")

I wrote up the following document, which describes the problem in a fair
amount of detail, as well as how Django's transaction management system may
be fixed to avoid it:

   - Django Transaction
Integrity<http://docs.google.com/View?id=dgxrkmrk_2hmk4fmhg>

I'd like to use this as a starting point for discussion; specifically, i
want to solicit feedback about the proposed solution approach (subsuming
nested transaction blocks): Does it sound reasonable to change
django.db.transaction's implementation to this?

I know this is not a small change, but i think it should be worth it if
transaction blocks are to be supported at all: there seems to be very little
point in keeping the current implementation where declaring a transaction
block doesn't actually make it transactional.

(This probably affects a number of current Django tickets, including at
least: #2227 <http://code.djangoproject.com/ticket/2227>,
#6669<http://code.djangoproject.com/ticket/6669>
, #9964 <http://code.djangoproject.com/ticket/9964>)

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

Reply via email to