NAND жизнь с SQLITE и WAL - PullRequest
       43

NAND жизнь с SQLITE и WAL

0 голосов
/ 08 ноября 2019

Я использую небольшой компьютер со встроенной памятью EMMC для сбора и обработки данных в реальном времени. Для хранения этих данных я использовал sqlite, чтобы иметь возможность агрегировать и выполнять некоторую граничную обработку перед отправкой в ​​облако партиями.

У меня были проблемы с повреждением памяти EMMC после долгого времени работы, и я считаю, что это происходит из-за ограничения записи в память NAND.

Большинство рекомендаций, которые я видел, предлагают использоватьSQlite WAL прагма, чтобы сократить записи по крайней мере пополам. По сравнению с предварительным тестированием с использованием iostat это, по-видимому, имеет большое значение для уменьшения объема записи без каких-либо дополнительных усилий.

Однако, согласно документации Sqlite :

[After a checkpoint]... the WAL file is recycled ... The checkpoint does not 
normally truncate the WAL file (unless the journal_size_limit pragma is set).
Instead, it merely causes SQLite to start overwriting the WAL file from the 
beginning.

Мой вопрос:

Будет ли эта перезапись (или усечение с journal_size_limit) приводить к тому, что одни и те же блоки в NAND постоянно перезаписываются, так как файл WAL перезагружает себя и делаетэто угроза для пределов записи / стирания памяти?

Точно так же, будет ли общая память представлять подобный риск?

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

...