[mod.std.unix] File extents in multiples

std-unix@ut-sally.UUCP (Moderator, John Quarterman) (11/09/86)

From: ihnp4!uiucdcs!mycroft.GSD!ccvaxa!aglew (Andy Glew)
Date: Fri, 7 Nov 86 09:08:43 CST

Extending files in multiples of a basic unit
--------------------------------------------

A comment on some of the proposals for high-performance file systems
under UNIX that I've seen coming out of the various standardization efforts.
Most have the concept of `extents` or `units` - providing for automatic
extension of file space in pieces of some minimum size. But there
is nothing to say that the system can't allocate extents larger than
the minimum, that are not multiples of the minimum.

What happens if we are storing a large data structure in the file, and we want
to be sure that we can read in the whole data structure in one gulp? Say that
this dataset is 4 tracks long. Obviously, we specify a minimum extent of 4
tracks. But what if the system gives us 5 tracks in an extent? Then we start
the transfer, and have to pause in the middle?

Seems to me that it would be desirable to be able to say that all extents
should be a MULTIPLE of some basic number of blocks. Then you can use
anticipatory fseek'ing to guarantee fast transfer when you want it. Of course,
the possible multiples would be sharply constrained, but with a
getminimumextentsize() primitive portable programs could be written,
assuming extents have to be multiples of that size.

Volume-Number: Volume 8, Number 50