On 10/23/07 5:15 PM, Howard Chu wrote:
Francis Swasey wrote:
I'm sorry I haven't gotten back to you on this before now.
I've done some testing and I need a pointer or two to see if I've got something wonky or a bug.
On my master server, the accesslog overlay has a contextCSN value for the accesslog database that has the value of when the slapd was started. It doesn't contain data that far back.
Here's LDIF for the accesslog suffix:
dn: cn=accesslog objectClass: auditContainer cn: accesslog entryCSN: 20070710160157Z#000000#00#000000 structuralObjectClass: auditContainer contextCSN: 20071010225200Z#000000#00#000000
and the oldest information left in the accesslog db has an entryCSN value of 20071022225634Z#000000#00#000000.
First, shouldn't the accesslog db contextCSN be updated to indicate the oldest information still present?
No. The contextCSN always indicates the *newest* information.
No. The contextCSN will only change when the accesslog overlay is opened or whenever syncprov checkpoints (and since I forgot to specify a checkpoint value for the syncprov overlay in the accesslog db, that's why that contextCSN was not getting updated).
Second, does the syncprov overlay look at the contextCSN of the accesslog db or of the main db? My assumption is it is checking the accesslog db (and hence, doesn't think it needs to send a hint because the accesslog db contextCSN is much older than the contextCSN from the dc=example,dc=com I slapadded on the replica).
There is no "*the* syncprov overlay" here. There should be an instance on the main db and another instance on the log db. Each one manages its own respective database. If you only have one syncprov configured, then that's the cause of your problem.
I have syncprov overlay configured (likely misconfigured) for both the accesslog db and the "main" db. I have updated the configuration to specify the checkpoint control for the syncprov on the accesslog db and have now specified the syncprov-reloadhint TRUE option in the main db as well. I am still not seeing any sign in the syslog output that a hint is going to the replica when I load a three day old copy of the main db and tell it to syncrepl against my 12 hour accesslog.