Bug #70991 Manual seems to recommend IDEMPOTENT mode for all cases of master-master
Submitted: 23 Nov 2013 19:12 Modified: 28 Nov 2013 14:55
Reporter: Valeriy Kravchuk Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:5.1+ OS:Any
Assigned to: Jon Stephens CPU Architecture:Any
Tags: IDEMPOTENT, master-master

[23 Nov 2013 19:12] Valeriy Kravchuk
Description:
slave_exec_mode description in the manual, http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#sysvar_slave_exec_mo..., seems to recommend using IDEMPOTENT mode for all kinds of master-master and circular replication setups in general:

"IDEMPOTENT mode causes suppression of duplicate-key and no-key-found errors. This mode should be employed in multi-master replication, circular replication, and some other special replication scenarios."

"should be employed" in the above is interpreted as a recommendation by many users, while actually it is not a good recommendation for a general case. Other manual pages give more details, for example http://dev.mysql.com/doc/refman/5.1/en/replication-rbr-usage.html:

"slave_exec_mode=IDEMPOTENT is generally useful only for circular replication or multi-master replication with MySQL Cluster, for which IDEMPOTENT is the default value (see Section 17.6, “MySQL Cluster Replication”).

For other scenarios, setting slave_exec_mode to STRICT is normally sufficient; this is the default value for storage engines other than NDB."

and this is both correct and reasonable note - IDEMPOTENT for normal, not-cluster replication may be used temporary, assuming that after "failover" some other tools are used to make sure servers are in sync or make them in sync. But hardly it can be recommended as a normal mode of operation for master-master setups, especially when only one master is accepting changes at a time.

How to repeat:
Add more details or references to other parts in the manual. Currently the text in option description is misleading and may cause silent data loss if blindly applied.

Suggested fix:
Add similar note as on other page(s), explain somewhere how/when to use this mode safely.
[25 Nov 2013 5:42] MySQL Verification Team
Hello Valeriy,

Thank you for the report.

Thanks,
Umesh
[25 Nov 2013 16:43] MySQL Verification Team
This definitely needs to be better documented.
[26 Nov 2013 16:13] Jon Stephens
Should be mine.
[28 Nov 2013 14:55] Jon Stephens
Thank you for your bug report. This issue has been addressed in the documentation. The updated documentation will appear on our website shortly, and will be included in the next release of the relevant products.

Fixed in mysqldoc rev 34846. Closed.