man buffindexed.conf (Formats) - configuration file for buffindexed ovmethod

NAME

buffindexed.conf - configuration file for buffindexed ovmethod

DESCRIPTION

The file <pathetc in inn.conf>/buffindexed.conf is required if buffindexed ovmethod is used.

Buffindexed is one of ovmethod which is specified in inn.conf. It uses preconfigured buffer files to store overview data and index, and never needs more disk space other than those files. The files are divided into 8 KB blocks internally; a given block is allocated for either overview index or overview data. A block is never shared among multiple newsgroups. There is a database file: <pathdb in inn.conf>/group.index that includes information about each newsgroup: the pointer to the index block for the group, high mark, low mark, flag of the group, the number of articles, and etc. This file is created automatically when all buffers are initialized and must not be edited manually. If all buffers are filled up, innd(8) throttles itself. Note that the buffer files are never rolled over and overwritten the way CNFS does. You need to append another buffer file in this event. You can see the buffer usage with inndf(8) with ``-o'' option.

The file consists of a series of lines; blank lines and lines beginning with a number sign (``#'') are ignored. There is only one kind of configuration line. The order of lines in this file is not important.

index:file_name:buffer_size

``Index'' is an index of overview buffer. ``Index'' must be between 0 and 65535. ``File_name'' is the path to overview buffer file. The length of this path should be not more than 63 characters. ``Buffer_size'' is the length of buffer file in kilobytes in decimal (1 KB = 1024 bytes). If the ``file_name'' is not a special device, the actual file size must be buffer_size * 1024 bytes. You can NOT use buffers over 2 GB even if you specify <--with-largefiles at configure>, or buffers will be broken. It'll be fixed in the future.

When creating new overview buffer, there are two different methods for creating the files.

1. Create a big file on top of a standard filesystem.
Use "dd" to create the overview buffer files, such as "dd if=/dev/zero of=/path/to/ovbuff bs=1024 count=N" where N is the buffer_size.
2. Use block disk devices directly.
If your operating system will allow you to mmap() block disk devices (Solaris does, FreeBSD does not), this is the recommended method. But note that Solaris (at least 2.6) seems to have a problem in regional locking of block disk devices, and should not be used as overview data will be corrupted. Partition the disks to make each partition slightly larger (a few MB larger) than the intended size of each overview buffer. It is not recommend to use the block device files already located in ``/dev''; instead, use "mknod" to create a new set of block device files. In order to do this, do an "ls -Ll" of the /dev/dsk partition. The major and minor device numbers are in the fifth and sixth columns (right before the date), respectively. This information should be fed to "mknod" to make a "block-type special file" (b). Here is a short script that accomplishes this when fed the name of the partition as listed in ``/dev/dsk/'':
#!/bin/sh
disk=$1
major=`ls -l /dev/dsk/$disk | awk '{print $5}' | tr -d ,`
minor=`ls -l /dev/dsk/$disk | awk '{print $6}`
mkdir /ovbuff
mknod /ovbuff/$disk b $major $minor
The created device files themselves consume very little space.

In either case, make certain that each overview buffer file is owned by <USER specified with --with-news-user at configure>, <GROUP specified with --with-news-group at configure>, and has read/write modes for the owner and group (mode ``0664'' or ``0660'').

When you first start innd(8) and everything is configured properly, you should see messages in <pathlog in inn.conf>/news.notice which look like:

Aug 27 00:00:00 kevlar innd: buffindexed: No magic cookie found for buffindexed 0, initializing

You MUST entirely recreate overview if you remove or relpace buffers. You need not recreate if you just append new buffers. And whenever you recreate the overview data base, you need to clean all the buffers.

HISTORY

Written by Katsuhiro Kondou <kondou@nec.co.jp> for InterNetNews.

SEE ALSO