On Thu, Aug 23, 2012 at 2:02 PM, Evan Priestley <epriest...@phacility.com>wrote:

> We solve this in Phabricator by using BEGIN (depth 0) or SAVEPOINT (depth
> 1+) when incrementing the counter, ROLLBACK TO SAVEPOINT (depth 1+) or
> ROLLBACK (depth 0) when decrementing it after a failure, and nothing (depth
> 1) or COMMIT (depth 0) when decrementing it after a success. Our experience
> with transaction stacks has generally been good (no real surprises, doesn't
> feel magical, significantly reduces the complexity of transactional code),
> although we don't support anything but MySQL.
>

Oooh, nice! Hadn't come across SAVEPOINT before.

http://dev.mysql.com/doc/refman/5.0/en/savepoint.html

-- brion
_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to