How tunables handle File Change Log growth size

Figure: FCL record purging example illustrates an example of record purging as an FCL file grows in size.

The FCL file on the left contains 8K blocks and no holes. When activity occurs on the file system, it is recorded in the FCL and the growth results in the FCL file on the right.

When the FCL file size reaches the maximum allowable size that is specified by the fcl_maxalloc tunable, older records are purged and space is freed. The FCL feature only purges records that are older than a time specified by fcl_keeptime. The freed space is always in units of an internal hole size.

Figure: FCL record purging example displays the file system freeing up space in the FCL file in 8K units.

When the FCL file surpasses the maximum allocation for the first time and the number of older records is 20K, the program purges 16K. This leaves a 16K hole following the FCL superblock. The first valid offset in the FCL superblock is then updated to 24K.

Figure: FCL record purging example

FCL record purging example