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

Re: syncrepl questions

--On Tuesday, September 23, 2003 6:33 PM -0400 Jong <jongchoi@OpenLDAP.org> wrote:

I updated syncrepl.c to log the actual error string for this case.

Helpful, thanks.

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).

Both servers are loaded with the exact same databse, with have the entryCSN for all entries. I then made a _single_ change to the master.

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.

So, if I have a database with 5 million entries, it is going to send along 1 change + 4,999,999 ID's of unchanged entries?


-- Quanah Gibson-Mount Principal Software Developer ITSS/TSS/Computing Systems Stanford University GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html