Once a day we drop 20k files into a batch directory for processing.
It can take 2-3 hours for all of the files to be processed (by heavy forwarder) .
During that time the file count remains consistent and then when it is done, we see Splunk will purge the 20k files.
Is there something we can do to chunk this up into smaller batch sizes, so that for instance, it digests 1000 files, deletes them and then moves onto the next 1000 files . (or indeed deletes each processed file before digesting another one)
I ask because during this 2-3 hour window we need to make sure splunkd is not cycled, otherwise it will start again and create multiple duplicate transactions.
An alternative it to make these Monitor instead of batch, but these files won't change until 24 hours later and having 40k files being monitored (we have another set of files in a similar situation) seems to be a unnecessary burden on the system.
Interesting question, and interesting behavior by splunk. I don't see any specification in the docs regarding timing of deletion of batch files, so the alternatives I see are both extra-splunk... 1) multiple batch directories 2) load the batch directory in batches.