Opened 9 days ago

Last modified 9 days ago

#28901 new Cleanup/optimization

Document considerations with read committed isolation level and InnoDB

Reported by: Dirkjan Ochtman Owned by: nobody
Component: Documentation Version: 2.0
Severity: Normal Keywords:
Cc: Adam (Chainz) Johnson Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

After upgrading my application to Django 2.0, I have been seeing errors: "Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED."

The 2.0 release notes at https://docs.djangoproject.com/en/2.0/releases/2.0/#default-mysql-isolation-level-is-read-committed don't mention anything about this particular problem. Since, as far as I can tell, InnoDB and BINLOG_FORMAT = STATEMENT are the default values, it would be useful if the documentation could warn about this problem.

Change History (2)

comment:1 Changed 9 days ago by Tim Graham

Cc: Adam (Chainz) Johnson added
Summary: Read committed isolation level does not work with InnoDBDocument considerations with read committed isolation level and InnoDB
Type: UncategorizedCleanup/optimization

Would you like to draft something?

comment:2 Changed 9 days ago by Dirkjan Ochtman

I wouldn't mind typing up the above in a way that is feasible for the documentation -- however, it would sure be nice if someone with deeper knowledge of Django and MySQL reviews that what I'm saying is correct and makes sense, and simply reverting the isolation level is the best solution here. It sure doesn't feel like the right solution -- but I couldn't figure out so far what the best alternative is.

Note: See TracTickets for help on using tickets.
Back to Top