Из того, что вы описали здесь, я бы сказал, что ваше решение кажется лучшим вариантом. Вы говорите, что это запускается раз в минуту, но сколько времени это займет, чтобы бежать? Если всего несколько секунд, то преобразование в реляционные данные, скорее всего, будет несущественным, как и любые другие издержки. большая часть этого займет, вероятно, 30 секунд. Это предполагает, опять же, что программа довольно мала.
Однако, если он больше и предполагает, что он станет больше, лучше сделать прямой сброс. Возможно, вы не захотите делать полный дамп при каждом запуске, но это зависит от вас, просто помните, что он может занять много места (то же самое происходит, если вы используете базу данных).
Если вы собираетесь сбросить состояние, вам понадобится какая-то система резервирования вместе с квази-транзакциями. Вы хотели бы сохранить несколько копий на случай, если что-то случится с новейшей версией. Скажем, питание отключается, пока вы храните, и у вас нет резервных копий, кроме этого наполовину написанного. Транзакции, вам нужно что-то, чтобы сказать, что файл полностью записан, поэтому, если что-то пойдет не так, вы всегда можете сказать, что было последним успешным сохранением.
О, и за его аргумент о том, что он работает постоянно: если у вас установлен cronjob, или даже самозаключенный оператор сна или что-то подобное, он не использует процессорное время, когда он не работает, столько же что было бы, если вы используете СУБД.
Если вы пишете прямо на диск, то это будет более быстрый метод по сравнению с базой данных и более быстрый поиск, поскольку, как вы указали, нет накладных расходов.
Резюме: База данных - это хорошая идея, если у вас много простоя процессорного времени или хронологических записей, но если ресурсы представляют собой законную проблему, то это может привести к чрезмерным накладным расходам, и лучше будет выполнить дамп с принятыми мерами предосторожности.