Во встроенном приложении для Linux, которое я разрабатываю, необходимо записывать некоторые события, которые происходят время от времени. Эти записи сохраняются на флэш-устройстве MTD, и после их записи нет необходимости изменять их или выполнять эффективный поиск, но требуется доступ для чтения, чтобы показать данные пользователю.
Большая проблема в том, что питание может отключиться в любое время без надлежащей последовательности выключения.
Частота этих событий может быть очень медленной (дни / недели), но несколько из них будут происходить одновременно.
Данные, сохраняемые для каждого события, строго типизированы: дата, время, пара коротких текстовых строк и несколько целых чисел.
В настоящее время я унаследовал решение, основанное на jffs2 и SQLite, которое далеко от оптимального, поскольку иногда файл БД поврежден. Когда это происходит, весь файл становится нечитаемым, и невозможно понять, была ли это вызвана ошибкой в jffs2, или в SQLite, или был ли неисправен сектор флэш-памяти, или было отключено питание в неподходящее время.
Существует ли библиотека или комбинация файловой системы / библиотеки, которая может помочь мне решить эту проблему? Или я должен просто использовать текстовый файл в CSV-подобном формате?