Call for testing new expiration and ovsqlite features

Julien ÉLIE julien at trigofacile.com
Sat May 30 07:43:45 UTC 2026


Hi all,

There had been several useful improvements these last weeks, thanks to 
Kevin's great work.
We would be interested in having more wide-testing and feedback from 
people running large news spools (billion of articles), lots of several 
concurrent readers or encountering long expire/expireover runs.

The improvements are in latest CURRENT (2.8) snapshots, starting from 
inn-CURRENT-20260528.tar.gz and inn-2.8-20260527.tar.gz:
   https://downloads.isc.org/isc/inn/snapshots/daily/
   https://downloads.isc.org/isc/inn/snapshots/

I'll merge them soon to the STABLE branch, and provide a release 
candidate for the upcoming INN 2.7.4 release.


 From changelog about Kevin's work:

     * The speed of expireover has been greatly improved by the
       implementation of a Bloom filter (a probabilistic data structure used
       to efficiently test whether an element is a member of a set, without
       any false negative).  Instead of checking every article in the
       overview database against the history file to detect orphaned 
entries,
       expireover now sequentially reads the history file at startup to 
build
       a Bloom filter, and makes its checks in that optimized data 
structure.
       On large news spools of billions of articles, expireover could take
       several weeks to complete; it now runs in a few minutes!  This 
feature
       is activated by default and controlled by the new *expirebloomfp*
       parameter in inn.conf.

     * The speed of expire has also been drastically improved for large news
       spools thanks to the recording of every cancellation alongside the
       existing storage and overview deletions, so that expire can just drop
       matching history entries without doing per-article retrieval system
       calls, thus saving a good amount of time at billion-article scale.
       This feature is not enabled by default.  See the documentation of
       *expiretombstone* in inn.conf for more details, as well as
       *nnrpdcheckart* which also makes use of the cancel tombstone log 
file.

     * Added four new parameters to ovsqlite.conf for the ovsqlite overview
       method: *mmapsize* to have SQLite read data via mmap instead of
       copying into its own page cache, *readercachesize* to set the SQLite
       in-memory page cache size for each nnrpd reader process, *walmode* to
       enable SQLite's Write-Ahead Logging journal mode and improve read
       performace when multiple nnrpd processes access the overview database
       simultaneously, and *walcheckpointthreshold* to parameterize when to
       perform checkpoints.  See the ovsqlite(5) manual page for more
       details.




-- 
Julien ÉLIE

« Petite annonce : Astronaute recherche femme lunatique. »



More information about the inn-workers mailing list