Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
BUFFINDEXED.CONF(5)	  InterNetNews Documentation	   BUFFINDEXED.CONF(5)

NAME
       buffindexed.conf	- Configuration	for the	buffindexed overview method

DESCRIPTION
       buffindexed.conf, found in pathetc, specifies the buffers that the
       buffindexed overview method should use.	It is required if the server
       uses buffindexed	(as configured by the ovmethod parameter in inn.conf).

       Buffindexed uses	pre-built buffer files to store	overview data and
       indexes to that data.  The buffers are divided into 8 KB	internally,
       and a given block is used either	for overview data or for index data.
       A block is always allocated to a	single newsgroup and is	never shared
       among newsgroups.  It also means	that overview data is limited to 8 KB
       per article, which may lead to the lack of integration of a few
       articles	with headers of	unusual	length into the	overview database.

       In addition to the buffers, buffindexed also stores information in a
       file named group.index in pathdb.  (This	file should not	be mistaken
       for the one named group.index in	pathoverview which is used by the
       tradindexed overview method.)  It contains information about each
       newsgroup: the pointer to the index block for the newsgroup, the	high
       mark, the low mark, the flag of the group, the number of	articles, and
       so forth.  This file is created automatically when all buffers are
       initialized and should not be manually edited.

       Buffindexed buffers are of fixed	size, so buffindexed will never	use
       more space than what is available in those buffers.  If all buffers are
       full, innd will throttle	when it	attempts to store overview information
       for any additional articles until space is freed	(with expireover, for
       instance) or another buffer is added.  This is unlike the CNFS storage
       method.

       You can see the current usage of	the buffers with the -o	option to
       inndf.

       The overview data of received articles are flushed to disk every
       ovflushcount articles, as set in	inn.conf.

       In the buffindexed.conf file, blank lines and lines beginning with a
       number sign ("#") are ignored.  All other lines must be of the format:

	   <index>:<filename>:<size>

       The order of lines is not significant.

       <index> is the index of this overview buffer and	must be	unique.	 Other
       than that constraint, it	can be any number between 0 and	65535.

       <filename> is the path to the buffer.  The length of the	path should
       not be longer than 63 characters.

       <size> is the length of the buffer in kilobytes (1 KB = 1024 bytes).
       If <filename> does not specify a	special	device,	the file size of the
       buffer must be <size> * 1024 bytes.  If it does specify a special
       device, that device must	have at	least <size> space available.  For
       more information	on setting up the buffers, see "CREATING BUFFERS".

       An example of buffindexed.conf file can be:

	   0:<pathoverview in inn.conf>/OV1:1536000
	   1:<pathoverview in inn.conf>/OV2:1536000

       When you	first start innd with everything configured properly, you
       should see messages like	this in	pathlog/news.notice:

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

       You MUST	recreate overview completely using makehistory if you remove
       or replace buffers.  However, new buffers can be	added without any
       special care (other than	restarting innd	after modifying
       buffindexed.conf).  If you need to rebuild overview, you	should zero
       all of the buffers first.

       We recommend not	to reserve too much spare space	in existing buffers,
       so that to minimize the duration	of the expireover process, and to just
       add new buffers when space left is low (see the result of "inndf	-no").
       Plan on needing at least	0.65 KB	for every article in your spool	(not
       counting	crossposts).  So, if you have 5	million	articles, you'll need
       at least	3.25 GB	of disk	space for buffindexed.

CREATING BUFFERS
       There are two methods to	create a new buffindexed buffer:

       1.  Create  a  large file on top	of a regular file system.  The easiest
	   way to do this is probably with dd(1), using	a command like:

	       dd if=/dev/zero of=/path/to/cycbuff bs=1024 count=<size>

	   where  <size>   is	the   size   from   the	  relevant   line   in
	   buffindexed.conf.

	   This	 is  the  simplest  method, but	has the	disadvantage that very
	   large files on regular file systems can be fairly slow  to  access,
	   particularly	 at  the  end  of the file, and	INN incurs unnecessary
	   file	system overhead	when accessing the buffer.

       2.  Use block devices directly.	If your	operating system allows	you to
	   call	mmap() on block	devices	(Solaris and recent versions of	 Linux
	   do,	FreeBSD	at last	report does not), this method can avoid	all of
	   the native file system overhead.  Note, however, that  Solaris  has
	   problems  with  byte	 range locking on block	devices, and therefore
	   this	method should not be used on Solaris.

	   Partition  the  disk.   If  you're  using  Solaris,	set  up	  your
	   partitions  to  avoid  the first cylinder of	the disk (or otherwise
	   the buffindexed header will overwrite the disk partition table  and
	   render  the	buffers	 inaccessible).	 Then, create device files for
	   each	block device you're going to use.

	   It's	not recommended	to use the block device	files in  /dev,	 since
	   the	news  system  doesn't  have  permission	 to  write to them and
	   changing the	permissions of the  system  device  files  may	affect
	   something else.  Instead, use mknod(1) to create a new set of block
	   devices  (in	somewhere like pathspool/overview that's only writable
	   by the news user).  To do this, run "ls -Ll"	on the devices in /dev
	   that	correspond to the block	devices	that you  want	to  use.   The
	   major  and  minor device numbers are	in the fifth and sixth columns
	   (right before the date), respectively.  Then	run mknod like:

	       mknod <filename>	b <major> <minor>

	   where <filename> is the path	to the device to create	(matching  the
	   <filename>  part of the buffindexed configuration line) and <major>
	   and <minor> are the major and minor device  numbers	as  discovered
	   above.

	   Here's  a short script to do	this when given	the path to the	system
	   device file as an argument:

	       #!/bin/sh
	       base=`echo "$1" | sed 's%.*/%%'`
	       major=`ls -Ll "$1" | awk	'{print	$5}' | tr -d ,`
	       minor=`ls -Ll "$1" | awk	'{print	$6}`
	       mkdir -p	<pathoverview in inn.conf>
	       mknod <pathoverview>/"$base" b "$major" "$minor"
	       chown news:news <pathoverview>/"$base"
	       chmod 644 <pathoverview>/"$base"

	   Make	sure that the created files are	owned by  the  news  user  and
	   news	 group,	 as  specified	at  configure  time (the default being
	   "news" for both).  Also make	 sure  that  the  permissions  on  the
	   devices allow the news user to read and write.

HISTORY
       Written	 by  Katsuhiro	Kondou	<kondou@nec.co.jp>  for	 InterNetNews.
       Converted to POD	by Russ	Allbery	<eagle@eyrie.org>.

SEE ALSO
       expireover(8), inn.conf(5), inndf(8), makehistory(8).

INN 2.8.0			  2023-09-18		   BUFFINDEXED.CONF(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=buffindexed.conf&sektion=5&manpath=FreeBSD+Ports+14.3.quarterly>

home | help