On 07/06/2017 01:07 PM, Ilias Stamatis wrote: > Hello, > > A desire had been expressed to get rid of referint plugin's logfile: > https://pagure.io/389-ds-base/issue/49202 > > It finally turns out that this file is used for other purposes than > real logging. > > The referint plugin currently works like that; When the delay update > is set to be more than 0 a new thread is created executing referential > integrity code every x seconds (set by delay update). When a delete or > modrdn operation happens, the plugin will write that down to its > logfile. So, every x seconds the plugin will check the logfile, see > what happened and apply the changes. Finally, it deletes the file, > thus clearing the state for the next time it reads from it. > > After discussing this with William he suggested it's better to replace > the file with a queue, since the fileinvolves excess fsync / sync, and > has all kinds of potential state/race issues. Using a queue will be > much faster as well. > > William went even further and suggested that we could get rid of the > async referint update completely. This probably wouldn't happen soon > though, since likely customers are using it. For now we could provide > a warning such as "we recommend you set delay to 0". > > Finally, the referint-logchanges attribute does absolutely nothing. It > seems to be completely ignored by the plugin, so we could remove this > as well. > > I'll start working on these changes soon. > > Any thoughts or objections on the above would be welcome. The only problem with going to a queue is if the server goes down unexpectedly. In such a case those RI updates would be lost.
This also brings up a different point... the RI plugin is a backend txn plugin. If we write changes to a log, and those changes end up failing for some reason, then there is no way to rollback the original transaction --> breaking the backend txn plugin model. Perhaps the log/delay should just be removed? Or ignore the log/delay settings if the plugin is set as a backend txn plugin? > Thanks, > Ilias > > > _______________________________________________ > 389-devel mailing list -- [email protected] > To unsubscribe send an email to [email protected]
_______________________________________________ 389-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
