https://bugs.openldap.org/show_bug.cgi?id=8958
--- Comment #32 from Howard Chu hyc@openldap.org --- (In reply to Hallvard Furuseth from comment #31)
On 03.08.2021 14:42, openldap-its@openldap.org wrote:
https://bugs.openldap.org/show_bug.cgi?id=8958
--- Comment #26 from Howard Chu hyc@openldap.org --- I don't think we should be changing anything else about how tpool handles pauses. We should just be fixing this specific case of the indexer being a slow task, by implementing checkpointing into the indexer. I.e., when it detects a pause request it should save its current progress and pause itself. If it gets resumed it can pick up where it left off, or if a config change affects it it can abort or or start over. A checkpointing mechanism is needed anyway, for the case of a (clean) shutdown while the indexer is running.
For fixing the observed problem:
Improving the indexer sounds great in any case, go ahead:-) No idea how much work it is. tpool.c was code I knew how to change, so I did.
Will it then be as reactive as ordinary tasks, also for large databases? Merely "much faster than now" might be very different from "fast enough to not be a problem".
I'm working it out now. As for reactiveness, that depends only on how much data we index in one chunk, not on the overall size of the DB.
If you still believe there's a potential problem with more than one pause request a time, your patch might still be useful but it will need to be adapted for the multiple queues in 2.5. Nothing is going to be changed for 2.4.