It's faster on some filesystems to grow a file in chunks rather than to extend it a block at a time as new blocks are written. By configuring the wiredtiger_open functions
file_extend value, applications can grow files ahead of the blocks being written.
The system calls used to extend files in chunks on some systems require locking across the system call, which may decrease performance. Before configuring a
file_extend value, before and after throughput should be carefully evaluated.
By default, when file blocks are being reused, WiredTiger attempts to avoid file fragmentation by selecting the smallest available block rather than splitting a larger available block into two. The
block_allocation configuration string to WT_SESSION::create can be set to
first to change the algorithm to first-fit, that is, take the first available block in the file. Applications where file size is more of an issue than file fragmentation (for example, applications with fixed-size blocks) might want to configure this way.