[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: syncrepl questions



>I also see this:
>Sep 21 11:44:07 ldap-dev2.Stanford.EDU slapd[9891]: [ID 399881
>local4.debug] do_syncrepl : unknown result
>Sep 21 11:45:07 ldap-dev2.Stanford.EDU slapd[9891]: [ID 362707
>local4.debug] conn=32768 op=0 SEARCH RESULT tag=101 err=0 nentries=0 text=
>Sep 21 11:45:53 ldap-dev2.Stanford.EDU slapd[9891]: [ID 399881
>local4.debug] do_syncrepl : unknown result
 
I updated syncrepl.c to log the actual error string for this case.
 
>This of course does a full dump of my entire database.  Which is a problem
>-- Why doesn't it simply query for the changes made since it was loaded?
>
>On the master, there is:
>
># ldapsync, stanford.edu
>dn: cn=ldapsync,dc=stanford,dc=edu
>structuralObjectClass: subentry
>subtreeSpecification: {}
>contextCSN: 2003091621:49:05Z#0x0001#0#0000
>entryUUID: ead401c4-7d08-1027-8d06-a9c91f571ab3
>creatorsName: cn=Manager,dc=stanford,dc=edu
>modifiersName: cn=Manager,dc=stanford,dc=edu
>createTimestamp: 20030917031521Z
>modifyTimestamp: 20030917031521Z
>entryCSN: 2003091703:15:21Z#0x00c1#0#0000
>subschemaSubentry: cn=Subschema
>hasSubordinates: FALSE
>
>
>On the replica, there is:
>
># syncrepl2, stanford.edu
>dn: cn=syncrepl2,dc=stanford,dc=edu
>structuralObjectClass: subentry
>syncreplCookie: 2003091618:18:30Z#0x008a#0#0000
>subtreeSpecification: {}
>entryUUID: aa811dd0-7d96-1027-991e-fd27b6d0edae
>creatorsName: cn=Manager,dc=stanford,dc=edu
>modifiersName: cn=Manager,dc=stanford,dc=edu
>createTimestamp: 20030917201002Z
>modifyTimestamp: 20030917201002Z
>entryCSN: 2003091720:10:02Z#0x0026#0#0000
>subschemaSubentry: cn=Subschema
>hasSubordinates: FALSE
 
Was the above snapshot obtained before synchronization took place ?
Also curious to know whether the provider and the consumer replica
was in sync from the start or they are restored from backups...
If they are restored from backups, please make sure that the provider-side
backup contains entryCSN attribute of each entry
(which is the case when slapcat is used).
 
>
>
>My understanding of syncrepl is that it should _only_ do the change that
>has been made since it the DB was created, not dump the whole DB like it is
>doing.
 
If there have been changes made since the last sync time, the provider sends the contents of those entries
changed after the last sync time and sends the empty entries consisting of only the name and UUID for
the unchanged ones. So, what the provider sends are the changed entries + IDs of unchanged entries.
As an optimization, the provider will send search result without sending any entries to the consumer,
if there has been no changes after the last sync time.