For our installation in a "Third World Country" we need 2 replicated Master-Master Mysql-Servers:
- one in a European data center to serve the public website and allow access from mobile devices to CiviCRM
- one local server to serve the office staff (as the internet line of the office often does not work and the staff cannot depend on the server in the data center)
We run 2 "master-master-replicated" MySQL-Server
- one with auto_increment_offset = 1
- the other with auto_increment_offset = 2
- both with auto_increment_increment = 2
in my.cnf so that one server uses odd ids and the other one even ids when inserting record. This works perfectly in other PHP/Mysql based software we are using. We do not have a problem with the replication of our running servers.
When installing CiviCRM we received the message
"An auto_increment_increment value greater than 1 is not currently supported. Please see issue CRM-7923 for further details and potential workaround."
https://issues.civicrm.org/jira/browse/CRM-7923 not really is helpful with that issue - it explains how to undergo the configuration of replicated servers which does not help in our case as we need the master-master replication with CiviCRM. This pages also shows that this topic seems to exist since several years without any change.
We googled a lot and did not find any solution for this important feature to use CiviCRM on 2 (or even more) replicated master database servers.
So I address the following questions:
- why CiciCRM only supports id increments of 1 when inserting records? Which technical reason defines this limit?
- are there any modules to change this handicap? if not:
- where in the code, where is the point to change this behavior? We have a team of PHP developers to work on this problem if we would know where to start
- is there - may be - a plan to change this problem in the near future e.g. in 4.7?
- what other recommendation do you have for our organizational need of 2 servers - without setting up CiviCRM on 2 database servers with "master-master replication"?
Kind regards and thanks a lot for your answer!