технология проста.
пишем в ретайн. после накопления пары кбайт сбрасываем на диск.
если размер на диске становится >критического, то:
создаем новый файл. копируем в него последнюю половину старого, стираем старый, переименовываем.

предусматриваем защиту от разных неожиданностей, например старый уже стерли, а новый не переименовали, а свет выключился. т.е. в зависимости от состояния транзакции либо её доигрываем, либо откатываем назад.

в ретайн храним состояния транзакции.

если соблюдать "умеренность" в записях - ресурса хватит на века.