501f8cbe10
This is an exciting new function, made possible by the order-statistic nature of our rbyds and btrees. lfsr_file_fruncation is like truncate, but from the front. It can trim data off of the front of files, and grow files from the front, effectively prefixing files with zeros cheaply. This may have some niche use cases for prefixing files with headers, but the real killer is making logging files trivial. Up until now logging into a file has always resulted in awkward file-swapping code when a file gets full. Now maintaining a log is just a single fruncate call. --- Implementation wise, lfsr_file_fruncate is very similar to lfsr_file_truncate, except we need to always inject holes into all file trees to adjust file contents correctly.