DEXPIREOVER(8)

NAME
dexpireover - Diablo program to expire overview files for diablo reader side

SYNOPSIS
dexpireover [ -a ] [ -v[N] ] [ -n ] [ -w wildcard ] [ -f dactive-kp-database ] [ -NB ] [ -U ] [ -R ] [ -s ] [ -e ] [ -o ] [ -O[n] ] [ -pN ]

DESCRIPTION
DExpireOver does an expire run on the overview information the Diablo reader stores in /news/spool/group. It scans the directory tree for data. and over. files and matches them up against information in the active file database (defaults to dactive.kp). If you do not give it the group wildcard option, it can detect and remove over. and data. files associated with non-existant (i.e. deleted) groups.

dexpireover will expire articles in the overview based on the 'x' option in the dexpire.ctl file. If the -a or -NB options are given, it will update the active file. dexpireover is usually run with just the -a option.

If the -e option is given, dexpireover will expire articles based on what articles are left in your local spool. This requires a local spool.

-a

This option turns on -NB, -U, -s, and, in the future, will also turn on

-v

This option turns on verbose output.

-n

This option guarentees that the overview and active files will NOT be updated, i.e. so you can do a dry run to see what dexpireover would have done. The -n option also sets the verbose level to 1 if it hasn't been set with the -v option.

-s

This options is like -R but only resizes the over.* files in /news/spool/group. It does not attempt to trim data.* files in /news/spool/group. This option has no effect on over.* files that are already properly sized, unlike -R which rewrites the over.* files whether they are properly sized or not.

Overview index files may only be resized if no dreaderd's have them open. If any do, the resize will fail (dexpireover will not be able to obtain the lock). Since dexpireover is typically run once an hour, the resize will be retried on each run until it succeeds. If you need to resize a group in realtime and you cant due to existing locks, you must unfortunately kill dreaderd, do the operation, then restart dreaderd.

-w wildcard

Restrict operations to the specified groups. Note: if you specify a wildcard, dexpireover will not be able to prune deleted groups from the overview directory structure.

-f dactive-KP-database-file

Specify a different active file (KP database). The default is /news/dactive.kp.

-NB

Allow dexpireover to update the beginning article number in the active file. This option is implied by -a.

-U

Allow dexpireover to add missing CTS fields (group-creation-time-stamp field). Earlier test releases didn't add this field. dexpireover can fixup these records.

-R

Instruct dexpireover to rewrite the data.* and over.* files in /news/spool/group. dexpireover will attempt to dynamically size index files based on the number of apparently valid articles in each group, and will rewrite data files to piecemeal remove unreferenced articles.

This works somewhat differently then expireover with standard options, takes a lot more time, and should typically be run only once a week. The standard dexpireover, 'dexpireover -a', does not resize index files or rewrite data files, it simply performs the expiration pass and deletes whole data files if none of the articles residing in them are referenced any longer. This suffices for a daily expiration, but 'dexpireover -R -a' should be used once a week to clean up the tailings. See samples/adm/weekly.reader

-e

Tell dexpireover that spool-based expiration should be used. This option will cause dexpireover to look up every message stored in the overview database in the history file, and expire the article if the history entry is marked expired. This requires that your reader machine carries a local spool, and only articles in your local spool will be left in overview. You should not specify this option and -o at the same time.

-o

Tell dexpireover that it should use the file specified by path_dexpover_list in diablo.config (path_db based) to decide which articles should be removed from overview. This is similar to the spool-based expiration method, but does not perform history lookups on every article, and can be faster. This also requires that you run dexpire with the -o option.

The 'x' option in dexpire.ctl will also be used to safeguard against stale articles which somehow avoided being written to dexpover.dat and remain in overview. You should probably set your 'x' value high in order to avoid removing valid articles.

The dexpover.dat file will be removed after being read in by dexpireover.

You should not specify this option and -e at the same time.

-O[n]

Request that dexpireover delete groups which have not had new articles in 'n' days. If 'n' is not specified, 90 days is used. dexpireover will also add any missing LMTS fields to groups. This option requires that you also specify a wildcard via the -w option. This option is generally used to keep the alt groups clean.

When dexpireover deletes a newsgroup, it does not delete the overview data for that group until the next time dexpireover is run.

-pN

Spawn N working dexpireover processes, and one master process which waits for the parcount children to exit. Useful for speeding up the -e option, when your dhistory disk(s) can support multiple dhistory lookups at one time without slowing down linearly. Twice the number of disks on your striped /news partition is probably not an unreasonable number to use.

Using a value of N greater than 16 is not currently supported. Values other than powers of 2 are likely to generate uneven load across forks.

INTERRUPTING
Generally speaking, you should not interrupt a running dexpireover. Doing so will cause, at worst, one newsgroup to lose its overview.

SEE ALSO
diablo(8), dclean(8), dicmd(8), didump(8), diload(8), dnewslink(8), doutq(8), dexpire(8), diconvhist(8), dilookup(8), dspoolout(8), dkp(8), dpath(8), diablo-kp(5), diablo-files(5)