PATCH inn-2.4.5 : fixes for buffindex storage method

Julien ÉLIE julien at
Sat Nov 29 11:14:19 UTC 2008

Hi Kirill,

> line 217 -- fixes lost initialization resolves a potential sigfault.

Already present in INN 2.5.0:

  static OVBUFF *ovbufftab = NULL;

(not the suggested (OVBUFF*)NULL but it does not matter).

> line 651 -- data placement optimization; the main idea is to place data as tight as possible; current implementation scatters data 
> over all unavailable disk space. For our server this fix led to reduction of  expireover runtime from 9 to about 2 hours (it seems 
> that one hour or so is due to improvements of 2.4.5 version :) ).

A variable is now unused and should be removed:
  ULONG mask = 0x80000000;

[from another of your mail]
> The idea of a patch is pretty simple, I'll show it by example.

Thanks a lot for your kind explanations!
They are very clear.

Your patch is now committed to INN 2.5.0.  I also updated the man page
(removing the limitation marked as a bug in the buffindexed.conf man page)
and mentioned your change in the NEWS changelog file for INN 2.5.0.

By the way, I also see that buffindexed is more robust with INN 2.5.0:

** Buffindexed using shared memory on ovbuff by Sang-yong Suh.
** During the recent discussions in inn-workers, Alex Kiernan found
** that INN LockRange() is not working for MMAPed file.  This explains
** why buffindexed has long outstanding bugs such as "could not MMAP...".
** This version corrects the file locking error by using shared memory.
** The bitfield of each buffer file is loaded into memory, and is shared
** by all programs such as innd, expireover, makehistory, and overchan.
** The locking problem is handled by semaphore.

Have a nice week-end,

Julien ÉLIE

« La vérité pure et simple est très rarement pure
  et jamais simple. » (Oscar Wilde) 

More information about the inn-workers mailing list