I just spend about 3 days (not complaining here!) trying to fix a weird bug that resulted in cache not being updated for a table upon saving a model.
I am no expert on database transactions and savepoints, but it seems that it was caused by the way johnny handles these.
Here's how I fixed it. I am not sure if it's correct, but it sure did fix my problem :)
I included a little test for it in a new file (tests/transaction.py).
Please let me know if my thinking on this is correct when you have a spare moment.