Hello all,
This is mostly a theoretical question. I currently have some OpenLDAP multimaster clusters (using syncrepl and mirrormode) and although it never happened before, what would happen if two (or more) masters received a write request exactly at the same time? The entry would have the same entryCSN on both servers and the contextCSN would be updated at the same time? Would this lead to a situation where the servers were actually out of sync but they would "think" they had the same entries?
--On Wednesday, February 16, 2011 9:22 PM -0200 Diego Lima lists@diegolima.org wrote:
Hello all,
This is mostly a theoretical question. I currently have some OpenLDAP multimaster clusters (using syncrepl and mirrormode) and although it never happened before, what would happen if two (or more) masters received a write request exactly at the same time? The entry would have the same entryCSN on both servers and the contextCSN would be updated at the same time? Would this lead to a situation where the servers were actually out of sync but they would "think" they had the same entries?
The universe will implode.
--Quanah
--
Quanah Gibson-Mount Sr. Member of Technical Staff Zimbra, Inc A Division of VMware, Inc. -------------------- Zimbra :: the leader in open source messaging and collaboration
Diego Lima wrote:
Hello all,
This is mostly a theoretical question. I currently have some OpenLDAP multimaster clusters (using syncrepl and mirrormode) and although it never happened before, what would happen if two (or more) masters received a write request exactly at the same time? The entry would have the same entryCSN on both servers and the contextCSN would be updated at the same time? Would this lead to a situation where the servers were actually out of sync but they would "think" they had the same entries?
No. On a properly configured setup it is impossible for two servers to produce the same entryCSN (regardless of timestamp issues) since they each have unique serverIDs. Conflict resolution will always resolve consistently and deterministically in syncrepl.
No. On a properly configured setup it is impossible for two servers to produce the same entryCSN (regardless of timestamp issues) since they each have unique serverIDs. Conflict resolution will always resolve consistently and deterministically in syncrepl.
Thanks a lot for your explanation! So, should one assume that the server with the highest serverID will have priority when it comes to conflict resolution? Also, when and how is the serverID determined? Is this manually configurable?
Diego Lima wrote:
No. On a properly configured setup it is impossible for two servers to produce the same entryCSN (regardless of timestamp issues) since they each have unique serverIDs. Conflict resolution will always resolve consistently and deterministically in syncrepl.
Thanks a lot for your explanation! So, should one assume that the server with the highest serverID will have priority when it comes to conflict resolution?
Yes.
Also, when and how is the serverID determined? Is this manually configurable?
Yes. Read the slapd config manpage.
openldap-technical@openldap.org