Hi Howard!
MirrorMode relies on an external frontend to direct all updates to a single provider. There is no difference within the OpenLDAP code between MirrorMode and MultiMaster; the difference is entirely external, based on your deployment.
So when you say: "We recommend not to use MMR", you're not saying don't use code section X of openldap but use code section Y, but you're basically saying: Do not send different updates to different providers at the same time, right?
In other words: If I would configure MMR between say 3 nodes but I would make sure that only one of them will receive updates at a time while on the other two there will only be read operations, then I have MirrorMode?
Is that right?
for new updates; in refreshAndPersist mode it will keep an LDAP session open and receive updates as they occur.
Could I query a provider to show me the current open sessions held by the consumers?
When is refreshOnly and when is refreshAndPersist recommended?
I was always confused in the documentation, as it says: sncrepl is entirely a client side technology and then it says you have the option to either pull or push updates. Now this becomes a bit clearer to me. Thanks for that.
Regards, Torsten
Howard Chu schrieb:
Torsten Schlabach (Tascel eG) wrote:
To begin with, I would just ask for confirmation of my proper understanding of the documentation:
- A master server is a server which is using the syncprov overlay
(servers/slapd/overlays/syncprov.c). This overlay will do little more than just provide a synchronization cookie (CSN) which consumers may ask for to find out what needs to get replicated and what not.
Pretty much, yes. We use the term "provider", not "master".
- A consumer server is a server in which an additional thread is
running which will query the master(s) in a given interval to ask for updated and if any, get them over the wire and into the local copy of the database. This synchronization thread is servers/slapd/syncrepl.c I guess?
There is no additional thread. In refreshOnly mode it will periodically ask for new updates; in refreshAndPersist mode it will keep an LDAP session open and receive updates as they occur.
- An N-Way Multi-Master setup is a setup in which N servers are each a
master and any of the others is a consumer of all other masters?
N servers are each a provider; any of them can be consumers of any number of the other providers. Full NxN connectivity is not a requirement, nor does it scale well.
So what I fail to understand is:
- What is the difference between Mirror Mode and N-Way Multi-Master?
Especially given that in N-Way Multi-Master, have to set olcMirrorMode to TRUE.
MirrorMode relies on an external frontend to direct all updates to a single provider. There is no difference within the OpenLDAP code between MirrorMode and MultiMaster; the difference is entirely external, based on your deployment.
- Given that I have added a 'Sync' value to the olcLogLevel attribute,
what would be the "health check" information I should be watching in the log for to see that replication is attempted as expected.
- What problems should I be watching for in the logs?
Error messages related to connect failures, retries, etc.
- Could I for example manually ask a master (using some ldapsearch
statement, pretending I was the consumer) what the master thinks which entries I would have to update?
Yes, use ldapsearch -E sync. See the ldapsearch(1) manpage.