-
Notifications
You must be signed in to change notification settings - Fork 137
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
TFS: inflate existing file extents, eliminate extent size maximum
When file data is being written beyond the range of an existing file extent, if the storage space adjacent to the extent is free, the extent can be extended to cover additional storage space, instead of creating a new extent; this keeps the amount of file metadata down and minimizes the number of disk I/O requests being used to transfer a given amount of data. The existing maximum limit of 1 MB on extent creation is no longer necessary and is being removed. Since allocations from the storage space are aligned to the allocation size, requesting large extents can create large unallocated ranges in the storage space; in order to be able to fill these ranges when requesting a new extent that does not fit into a single contiguous storage area, the create_extent() function upon allocation failure retries an allocation with a smaller size (down to a 1MB limit); the code that calls this function has been amended to properly handle the cases where the size of a created extent is smaller than requested.
- Loading branch information
1 parent
dc9fe3c
commit 65434ad
Showing
2 changed files
with
46 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters