Item2: Support multiple extents for storing large files (filesize > bandsize)

Priority: CurrentState: AppliesTo: Component: WaitingFor:
Enhancement Closed SMR   PratikShah

-- PratikShah - 18 Oct 2013

The max size of one band is 4096 blocks * 4096 blocksize = 16 MB. In the LFStest, at the end of sequential write, it issues an fsync on the largefile fd. When this happens, the largefile, which is actually in buffercache is now enqueud to be synced or written to the disk. This write to disk is performed by bc_worker. bc_worker tries to find the band with max free size to write this file on the disk. The max free size for a band is 16MB as discussed above. Thus for files greater than 16MB, this request fails, hence it asserts. The issue is that bc_worker doesn't split the write workload in multiple bands. For example, to write a file of 17MB, bc_worker requests for a band to store 4352 blocks (4352 * 4096 = 17MB), however the max free size for any band is 4096, hence that request fails. Thus bc_worker thinks there are no available bands to write the file.

Possible changes required:-
  1. Method to break file into multiple extents
  2. Change to inode structure for holding information about multiple extents
  3. Changes to way open and read will operate using multiple extents.

ItemTemplate edit

Summary Support multiple extents for storing large files (filesize > bandsize)
ReportedBy PratikShah
AppliesTo SMR
Priority Enhancement
CurrentState Closed
WaitingFor PratikShah
Topic revision: r2 - 17 Jan 2015, SaurabhKadekodi - This page was cached on 18 Apr 2024 - 13:09.

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding PDLWiki? Send feedback