DOKK / manpages / debian 12 / sn / snprimedb.8.en
snprimedb,v0.3.8(8) System Manager's Manual snprimedb,v0.3.8(8)

snprimedb - feed the sn database.

snprimedb [-i] (no arguments)

snprimedb reads records from its standard input and enters them into the database. The database is appended to; if you want to start a new database, you would delete the database files .chain, .table, .newsgroup before running this program.

The main purpose of snprimedb is to rebuild the ID database. Then its input is usually obtained from snscan.

If the option -i is given, simply initialize the database files if they do not exist, and exit.

Input lines are of the format
newsgroup id serial where newsgroup is the newsgroup the article may be found in, id is its message id, and serial is the local serial number of that article in that newsgroup. If newsgroup is the special name =junk, then the whole line is ignored.

You will need to be root or the owner of /var/spool/sn to do this.

snprimedb does not check to see that the articles really exist. Also the size of the hash table is fixed at compile time.

Under degenerate conditions, the hash table file .chain (see below) could grow very large, with reclaimed space remaining unused. This is due to the very simple file space allocator, which doesn't know how to coalesce adjacent free areas. It doesn't know how to split them either. The allocator assumes that the shape of the distribution of record lengths remains quite constant over time.

The hash table database doesn't make any attempt to reduce its footprint. This should be acceptable, since the database is shared.

If this is set and is not empty, the value is used in place of /var/spool/sn, the default news spool directory.

/var/spool/sn/.table
snprimedb uses this file as the index of the hash table, and ...

/var/spool/sn/.chain
as the hash chains, and ...

/var/spool/sn/.newsgroup
to attach an integer identifier to each newsgroup name. This file is a human-readable flat text file.

Harold Tay N.B.