BUFFINDEXED.CONF(5)

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(5). It uses preconfigured buffer files which are used to store overview data and index, and never needs more disk space other than those files. The files are devided 8KB block internally and the block is allocated for each purpose; overview index and overview data. The block is never shared by each newsgroup, so owned by one newsgroup. There is a database file: <pathdb in inn.conf>/group.index which includes the information of the newsgroup; the pointer to the index block for the group, high mark, low mark, flag of the group, the number of the 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 the case. 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 within 63 letters. ``Buffer_size'' is the length of buffer file in kilobytes in decimal (1KB = 1024 bytes). If the ``file_name'' is not a special device, actucal file size must be buffer_size * 1024 bytes. You can NOT use buffers over 2GB even if you specify <--with-largefiles at configure>. Or buffers will be broken. It'll be fixed in the future.

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

1. Create a big file on top of a standard filesystem.
    The 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. Or 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 ``/dev/dsk/'' partition name:

    #!/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 recreate whole overview, if you remove or relpace buffers. You need not recreate, if you just append new buffers. And whenever recreate overview data base, you need to clean all buffers.

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

SEE ALSO
inn.conf(5).