Re: iprop: Problem forcing complete database sync
Jeffrey Hutzelman <[email protected]> Fri, 06 Oct 2017 09:29:33 -0400
| Newsgroups | gmane.comp.encryption.kerberos.heimdal.general |
|---|---|
| Message-ID | <[email protected]> |
On October 6, 2017 5:56:22 AM EDT, Harald Barth <[email protected]> wrote: > >Removing that without putting something else in place (and I would say >not only s->version == 0 but even current_version == 0 should trigger >a send_complete) was probably a bad idea. It shouldn't be needed. First, a full dump is automatically triggered if the master doesn't have enough log entries to bring the slave from its current version to the master version. so if a slave us at version 0, you either get a complete log replay out a full dump, either of which is sufficient. In practice, it should always be a full dump, because the log should never contain an entry for version 1. It's also not necessary and in fact potentially harmful to check the master's version for 0. A real database can never be at version 0, so if you see that, something is wrong, and copying that database wholesale to another server is probably a bad idea. Remember that truncation does not zero the version. It throws away the existing log entries and writes a new log containing a single transaction with a newer version than the existing log. This forces a full update for any slave that was not already up to date. >I think the log can be at version 0 (which means "invalid, please >recover") but the database should not be able to be at version 0. only an empty, never-initialized log can be at version 0. databases don't have versions; they're entirely an artifact of the log >> Unless I am missing something this would mean that if something like >the code >> above was added back, truncating the log to version 0 would make all >slaves >> fetch the complete database over and over again until a modification >bumps the >> version at the master. > >That would be unfortunate ;-) it would, but truncating the log doesn't set the version to 0. >Harald.