Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jul 1996 10:37:57 -0700 (PDT)
From:      "JULIAN Elischer" <julian@ref.tfs.com>
To:        lada@ws2301.gud.siemens.co.at (Hr.Ladavac)
Cc:        heo@cslsun10.sogang.ac.kr, hackers@FreeBSD.org
Subject:   Re: RE:About buffer cache
Message-ID:  <199607191737.KAA26305@ref.tfs.com>
In-Reply-To: <199607191506.AA011698773@ws2301.gud.siemens.co.at> from "Hr.Ladavac" at Jul 19, 96 05:06:12 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> In his e-mail Heo Sung Gwan wrote:
> > 
> > I think that UNIX file system with buffer cache is not proper to support
> > multimedia files(e.g mpeg files) becasue buffer cache is based on locality 
> > of referece(i.e. the recently referened block have high probabiliey to be
> > referenced again). But multimedia files are accessed sequentially and 
> > therefore caching of the referenced block is not suitable and the block of
> > mpeg file referenced by a process has low probability to be accessed by
> > the other processes. So I think a FIFO buffer per each open file and
> > the read-ahead to each FIFO buffer are good choice for multimedia file
> > retrieval. In fact the many filesystems for multimedia adopted this approach(
> > e.g. UC Berkeley CMFS).
> > 
> > And there are two possible approaches:
> > 1. Modification of buffer cache to FIFO buffers dynamically allocated.
> > 2. User-level process that manages that FIFO buffers that access files 
> >  through raw disk without buffer cache.
> 
> But 4.4BSD FFS already does that.  It reads ahead all contiguous clusters as
> soon as it detects the sequential access pattern (all is an overstatement;
> only up to maxcontig clusters are contiguously laid down.)
> 
> You might take a look at Larry McVoy paper about extent-like performance
> of FFS (sorry, no url handy.)
> 
> Even though, an implementation of madvise(2) which turns on the sequential
> access policy for the mmap(2)ped file wouldn't be bad either.
the user method of doing this would be to use mmapped regions.
and possibly two processes.. one forcing prefetches by running ahead
of the other some distance and touching pages..
possibly using two buffers too, so that you could "walk" the buffers.

It's important to note that mmap'ed files are as efficient as one can get 
as far as disk IO to a file..
it's 0 copies + 1 DMA per read.







Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199607191737.KAA26305>