Extent
From Wikipedia, the free encyclopedia
An extent is a contiguous area of storage in a computer file system, reserved for a file. When starting to write to a file, a whole extent is allocated. When writing to the file again, possibly after doing other write operations, the data continues where the previous write left off. This reduces or eliminates file fragmentation.
Extents are supported in:
- Macintosh Hierarchical File System and HFS Plus
- SGI XFS (in the realtime chunk, which is currently labeled "EXPERIMENTAL" in the Linux version of XFS)
- Reiser4 (in "extents" mode)
- NTFS (via the preallocation API, namely SetEndOfFile and SetFileValidData functions)
- Universal Disk Format
- VERITAS File System (via the preallocation API and CLI).
- Linux ext4 - (when enabled)
- OS/2 and eCS HPFS
- JFS for AIX, OS/2/eComStation and Linux
- BFS for BeOS, Zeta and Haiku
- The SINTRAN III file system
The CP/M file system uses extents as well, but those don't correspond to the definition given above. CP/M's extents are contiguous only in the sense that they appear as a single block in the combined directory/allocation table; they are not necessarily contiguous on the data area of the disk.
Note that a file system can be extent-based (i.e., addressing via extents rather than in single blocks) without requiring that each file be limited to a single, contiguous extent.